xref: /aosp_15_r20/system/netd/server/Android.bp (revision 8542734a0dd1db395a4d42aae09c37f3c3c3e7a1)
1*8542734aSAndroid Build Coastguard Workerpackage {
2*8542734aSAndroid Build Coastguard Worker    default_team: "trendy_team_fwk_core_networking",
3*8542734aSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
4*8542734aSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
5*8542734aSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "system_netd_license"
6*8542734aSAndroid Build Coastguard Worker    // to get the below license kinds:
7*8542734aSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
8*8542734aSAndroid Build Coastguard Worker    default_applicable_licenses: ["system_netd_license"],
9*8542734aSAndroid Build Coastguard Worker}
10*8542734aSAndroid Build Coastguard Worker
11*8542734aSAndroid Build Coastguard Workeraidl_interface {
12*8542734aSAndroid Build Coastguard Worker    // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
13*8542734aSAndroid Build Coastguard Worker    // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
14*8542734aSAndroid Build Coastguard Worker    // because those interfaces are versioned.
15*8542734aSAndroid Build Coastguard Worker    // These interfaces must never be versioned or OEMs will not be able to change them.
16*8542734aSAndroid Build Coastguard Worker    name: "oemnetd_aidl_interface",
17*8542734aSAndroid Build Coastguard Worker    unstable: true,
18*8542734aSAndroid Build Coastguard Worker    local_include_dir: "binder",
19*8542734aSAndroid Build Coastguard Worker    srcs: [
20*8542734aSAndroid Build Coastguard Worker        "binder/com/android/internal/net/IOemNetd.aidl",
21*8542734aSAndroid Build Coastguard Worker        "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
22*8542734aSAndroid Build Coastguard Worker    ],
23*8542734aSAndroid Build Coastguard Worker}
24*8542734aSAndroid Build Coastguard Worker
25*8542734aSAndroid Build Coastguard Worker// These are used in netd_integration_test
26*8542734aSAndroid Build Coastguard Worker// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
27*8542734aSAndroid Build Coastguard Workerfilegroup {
28*8542734aSAndroid Build Coastguard Worker    name: "netd_integration_test_shared",
29*8542734aSAndroid Build Coastguard Worker    srcs: [
30*8542734aSAndroid Build Coastguard Worker        "NetdConstants.cpp",
31*8542734aSAndroid Build Coastguard Worker        "InterfaceController.cpp",
32*8542734aSAndroid Build Coastguard Worker        "NetlinkCommands.cpp",
33*8542734aSAndroid Build Coastguard Worker        "SockDiag.cpp",
34*8542734aSAndroid Build Coastguard Worker        "XfrmController.cpp",
35*8542734aSAndroid Build Coastguard Worker    ],
36*8542734aSAndroid Build Coastguard Worker}
37*8542734aSAndroid Build Coastguard Worker
38*8542734aSAndroid Build Coastguard Worker// Modules common to both netd and netd_unit_test
39*8542734aSAndroid Build Coastguard Workercc_library_static {
40*8542734aSAndroid Build Coastguard Worker    name: "libnetd_server",
41*8542734aSAndroid Build Coastguard Worker    defaults: [
42*8542734aSAndroid Build Coastguard Worker        "netd_aidl_interface_lateststable_cpp_shared",
43*8542734aSAndroid Build Coastguard Worker        "netd_defaults",
44*8542734aSAndroid Build Coastguard Worker    ],
45*8542734aSAndroid Build Coastguard Worker    include_dirs: [
46*8542734aSAndroid Build Coastguard Worker        "system/netd/include",
47*8542734aSAndroid Build Coastguard Worker        "system/netd/server/binder",
48*8542734aSAndroid Build Coastguard Worker    ],
49*8542734aSAndroid Build Coastguard Worker    srcs: [
50*8542734aSAndroid Build Coastguard Worker        "BandwidthController.cpp",
51*8542734aSAndroid Build Coastguard Worker        "Controllers.cpp",
52*8542734aSAndroid Build Coastguard Worker        "NetdConstants.cpp",
53*8542734aSAndroid Build Coastguard Worker        "FirewallController.cpp",
54*8542734aSAndroid Build Coastguard Worker        "IdletimerController.cpp",
55*8542734aSAndroid Build Coastguard Worker        "InterfaceController.cpp",
56*8542734aSAndroid Build Coastguard Worker        "IptablesRestoreController.cpp",
57*8542734aSAndroid Build Coastguard Worker        "NFLogListener.cpp",
58*8542734aSAndroid Build Coastguard Worker        "NetlinkCommands.cpp",
59*8542734aSAndroid Build Coastguard Worker        "NetlinkManager.cpp",
60*8542734aSAndroid Build Coastguard Worker        "RouteController.cpp",
61*8542734aSAndroid Build Coastguard Worker        "SockDiag.cpp",
62*8542734aSAndroid Build Coastguard Worker        "StrictController.cpp",
63*8542734aSAndroid Build Coastguard Worker        "TcpSocketMonitor.cpp",
64*8542734aSAndroid Build Coastguard Worker        "TetherController.cpp",
65*8542734aSAndroid Build Coastguard Worker        "UidRanges.cpp",
66*8542734aSAndroid Build Coastguard Worker        "WakeupController.cpp",
67*8542734aSAndroid Build Coastguard Worker        "XfrmController.cpp",
68*8542734aSAndroid Build Coastguard Worker    ],
69*8542734aSAndroid Build Coastguard Worker    shared_libs: [
70*8542734aSAndroid Build Coastguard Worker        "libbase",
71*8542734aSAndroid Build Coastguard Worker        "libbinder",
72*8542734aSAndroid Build Coastguard Worker        "libnetutils",
73*8542734aSAndroid Build Coastguard Worker        "libnetdutils",
74*8542734aSAndroid Build Coastguard Worker        "libpcap",
75*8542734aSAndroid Build Coastguard Worker        "libssl",
76*8542734aSAndroid Build Coastguard Worker        "libsysutils",
77*8542734aSAndroid Build Coastguard Worker        "netd_event_listener_interface-V1-cpp",
78*8542734aSAndroid Build Coastguard Worker    ],
79*8542734aSAndroid Build Coastguard Worker    static_libs: [
80*8542734aSAndroid Build Coastguard Worker        "libip_checksum",
81*8542734aSAndroid Build Coastguard Worker        "libtcutils",
82*8542734aSAndroid Build Coastguard Worker    ],
83*8542734aSAndroid Build Coastguard Worker    aidl: {
84*8542734aSAndroid Build Coastguard Worker        export_aidl_headers: true,
85*8542734aSAndroid Build Coastguard Worker        local_include_dirs: ["binder"],
86*8542734aSAndroid Build Coastguard Worker    },
87*8542734aSAndroid Build Coastguard Worker}
88*8542734aSAndroid Build Coastguard Worker
89*8542734aSAndroid Build Coastguard Workercc_defaults {
90*8542734aSAndroid Build Coastguard Worker    name: "netd_default_sources",
91*8542734aSAndroid Build Coastguard Worker    defaults: [
92*8542734aSAndroid Build Coastguard Worker        "netd_aidl_interface_lateststable_cpp_shared",
93*8542734aSAndroid Build Coastguard Worker        "netd_defaults",
94*8542734aSAndroid Build Coastguard Worker    ],
95*8542734aSAndroid Build Coastguard Worker    include_dirs: [
96*8542734aSAndroid Build Coastguard Worker        "system/netd/include",
97*8542734aSAndroid Build Coastguard Worker    ],
98*8542734aSAndroid Build Coastguard Worker    shared_libs: [
99*8542734aSAndroid Build Coastguard Worker        "[email protected]",
100*8542734aSAndroid Build Coastguard Worker        "[email protected]",
101*8542734aSAndroid Build Coastguard Worker        "android.system.net.netd-V1-ndk",
102*8542734aSAndroid Build Coastguard Worker        "libbase",
103*8542734aSAndroid Build Coastguard Worker        "libbinder",
104*8542734aSAndroid Build Coastguard Worker        "libbinder_ndk",
105*8542734aSAndroid Build Coastguard Worker        "libcutils",
106*8542734aSAndroid Build Coastguard Worker        "libdl",
107*8542734aSAndroid Build Coastguard Worker        "libhidlbase",
108*8542734aSAndroid Build Coastguard Worker        "liblog",
109*8542734aSAndroid Build Coastguard Worker        "libnetd_updatable",
110*8542734aSAndroid Build Coastguard Worker        "libnetd_resolv",
111*8542734aSAndroid Build Coastguard Worker        "libnetdutils",
112*8542734aSAndroid Build Coastguard Worker        "libnetutils",
113*8542734aSAndroid Build Coastguard Worker        "libpcap",
114*8542734aSAndroid Build Coastguard Worker        "libprocessgroup",
115*8542734aSAndroid Build Coastguard Worker        "libselinux",
116*8542734aSAndroid Build Coastguard Worker        "libsysutils",
117*8542734aSAndroid Build Coastguard Worker        "libutils",
118*8542734aSAndroid Build Coastguard Worker        "mdns_aidl_interface-V1-cpp",
119*8542734aSAndroid Build Coastguard Worker        "netd_event_listener_interface-V1-cpp",
120*8542734aSAndroid Build Coastguard Worker        "oemnetd_aidl_interface-cpp",
121*8542734aSAndroid Build Coastguard Worker    ],
122*8542734aSAndroid Build Coastguard Worker    static_libs: [
123*8542734aSAndroid Build Coastguard Worker        "libip_checksum",
124*8542734aSAndroid Build Coastguard Worker        "libnetd_server",
125*8542734aSAndroid Build Coastguard Worker        "libtcutils",
126*8542734aSAndroid Build Coastguard Worker    ],
127*8542734aSAndroid Build Coastguard Worker    srcs: [
128*8542734aSAndroid Build Coastguard Worker        "DummyNetwork.cpp",
129*8542734aSAndroid Build Coastguard Worker        "EventReporter.cpp",
130*8542734aSAndroid Build Coastguard Worker        "FwmarkServer.cpp",
131*8542734aSAndroid Build Coastguard Worker        "LocalNetwork.cpp",
132*8542734aSAndroid Build Coastguard Worker        "MDnsService.cpp",
133*8542734aSAndroid Build Coastguard Worker        "NetdCommand.cpp",
134*8542734aSAndroid Build Coastguard Worker        "NetdHwAidlService.cpp",
135*8542734aSAndroid Build Coastguard Worker        "NetdHwService.cpp",
136*8542734aSAndroid Build Coastguard Worker        "NetdNativeService.cpp",
137*8542734aSAndroid Build Coastguard Worker        "NetlinkHandler.cpp",
138*8542734aSAndroid Build Coastguard Worker        "Network.cpp",
139*8542734aSAndroid Build Coastguard Worker        "NetworkController.cpp",
140*8542734aSAndroid Build Coastguard Worker        "OemNetdListener.cpp",
141*8542734aSAndroid Build Coastguard Worker        "PhysicalNetwork.cpp",
142*8542734aSAndroid Build Coastguard Worker        "Process.cpp",
143*8542734aSAndroid Build Coastguard Worker        "UnreachableNetwork.cpp",
144*8542734aSAndroid Build Coastguard Worker        "VirtualNetwork.cpp",
145*8542734aSAndroid Build Coastguard Worker        "oem_iptables_hook.cpp",
146*8542734aSAndroid Build Coastguard Worker    ],
147*8542734aSAndroid Build Coastguard Worker}
148*8542734aSAndroid Build Coastguard Worker
149*8542734aSAndroid Build Coastguard Workervintf_fragment {
150*8542734aSAndroid Build Coastguard Worker    name: "android.system.net.netd-service.xml",
151*8542734aSAndroid Build Coastguard Worker    src: "android.system.net.netd-service.xml",
152*8542734aSAndroid Build Coastguard Worker}
153*8542734aSAndroid Build Coastguard Worker
154*8542734aSAndroid Build Coastguard Workercc_binary {
155*8542734aSAndroid Build Coastguard Worker    name: "netd",
156*8542734aSAndroid Build Coastguard Worker    defaults: [
157*8542734aSAndroid Build Coastguard Worker        "netd_default_sources",
158*8542734aSAndroid Build Coastguard Worker    ],
159*8542734aSAndroid Build Coastguard Worker    init_rc: ["netd.rc"],
160*8542734aSAndroid Build Coastguard Worker    vintf_fragment_modules: ["android.system.net.netd-service.xml"],
161*8542734aSAndroid Build Coastguard Worker    required: [
162*8542734aSAndroid Build Coastguard Worker        "mainline_tethering_platform_components",
163*8542734aSAndroid Build Coastguard Worker    ],
164*8542734aSAndroid Build Coastguard Worker    srcs: [
165*8542734aSAndroid Build Coastguard Worker        "main.cpp",
166*8542734aSAndroid Build Coastguard Worker    ],
167*8542734aSAndroid Build Coastguard Worker    sanitize: {
168*8542734aSAndroid Build Coastguard Worker        cfi: true,
169*8542734aSAndroid Build Coastguard Worker    },
170*8542734aSAndroid Build Coastguard Worker}
171*8542734aSAndroid Build Coastguard Worker
172*8542734aSAndroid Build Coastguard Workercc_binary {
173*8542734aSAndroid Build Coastguard Worker    name: "ndc",
174*8542734aSAndroid Build Coastguard Worker    defaults: [
175*8542734aSAndroid Build Coastguard Worker        "netd_aidl_interface_lateststable_cpp_shared",
176*8542734aSAndroid Build Coastguard Worker        "netd_defaults",
177*8542734aSAndroid Build Coastguard Worker    ],
178*8542734aSAndroid Build Coastguard Worker    include_dirs: [
179*8542734aSAndroid Build Coastguard Worker        "system/netd/include",
180*8542734aSAndroid Build Coastguard Worker    ],
181*8542734aSAndroid Build Coastguard Worker    header_libs: [
182*8542734aSAndroid Build Coastguard Worker        "libnetd_client_headers",
183*8542734aSAndroid Build Coastguard Worker    ],
184*8542734aSAndroid Build Coastguard Worker    shared_libs: [
185*8542734aSAndroid Build Coastguard Worker        "libbase",
186*8542734aSAndroid Build Coastguard Worker        "libnetdutils",
187*8542734aSAndroid Build Coastguard Worker        "libnetutils",
188*8542734aSAndroid Build Coastguard Worker        "libcutils",
189*8542734aSAndroid Build Coastguard Worker        "liblog",
190*8542734aSAndroid Build Coastguard Worker        "libutils",
191*8542734aSAndroid Build Coastguard Worker        "libbinder",
192*8542734aSAndroid Build Coastguard Worker        "dnsresolver_aidl_interface-V7-cpp",
193*8542734aSAndroid Build Coastguard Worker    ],
194*8542734aSAndroid Build Coastguard Worker    srcs: [
195*8542734aSAndroid Build Coastguard Worker        "ndc.cpp",
196*8542734aSAndroid Build Coastguard Worker        "UidRanges.cpp",
197*8542734aSAndroid Build Coastguard Worker        "NdcDispatcher.cpp",
198*8542734aSAndroid Build Coastguard Worker    ],
199*8542734aSAndroid Build Coastguard Worker    sanitize: {
200*8542734aSAndroid Build Coastguard Worker        cfi: true,
201*8542734aSAndroid Build Coastguard Worker    },
202*8542734aSAndroid Build Coastguard Worker}
203*8542734aSAndroid Build Coastguard Worker
204*8542734aSAndroid Build Coastguard Workercc_test {
205*8542734aSAndroid Build Coastguard Worker    name: "netd_unit_test",
206*8542734aSAndroid Build Coastguard Worker    defaults: [
207*8542734aSAndroid Build Coastguard Worker        "netd_aidl_interface_lateststable_cpp_static",
208*8542734aSAndroid Build Coastguard Worker        "netd_defaults",
209*8542734aSAndroid Build Coastguard Worker    ],
210*8542734aSAndroid Build Coastguard Worker    test_suites: ["device-tests"],
211*8542734aSAndroid Build Coastguard Worker    require_root: true,
212*8542734aSAndroid Build Coastguard Worker    include_dirs: [
213*8542734aSAndroid Build Coastguard Worker        "system/netd/include",
214*8542734aSAndroid Build Coastguard Worker        "system/netd/server/binder",
215*8542734aSAndroid Build Coastguard Worker        "system/netd/tests",
216*8542734aSAndroid Build Coastguard Worker    ],
217*8542734aSAndroid Build Coastguard Worker    tidy_timeout_srcs: [
218*8542734aSAndroid Build Coastguard Worker        "BandwidthControllerTest.cpp",
219*8542734aSAndroid Build Coastguard Worker        "InterfaceControllerTest.cpp",
220*8542734aSAndroid Build Coastguard Worker        "XfrmControllerTest.cpp",
221*8542734aSAndroid Build Coastguard Worker    ],
222*8542734aSAndroid Build Coastguard Worker    srcs: [
223*8542734aSAndroid Build Coastguard Worker        "BandwidthControllerTest.cpp",
224*8542734aSAndroid Build Coastguard Worker        "ControllersTest.cpp",
225*8542734aSAndroid Build Coastguard Worker        "FirewallControllerTest.cpp",
226*8542734aSAndroid Build Coastguard Worker        "IdletimerControllerTest.cpp",
227*8542734aSAndroid Build Coastguard Worker        "InterfaceControllerTest.cpp",
228*8542734aSAndroid Build Coastguard Worker        "IptablesBaseTest.cpp",
229*8542734aSAndroid Build Coastguard Worker        "IptablesRestoreControllerTest.cpp",
230*8542734aSAndroid Build Coastguard Worker        "NFLogListenerTest.cpp",
231*8542734aSAndroid Build Coastguard Worker        "RouteControllerTest.cpp",
232*8542734aSAndroid Build Coastguard Worker        "SockDiagTest.cpp",
233*8542734aSAndroid Build Coastguard Worker        "StrictControllerTest.cpp",
234*8542734aSAndroid Build Coastguard Worker        "TetherControllerTest.cpp",
235*8542734aSAndroid Build Coastguard Worker        "XfrmControllerTest.cpp",
236*8542734aSAndroid Build Coastguard Worker        "WakeupControllerTest.cpp",
237*8542734aSAndroid Build Coastguard Worker    ],
238*8542734aSAndroid Build Coastguard Worker    static_libs: [
239*8542734aSAndroid Build Coastguard Worker        "libgmock",
240*8542734aSAndroid Build Coastguard Worker        "libip_checksum",
241*8542734aSAndroid Build Coastguard Worker        "libnetd_server",
242*8542734aSAndroid Build Coastguard Worker        "libnetd_test_tun_interface",
243*8542734aSAndroid Build Coastguard Worker        "libtcutils",
244*8542734aSAndroid Build Coastguard Worker        "netd_event_listener_interface-V1-cpp",
245*8542734aSAndroid Build Coastguard Worker    ],
246*8542734aSAndroid Build Coastguard Worker    shared_libs: [
247*8542734aSAndroid Build Coastguard Worker        "libbase",
248*8542734aSAndroid Build Coastguard Worker        "libbinder",
249*8542734aSAndroid Build Coastguard Worker        "libcrypto",
250*8542734aSAndroid Build Coastguard Worker        "libcutils",
251*8542734aSAndroid Build Coastguard Worker        "liblog",
252*8542734aSAndroid Build Coastguard Worker        "libnetdutils",
253*8542734aSAndroid Build Coastguard Worker        "libnetutils",
254*8542734aSAndroid Build Coastguard Worker        "libsysutils",
255*8542734aSAndroid Build Coastguard Worker        "libutils",
256*8542734aSAndroid Build Coastguard Worker    ],
257*8542734aSAndroid Build Coastguard Worker    // tidy: false,  // cuts test build time by almost 1 minute
258*8542734aSAndroid Build Coastguard Worker}
259*8542734aSAndroid Build Coastguard Worker
260*8542734aSAndroid Build Coastguard Workercc_defaults {
261*8542734aSAndroid Build Coastguard Worker    name: "netd_aidl_fuzzer_defaults",
262*8542734aSAndroid Build Coastguard Worker    defaults: [
263*8542734aSAndroid Build Coastguard Worker        "netd_default_sources",
264*8542734aSAndroid Build Coastguard Worker        "fuzzer_disable_leaks",
265*8542734aSAndroid Build Coastguard Worker    ],
266*8542734aSAndroid Build Coastguard Worker    srcs: [
267*8542734aSAndroid Build Coastguard Worker        "Controllers.cpp",
268*8542734aSAndroid Build Coastguard Worker    ],
269*8542734aSAndroid Build Coastguard Worker    fuzz_config: {
270*8542734aSAndroid Build Coastguard Worker        cc: [
271*8542734aSAndroid Build Coastguard Worker            "[email protected]",
272*8542734aSAndroid Build Coastguard Worker        ],
273*8542734aSAndroid Build Coastguard Worker        triage_assignee: "[email protected]",
274*8542734aSAndroid Build Coastguard Worker    },
275*8542734aSAndroid Build Coastguard Worker}
276*8542734aSAndroid Build Coastguard Worker
277*8542734aSAndroid Build Coastguard Workercc_fuzz {
278*8542734aSAndroid Build Coastguard Worker    name: "netd_hw_service_fuzzer",
279*8542734aSAndroid Build Coastguard Worker    defaults: [
280*8542734aSAndroid Build Coastguard Worker        "service_fuzzer_defaults",
281*8542734aSAndroid Build Coastguard Worker        "netd_aidl_fuzzer_defaults",
282*8542734aSAndroid Build Coastguard Worker    ],
283*8542734aSAndroid Build Coastguard Worker    srcs: [
284*8542734aSAndroid Build Coastguard Worker        "aidl-fuzzers/NetdHwAidlServiceFuzzer.cpp",
285*8542734aSAndroid Build Coastguard Worker    ],
286*8542734aSAndroid Build Coastguard Worker}
287*8542734aSAndroid Build Coastguard Worker
288*8542734aSAndroid Build Coastguard Workercc_fuzz {
289*8542734aSAndroid Build Coastguard Worker    name: "netd_native_service_fuzzer",
290*8542734aSAndroid Build Coastguard Worker    defaults: [
291*8542734aSAndroid Build Coastguard Worker        "service_fuzzer_defaults",
292*8542734aSAndroid Build Coastguard Worker        "netd_aidl_fuzzer_defaults",
293*8542734aSAndroid Build Coastguard Worker    ],
294*8542734aSAndroid Build Coastguard Worker    srcs: [
295*8542734aSAndroid Build Coastguard Worker        "aidl-fuzzers/NetdNativeServiceFuzzer.cpp",
296*8542734aSAndroid Build Coastguard Worker    ],
297*8542734aSAndroid Build Coastguard Worker}
298