| Maciej Żenczykowski | 40dfe53 | 2023-10-08 20:21:11 -0700 | [diff] [blame] | 1 | // | 
|  | 2 | // Copyright (C) 2023 The Android Open Source Project | 
|  | 3 | // | 
|  | 4 | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | 5 | // you may not use this file except in compliance with the License. | 
|  | 6 | // You may obtain a copy of the License at | 
|  | 7 | // | 
|  | 8 | //      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 9 | // | 
|  | 10 | // Unless required by applicable law or agreed to in writing, software | 
|  | 11 | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | 13 | // See the License for the specific language governing permissions and | 
|  | 14 | // limitations under the License. | 
|  | 15 | // | 
|  | 16 |  | 
| Aditya Choudhary | 01b5ede | 2024-01-31 11:08:57 +0000 | [diff] [blame] | 17 | package { | 
|  | 18 | default_team: "trendy_team_fwk_core_networking", | 
|  | 19 | } | 
|  | 20 |  | 
| Maciej Żenczykowski | e678f57 | 2024-02-28 11:58:49 -0800 | [diff] [blame] | 21 | install_symlink { | 
| Maciej Żenczykowski | 8c21593 | 2024-03-05 19:02:11 -0800 | [diff] [blame] | 22 | name: "mainline_tethering_platform_components", | 
|  | 23 |  | 
| Maciej Żenczykowski | e678f57 | 2024-02-28 11:58:49 -0800 | [diff] [blame] | 24 | symlink_target: "/apex/com.android.tethering/bin/ethtool", | 
|  | 25 | // installed_location is relative to /system because that's the default partition for soong | 
|  | 26 | // modules, unless we add something like `system_ext_specific: true` like in hwservicemanager. | 
|  | 27 | installed_location: "bin/ethtool", | 
| Maciej Żenczykowski | e678f57 | 2024-02-28 11:58:49 -0800 | [diff] [blame] | 28 |  | 
| Maciej Żenczykowski | e0dd869 | 2024-03-06 18:18:19 +0000 | [diff] [blame] | 29 | init_rc: ["netbpfload.rc"], | 
| Maciej Żenczykowski | 8c21593 | 2024-03-05 19:02:11 -0800 | [diff] [blame] | 30 | required: ["bpfloader"], | 
| Maciej Żenczykowski | e678f57 | 2024-02-28 11:58:49 -0800 | [diff] [blame] | 31 | } | 
|  | 32 |  | 
| Maciej Żenczykowski | 40dfe53 | 2023-10-08 20:21:11 -0700 | [diff] [blame] | 33 | cc_binary { | 
|  | 34 | name: "netbpfload", | 
|  | 35 |  | 
|  | 36 | defaults: ["bpf_defaults"], | 
|  | 37 | cflags: [ | 
|  | 38 | "-Wall", | 
|  | 39 | "-Werror", | 
|  | 40 | "-Wthread-safety", | 
|  | 41 | ], | 
|  | 42 | sanitize: { | 
|  | 43 | integer_overflow: true, | 
|  | 44 | }, | 
|  | 45 |  | 
|  | 46 | header_libs: ["bpf_headers"], | 
|  | 47 | shared_libs: [ | 
|  | 48 | "libbase", | 
| Maciej Żenczykowski | 40dfe53 | 2023-10-08 20:21:11 -0700 | [diff] [blame] | 49 | "liblog", | 
|  | 50 | ], | 
|  | 51 | srcs: [ | 
|  | 52 | "loader.cpp", | 
|  | 53 | "NetBpfLoad.cpp", | 
|  | 54 | ], | 
| Maciej Żenczykowski | a2a3d75 | 2023-10-10 15:24:13 -0700 | [diff] [blame] | 55 | apex_available: [ | 
|  | 56 | "com.android.tethering", | 
|  | 57 | "//apex_available:platform", | 
|  | 58 | ], | 
| Maciej Żenczykowski | 03ef12c | 2024-02-10 21:34:22 +0000 | [diff] [blame] | 59 | // really should be Android 13/T (33), but we cannot include binaries built | 
| Maciej Żenczykowski | a2a3d75 | 2023-10-10 15:24:13 -0700 | [diff] [blame] | 60 | // against newer sdk in the apex, which still targets 30(R): | 
|  | 61 | // module "netbpfload" variant "android_x86_apex30": should support | 
|  | 62 | // min_sdk_version(30) for "com.android.tethering": newer SDK(34). | 
|  | 63 | min_sdk_version: "30", | 
| Maciej Żenczykowski | e0dd869 | 2024-03-06 18:18:19 +0000 | [diff] [blame] | 64 | installable: false, | 
| Maciej Żenczykowski | 40dfe53 | 2023-10-08 20:21:11 -0700 | [diff] [blame] | 65 | } | 
| Maciej Żenczykowski | 041be52 | 2023-10-23 23:34:52 -0700 | [diff] [blame] | 66 |  | 
| Maciej Żenczykowski | 03ef12c | 2024-02-10 21:34:22 +0000 | [diff] [blame] | 67 | // Versioned netbpfload init rc: init system will process it only on api T/33+ devices | 
|  | 68 | // Note: R[30] S[31] Sv2[32] T[33] U[34] V[35]) | 
| Maciej Żenczykowski | 041be52 | 2023-10-23 23:34:52 -0700 | [diff] [blame] | 69 | // | 
|  | 70 | // For details of versioned rc files see: | 
|  | 71 | // https://android.googlesource.com/platform/system/core/+/HEAD/init/README.md#versioned-rc-files-within-apexs | 
|  | 72 | prebuilt_etc { | 
|  | 73 | name: "netbpfload.mainline.rc", | 
|  | 74 | src: "netbpfload.mainline.rc", | 
| Maciej Żenczykowski | 03ef12c | 2024-02-10 21:34:22 +0000 | [diff] [blame] | 75 | filename: "netbpfload.33rc", | 
| Maciej Żenczykowski | 041be52 | 2023-10-23 23:34:52 -0700 | [diff] [blame] | 76 | installable: false, | 
|  | 77 | } |