Maciej Żenczykowski | b094027 | 2023-10-23 22:45:43 -0700 | [diff] [blame] | 1 | This directory contains comment stripped versions of |
| 2 | //system/bpf/bpfloader/bpfloader.rc |
| 3 | from previous versions of Android. |
| 4 | |
| 5 | Generated via: |
| 6 | (cd ../../../../../system/bpf && git cat-file -p remotes/aosp/android11-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk30-11-R.rc |
| 7 | (cd ../../../../../system/bpf && git cat-file -p remotes/aosp/android12-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk31-12-S.rc |
| 8 | (cd ../../../../../system/bpf && git cat-file -p remotes/aosp/android13-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk33-13-T.rc |
| 9 | (cd ../../../../../system/bpf && git cat-file -p remotes/aosp/android14-release:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U.rc |
| 10 | (cd ../../../../../system/bpf && git cat-file -p remotes/aosp/main:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U-QPR2.rc |
| 11 | |
| 12 | this is entirely equivalent to: |
| 13 | (cd /android1/system/bpf && git cat-file -p remotes/goog/rvc-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk30-11-R.rc |
| 14 | (cd /android1/system/bpf && git cat-file -p remotes/goog/sc-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk31-12-S.rc |
| 15 | (cd /android1/system/bpf && git cat-file -p remotes/goog/tm-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk33-13-T.rc |
| 16 | (cd /android1/system/bpf && git cat-file -p remotes/goog/udc-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U.rc |
| 17 | (cd /android1/system/bpf && git cat-file -p remotes/goog/main:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U-QPR2.rc |
| 18 | |
| 19 | it is also equivalent to: |
| 20 | (cd /android1/system/bpf && git cat-file -p remotes/goog/rvc-qpr-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk30-11-R.rc |
| 21 | (cd /android1/system/bpf && git cat-file -p remotes/goog/sc-v2-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk31-12-S.rc |
| 22 | (cd /android1/system/bpf && git cat-file -p remotes/goog/tm-qpr-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk33-13-T.rc |
| 23 | (cd /android1/system/bpf && git cat-file -p remotes/goog/udc-qpr-dev:bpfloader/bpfloader.rc; ) | egrep -v '^ *#' > bpfloader-sdk34-14-U.rc |
| 24 | |
| 25 | ie. there were no changes between R/S/T and R/S/T QPR3, and no change between U and U QPR1. |
| 26 | |
| 27 | Note: Sv2 sdk/api level is actually 32, it just didn't change anything wrt. bpf, so doesn't matter. |
| 28 | |
| 29 | |
| 30 | Key takeaways: |
| 31 | |
| 32 | = R bpfloader: |
| 33 | - CHOWN + SYS_ADMIN |
| 34 | - asynchronous startup |
| 35 | - platform only |
| 36 | - proc file setup handled by initrc |
| 37 | |
| 38 | = S bpfloader |
| 39 | - adds NET_ADMIN |
| 40 | - synchronous startup |
| 41 | - platform + mainline tethering offload |
| 42 | |
| 43 | = T bpfloader |
| 44 | - platform + mainline networking (including tethering offload) |
| 45 | - supported btf for maps via exec of btfloader |
| 46 | |
| 47 | = U bpfloader |
| 48 | - proc file setup moved into bpfloader binary |
| 49 | - explicitly specified user and groups: |
| 50 | group root graphics network_stack net_admin net_bw_acct net_bw_stats net_raw system |
| 51 | user root |
| 52 | |
| 53 | = U QPR2 bpfloader |
| 54 | - drops support of btf for maps |
| 55 | - invocation of /system/bin/netbpfload binary, which after handling *all* |
| 56 | networking bpf related things executes the platform /system/bin/bpfloader |
| 57 | which handles non-networking bpf. |
| 58 | |
| 59 | Note that there is now a copy of 'netbpfload' provided by the tethering apex |
| 60 | mainline module at /apex/com.android.tethering/bin/netbpfload, which due |
| 61 | to the use of execve("/system/bin/bpfloader") relies on T+ selinux which was |
| 62 | added for btf map support (specifically the ability to exec the "btfloader"). |