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