blob: 4ce23d3a579bfcf4d54ad11af407ef911c61764b [file] [log] [blame]
Maciej Żenczykowskib0940272023-10-23 22:45:43 -07001This directory contains comment stripped versions of
2 //system/bpf/bpfloader/bpfloader.rc
Maciej Żenczykowski46936372024-10-02 19:32:50 +00003or
4 //packages/modules/Connectivity/bpf/loader/netbpfload.rc
5(as appropriate) from previous versions of Android.
Maciej Żenczykowskib0940272023-10-23 22:45:43 -07006
7Generated via:
Maciej Żenczykowski46936372024-10-02 19:32:50 +00008 (cd ../../../../../../system/bpf && git cat-file -p remotes/aosp/android11-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk30-11-R.rc
9 (cd ../../../../../../system/bpf && git cat-file -p remotes/aosp/android12-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk31-12-S.rc
10 (cd ../../../../../../system/bpf && git cat-file -p remotes/aosp/android13-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk33-13-T.rc
11 (cd ../../../../../../system/bpf && git cat-file -p remotes/aosp/android14-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U.rc
12 git cat-file -p remotes/aosp/android14-qpr2-release:netbpfload/netbpfload.rc | egrep -v '^ *#' > bpfloader-sdk34-14-U-QPR2-24Q1.rc
13 git cat-file -p remotes/aosp/android14-qpr3-release:netbpfload/netbpfload.rc | egrep -v '^ *#' > bpfloader-sdk34-14-U-QPR3-24Q2.rc
14 git cat-file -p remotes/aosp/android15-release:netbpfload/netbpfload.rc | egrep -v '^ *#' > bpfloader-sdk35-15-V-24Q3.rc
15 git cat-file -p remotes/aosp/main:bpf/loader/netbpfload.rc | egrep -v '^ *#' > bpfloader-sdk35-15-V-QPR1-24Q4.rc
16
17see also:
18 https://android.googlesource.com/platform/system/bpf/+/refs/heads/android11-release/bpfloader/bpfloader.rc
19 https://android.googlesource.com/platform/system/bpf/+/refs/heads/android12-release/bpfloader/bpfloader.rc
20 https://android.googlesource.com/platform/system/bpf/+/refs/heads/android13-release/bpfloader/bpfloader.rc
21 https://android.googlesource.com/platform/system/bpf/+/refs/heads/android14-release/bpfloader/bpfloader.rc
22 https://android.googlesource.com/platform/system/bpf/+/refs/heads/android14-qpr1-release/bpfloader/bpfloader.rc
23 https://android.googlesource.com/platform/system/bpf/+/refs/heads/android14-qpr2-release/bpfloader/ (rc file is gone in QPR2)
24 https://android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/android14-qpr2-release/netbpfload/netbpfload.rc
25 https://android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/android14-qpr3-release/netbpfload/netbpfload.rc
26 https://android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/android15-release/netbpfload/netbpfload.rc
27 https://android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/android15-qpr1-release/netbpfload/netbpfload.rc
28 https://android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/main/netbpfload/netbpfload.rc
29or:
30 https://googleplex-android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/24Q1-release/netbpfload/netbpfload.rc
31 https://googleplex-android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/24Q2-release/netbpfload/netbpfload.rc
32 https://googleplex-android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/24Q3-release/netbpfload/netbpfload.rc
33 https://googleplex-android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/24Q4-release/bpf/loader/netbpfload.rc
Maciej Żenczykowskib0940272023-10-23 22:45:43 -070034
35this is entirely equivalent to:
36 (cd /android1/system/bpf && git cat-file -p remotes/goog/rvc-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk30-11-R.rc
37 (cd /android1/system/bpf && git cat-file -p remotes/goog/sc-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk31-12-S.rc
38 (cd /android1/system/bpf && git cat-file -p remotes/goog/tm-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk33-13-T.rc
39 (cd /android1/system/bpf && git cat-file -p remotes/goog/udc-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U.rc
Maciej Żenczykowskib0940272023-10-23 22:45:43 -070040
41it is also equivalent to:
42 (cd /android1/system/bpf && git cat-file -p remotes/goog/rvc-qpr-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk30-11-R.rc
43 (cd /android1/system/bpf && git cat-file -p remotes/goog/sc-v2-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk31-12-S.rc
44 (cd /android1/system/bpf && git cat-file -p remotes/goog/tm-qpr-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk33-13-T.rc
45 (cd /android1/system/bpf && git cat-file -p remotes/goog/udc-qpr-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U.rc
46
47ie. there were no changes between R/S/T and R/S/T QPR3, and no change between U and U QPR1.
48
49Note: Sv2 sdk/api level is actually 32, it just didn't change anything wrt. bpf, so doesn't matter.
50
51
52Key takeaways:
53
54= R bpfloader:
55 - CHOWN + SYS_ADMIN
56 - asynchronous startup
57 - platform only
58 - proc file setup handled by initrc
59
60= S bpfloader
61 - adds NET_ADMIN
62 - synchronous startup
63 - platform + mainline tethering offload
64
65= T bpfloader
66 - platform + mainline networking (including tethering offload)
67 - supported btf for maps via exec of btfloader
68
69= U bpfloader
70 - proc file setup moved into bpfloader binary
71 - explicitly specified user and groups:
72 group root graphics network_stack net_admin net_bw_acct net_bw_stats net_raw system
73 user root
74
75= U QPR2 bpfloader
76 - drops support of btf for maps
77 - invocation of /system/bin/netbpfload binary, which after handling *all*
78 networking bpf related things executes the platform /system/bin/bpfloader
79 which handles non-networking bpf.
80
81Note that there is now a copy of 'netbpfload' provided by the tethering apex
82mainline module at /apex/com.android.tethering/bin/netbpfload, which due
83to the use of execve("/system/bin/bpfloader") relies on T+ selinux which was
84added for btf map support (specifically the ability to exec the "btfloader").