blob: b8c0ce7d776a3fcef9f6195581e54de036e758fa [file] [log] [blame]
Maciej Żenczykowski40dfe532023-10-08 20:21:11 -07001//
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 Choudhary01b5ede2024-01-31 11:08:57 +000017package {
18 default_team: "trendy_team_fwk_core_networking",
19}
20
Maciej Żenczykowskie678f572024-02-28 11:58:49 -080021install_symlink {
Maciej Żenczykowski8c215932024-03-05 19:02:11 -080022 name: "mainline_tethering_platform_components",
23
Maciej Żenczykowskie678f572024-02-28 11:58:49 -080024 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 Żenczykowskie678f572024-02-28 11:58:49 -080028
Maciej Żenczykowskie0dd8692024-03-06 18:18:19 +000029 init_rc: ["netbpfload.rc"],
Maciej Żenczykowski8c215932024-03-05 19:02:11 -080030 required: ["bpfloader"],
Maciej Żenczykowskie678f572024-02-28 11:58:49 -080031}
32
Maciej Żenczykowski40dfe532023-10-08 20:21:11 -070033cc_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 Żenczykowski40dfe532023-10-08 20:21:11 -070049 "liblog",
50 ],
Maciej Żenczykowski49140b92024-08-07 15:06:07 -070051 srcs: ["NetBpfLoad.cpp"],
Maciej Żenczykowskia2a3d752023-10-10 15:24:13 -070052 apex_available: [
53 "com.android.tethering",
54 "//apex_available:platform",
55 ],
Maciej Żenczykowski03ef12c2024-02-10 21:34:22 +000056 // really should be Android 13/T (33), but we cannot include binaries built
Maciej Żenczykowskia2a3d752023-10-10 15:24:13 -070057 // against newer sdk in the apex, which still targets 30(R):
58 // module "netbpfload" variant "android_x86_apex30": should support
59 // min_sdk_version(30) for "com.android.tethering": newer SDK(34).
60 min_sdk_version: "30",
Maciej Żenczykowskie0dd8692024-03-06 18:18:19 +000061 installable: false,
Maciej Żenczykowski40dfe532023-10-08 20:21:11 -070062}
Maciej Żenczykowski041be522023-10-23 23:34:52 -070063
Maciej Żenczykowski03ef12c2024-02-10 21:34:22 +000064// Versioned netbpfload init rc: init system will process it only on api T/33+ devices
65// Note: R[30] S[31] Sv2[32] T[33] U[34] V[35])
Maciej Żenczykowski041be522023-10-23 23:34:52 -070066//
67// For details of versioned rc files see:
68// https://android.googlesource.com/platform/system/core/+/HEAD/init/README.md#versioned-rc-files-within-apexs
69prebuilt_etc {
Maciej Żenczykowskib4a1e872024-06-13 13:41:19 -070070 name: "netbpfload.33rc",
71 src: "netbpfload.33rc",
Maciej Żenczykowski03ef12c2024-02-10 21:34:22 +000072 filename: "netbpfload.33rc",
Maciej Żenczykowski041be522023-10-23 23:34:52 -070073 installable: false,
74}
Maciej Żenczykowski3218a812024-04-15 00:39:59 -070075
76prebuilt_etc {
77 name: "netbpfload.35rc",
78 src: "netbpfload.35rc",
79 filename: "netbpfload.35rc",
80 installable: false,
81}