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