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