Luke Huang | caebcbb | 2018-09-27 20:37:14 +0800 | [diff] [blame] | 1 | aidl_interface { |
| 2 | name: "netd_aidl_interface", |
| 3 | local_include_dir: "binder", |
| 4 | srcs: [ |
Luke Huang | 03074eb | 2018-11-23 17:03:03 +0800 | [diff] [blame] | 5 | "binder/android/net/INetd.aidl", |
Luke Huang | 528af60 | 2018-08-29 19:06:05 +0800 | [diff] [blame] | 6 | // AIDL interface that callers can implement to receive networking events from netd. |
| 7 | "binder/android/net/INetdUnsolicitedEventListener.aidl", |
Luke Huang | 03074eb | 2018-11-23 17:03:03 +0800 | [diff] [blame] | 8 | "binder/android/net/InterfaceConfigurationParcel.aidl", |
Chiachang Wang | 00fc62f | 2019-12-04 20:38:26 +0800 | [diff] [blame] | 9 | "binder/android/net/MarkMaskParcel.aidl", |
Tyler Wear | fa94a27 | 2019-12-05 15:01:48 -0800 | [diff] [blame] | 10 | "binder/android/net/RouteInfoParcel.aidl", |
Chiachang Wang | 08cb211 | 2019-12-10 09:53:24 +0800 | [diff] [blame] | 11 | "binder/android/net/TetherConfigParcel.aidl", |
Lorenzo Colitti | f0e051c | 2020-04-06 09:19:57 +0000 | [diff] [blame] | 12 | "binder/android/net/TetherOffloadRuleParcel.aidl", |
Luke Huang | caebcbb | 2018-09-27 20:37:14 +0800 | [diff] [blame] | 13 | "binder/android/net/TetherStatsParcel.aidl", |
Luke Huang | 94658ac | 2018-10-18 19:35:12 +0900 | [diff] [blame] | 14 | "binder/android/net/UidRangeParcel.aidl", |
Luke Huang | caebcbb | 2018-09-27 20:37:14 +0800 | [diff] [blame] | 15 | ], |
Luke Huang | f778204 | 2018-08-08 13:13:04 +0800 | [diff] [blame] | 16 | backend: { |
Xiao Ma | 33d562a | 2018-12-16 16:27:38 +0900 | [diff] [blame] | 17 | cpp: { |
| 18 | gen_log: true, |
| 19 | }, |
Luke Huang | 6764931 | 2020-04-01 01:17:42 +0800 | [diff] [blame] | 20 | java: { |
Lorenzo Colitti | e90d5c4 | 2020-04-30 08:33:38 +0000 | [diff] [blame] | 21 | // TODO: Remove apex_available and restrict visibility to only mainline modules that are |
| 22 | // either outside the system server or use jarjar to rename the generated AIDL classes. |
Luke Huang | 6764931 | 2020-04-01 01:17:42 +0800 | [diff] [blame] | 23 | apex_available: [ |
Jiyong Park | 90813ad | 2020-04-08 14:12:27 +0900 | [diff] [blame] | 24 | "//apex_available:platform", // used from services.net |
Luke Huang | 6764931 | 2020-04-01 01:17:42 +0800 | [diff] [blame] | 25 | "com.android.bluetooth.updatable", |
Hungming Chen | c6ec17f | 2020-05-29 19:54:57 +0800 | [diff] [blame] | 26 | "com.android.tethering", |
Luke Huang | 6764931 | 2020-04-01 01:17:42 +0800 | [diff] [blame] | 27 | "com.android.wifi", |
| 28 | ], |
| 29 | }, |
Luke Huang | f778204 | 2018-08-08 13:13:04 +0800 | [diff] [blame] | 30 | }, |
Luke Huang | 0068128 | 2019-04-26 12:09:05 +0800 | [diff] [blame] | 31 | versions: [ |
| 32 | "1", |
| 33 | "2", |
Luke Huang | 29e5fdf | 2020-04-07 16:15:23 +0000 | [diff] [blame] | 34 | "3", |
Lorenzo Colitti | c44d466 | 2020-06-09 12:47:27 +0900 | [diff] [blame] | 35 | "4", |
Luke Huang | 0068128 | 2019-04-26 12:09:05 +0800 | [diff] [blame] | 36 | ], |
Luke Huang | caebcbb | 2018-09-27 20:37:14 +0800 | [diff] [blame] | 37 | } |
| 38 | |
Luke Huang | 0e5e69d | 2019-03-06 15:42:38 +0800 | [diff] [blame] | 39 | aidl_interface { |
Lorenzo Colitti | e90d5c4 | 2020-04-30 08:33:38 +0000 | [diff] [blame] | 40 | name: "netd_event_listener_interface", |
| 41 | local_include_dir: "binder", |
| 42 | srcs: [ |
| 43 | "binder/android/net/metrics/INetdEventListener.aidl", |
| 44 | ], |
| 45 | versions: ["1"], |
| 46 | backend: { |
| 47 | ndk: { |
| 48 | apex_available: [ |
| 49 | "//apex_available:platform", |
| 50 | "com.android.resolv", |
| 51 | ], |
Jooyung Han | 4696979 | 2020-04-16 18:48:35 +0900 | [diff] [blame] | 52 | min_sdk_version: "29", |
Lorenzo Colitti | e90d5c4 | 2020-04-30 08:33:38 +0000 | [diff] [blame] | 53 | }, |
| 54 | }, |
| 55 | } |
| 56 | |
| 57 | aidl_interface { |
Luke Huang | 2ff8b34 | 2019-04-30 15:33:33 +0800 | [diff] [blame] | 58 | // This interface is for OEM calls to netd and vice versa that do not exist in AOSP. |
| 59 | // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl |
| 60 | // because those interfaces are versioned. |
| 61 | // These interfaces must never be versioned or OEMs will not be able to change them. |
Luke Huang | 0e5e69d | 2019-03-06 15:42:38 +0800 | [diff] [blame] | 62 | name: "oemnetd_aidl_interface", |
Jiyong Park | 6391797 | 2020-04-13 15:09:35 +0900 | [diff] [blame] | 63 | unstable: true, |
Luke Huang | 0e5e69d | 2019-03-06 15:42:38 +0800 | [diff] [blame] | 64 | local_include_dir: "binder", |
| 65 | srcs: [ |
| 66 | "binder/com/android/internal/net/IOemNetd.aidl", |
Luke Huang | 2ff8b34 | 2019-04-30 15:33:33 +0800 | [diff] [blame] | 67 | "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl", |
Luke Huang | 0e5e69d | 2019-03-06 15:42:38 +0800 | [diff] [blame] | 68 | ], |
| 69 | } |
| 70 | |
Lorenzo Colitti | e90d5c4 | 2020-04-30 08:33:38 +0000 | [diff] [blame] | 71 | // Convenience build target for the version of the netd stable AIDL interface used by the platform. |
| 72 | // This exists to ensure that all non-updatable code in the system server uses the same version. |
| 73 | // Mixing different versions of generated classes results in code non-deterministically(?) using one |
| 74 | // of the compiled-in versions, and potentially crashing when code compiled against a newer version |
| 75 | // ends up using a generated class from an older version and calls methods that don't exist. |
| 76 | // This must be a frozen version on REL builds and can be -unstable on development builds. |
| 77 | // See http://b/143560726 for an example. |
| 78 | java_library { |
| 79 | name: "netd_aidl_interfaces-platform-java", |
| 80 | static_libs: [ |
| 81 | "netd_aidl_interface-java", |
| 82 | "netd_event_listener_interface-java", |
| 83 | ], |
| 84 | // TODO: remove bluetooth, which doesn't actually use netd at all. |
| 85 | apex_available: [ |
Jiyong Park | 2c6d794 | 2020-05-04 20:20:54 +0900 | [diff] [blame] | 86 | "//apex_available:platform", // due to the dependency from services.net |
Lorenzo Colitti | e90d5c4 | 2020-04-30 08:33:38 +0000 | [diff] [blame] | 87 | "com.android.bluetooth.updatable", |
| 88 | ], |
| 89 | sdk_version: "system_current", |
| 90 | } |
| 91 | |
| 92 | // These are used in netd_integration_test |
| 93 | // TODO: fold these into a cc_library_static after converting netd/server to Android.bp |
| 94 | filegroup { |
| 95 | name: "netd_integration_test_shared", |
| 96 | srcs: [ |
| 97 | "NetdConstants.cpp", |
| 98 | "InterfaceController.cpp", |
| 99 | "NetlinkCommands.cpp", |
| 100 | "NetlinkListener.cpp", |
Treehugger Robot | fe5f4bd | 2020-06-01 15:18:04 +0000 | [diff] [blame] | 101 | "OffloadUtils.cpp", |
Lorenzo Colitti | e90d5c4 | 2020-04-30 08:33:38 +0000 | [diff] [blame] | 102 | "SockDiag.cpp", |
| 103 | "XfrmController.cpp", |
| 104 | "TrafficController.cpp", |
| 105 | ], |
| 106 | } |
| 107 | |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 108 | // Modules common to both netd and netd_unit_test |
| 109 | cc_library_static { |
| 110 | name: "libnetd_server", |
| 111 | defaults: ["netd_defaults"], |
| 112 | include_dirs: [ |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 113 | "system/netd/include", |
| 114 | "system/netd/server/binder", |
| 115 | ], |
| 116 | srcs: [ |
| 117 | "BandwidthController.cpp", |
Lorenzo Colitti | 7ef8c0f | 2019-01-11 22:34:58 +0900 | [diff] [blame] | 118 | "ClatdController.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 119 | "Controllers.cpp", |
| 120 | "NetdConstants.cpp", |
| 121 | "FirewallController.cpp", |
| 122 | "IdletimerController.cpp", |
| 123 | "InterfaceController.cpp", |
| 124 | "IptablesRestoreController.cpp", |
| 125 | "NFLogListener.cpp", |
| 126 | "NetlinkCommands.cpp", |
| 127 | "NetlinkListener.cpp", |
| 128 | "NetlinkManager.cpp", |
Treehugger Robot | fe5f4bd | 2020-06-01 15:18:04 +0000 | [diff] [blame] | 129 | "OffloadUtils.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 130 | "RouteController.cpp", |
| 131 | "SockDiag.cpp", |
| 132 | "StrictController.cpp", |
| 133 | "TcpSocketMonitor.cpp", |
| 134 | "TetherController.cpp", |
| 135 | "TrafficController.cpp", |
| 136 | "UidRanges.cpp", |
| 137 | "WakeupController.cpp", |
| 138 | "XfrmController.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 139 | ], |
| 140 | shared_libs: [ |
Chenbo Feng | a54aaf5 | 2018-11-07 17:51:51 -0800 | [diff] [blame] | 141 | "libbpf_android", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 142 | "libbase", |
| 143 | "libbinder", |
Chenbo Feng | d6104d1 | 2018-10-16 20:29:29 -0700 | [diff] [blame] | 144 | "libnetdbpf", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 145 | "libnetutils", |
| 146 | "libnetdutils", |
| 147 | "libpcap", |
| 148 | "libqtaguid", |
| 149 | "libssl", |
Luke Huang | 8b4ee58 | 2020-04-14 17:42:46 +0000 | [diff] [blame] | 150 | "netd_aidl_interface-cpp", |
Jeongik Cha | b54ecec | 2019-10-15 17:06:59 +0900 | [diff] [blame] | 151 | "netd_event_listener_interface-cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 152 | ], |
| 153 | aidl: { |
| 154 | export_aidl_headers: true, |
| 155 | local_include_dirs: ["binder"], |
| 156 | }, |
| 157 | } |
| 158 | |
| 159 | cc_binary { |
| 160 | name: "netd", |
| 161 | defaults: ["netd_defaults"], |
| 162 | include_dirs: [ |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 163 | "external/mdnsresponder/mDNSShared", |
| 164 | "system/netd/include", |
| 165 | ], |
| 166 | init_rc: ["netd.rc"], |
Maciej Żenczykowski | f428d6e | 2020-02-19 10:26:35 -0800 | [diff] [blame] | 167 | required: [ |
| 168 | "bpfloader", |
| 169 | "clatd.o", |
| 170 | "netd.o", |
| 171 | "offload.o", |
| 172 | ], |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 173 | shared_libs: [ |
| 174 | "android.system.net.netd@1.0", |
| 175 | "android.system.net.netd@1.1", |
Bernie Innocenti | f89b351 | 2018-08-30 07:34:37 +0900 | [diff] [blame] | 176 | "libbase", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 177 | "libbinder", |
Chenbo Feng | a54aaf5 | 2018-11-07 17:51:51 -0800 | [diff] [blame] | 178 | "libbpf_android", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 179 | "libcutils", |
| 180 | "libdl", |
| 181 | "libhidlbase", |
Jeongik Cha | 0f750c2 | 2019-02-22 18:43:44 +0900 | [diff] [blame] | 182 | "libjsoncpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 183 | "liblog", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 184 | "libmdnssd", |
Jooyung Han | 3e64aa1 | 2019-11-27 15:36:29 +0900 | [diff] [blame] | 185 | "libnetd_resolv", |
Chenbo Feng | d6104d1 | 2018-10-16 20:29:29 -0700 | [diff] [blame] | 186 | "libnetdbpf", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 187 | "libnetdutils", |
Bernie Innocenti | f89b351 | 2018-08-30 07:34:37 +0900 | [diff] [blame] | 188 | "libnetutils", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 189 | "libpcap", |
Suren Baghdasaryan | e072a3c | 2019-01-16 14:36:07 -0800 | [diff] [blame] | 190 | "libprocessgroup", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 191 | "libqtaguid", |
| 192 | "libselinux", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 193 | "libsysutils", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 194 | "libutils", |
Luke Huang | 29e5fdf | 2020-04-07 16:15:23 +0000 | [diff] [blame] | 195 | "netd_aidl_interface-cpp", |
Jeongik Cha | b54ecec | 2019-10-15 17:06:59 +0900 | [diff] [blame] | 196 | "netd_event_listener_interface-cpp", |
Luke Huang | 0e5e69d | 2019-03-06 15:42:38 +0800 | [diff] [blame] | 197 | "oemnetd_aidl_interface-cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 198 | ], |
| 199 | static_libs: [ |
| 200 | "libnetd_server", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 201 | ], |
| 202 | srcs: [ |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 203 | "DummyNetwork.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 204 | "EventReporter.cpp", |
| 205 | "FwmarkServer.cpp", |
| 206 | "LocalNetwork.cpp", |
| 207 | "MDnsSdListener.cpp", |
| 208 | "NetdCommand.cpp", |
| 209 | "NetdHwService.cpp", |
| 210 | "NetdNativeService.cpp", |
| 211 | "NetlinkHandler.cpp", |
| 212 | "Network.cpp", |
| 213 | "NetworkController.cpp", |
Luke Huang | 0e5e69d | 2019-03-06 15:42:38 +0800 | [diff] [blame] | 214 | "OemNetdListener.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 215 | "PhysicalNetwork.cpp", |
| 216 | "PppController.cpp", |
| 217 | "Process.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 218 | "VirtualNetwork.cpp", |
| 219 | "main.cpp", |
| 220 | "oem_iptables_hook.cpp", |
| 221 | ], |
Ken Chen | 2e413c3 | 2020-01-13 11:59:53 +0800 | [diff] [blame] | 222 | sanitize: { |
| 223 | cfi: true, |
Ken Chen | 2e413c3 | 2020-01-13 11:59:53 +0800 | [diff] [blame] | 224 | }, |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 225 | } |
| 226 | |
| 227 | cc_binary { |
| 228 | name: "ndc", |
| 229 | defaults: ["netd_defaults"], |
Luke Huang | cfd04b2 | 2019-03-18 15:53:21 +0800 | [diff] [blame] | 230 | include_dirs: [ |
| 231 | "system/netd/include", |
| 232 | ], |
| 233 | header_libs: [ |
| 234 | "libnetd_client_headers", |
| 235 | ], |
| 236 | shared_libs: [ |
| 237 | "libbase", |
| 238 | "libnetdutils", |
| 239 | "libnetutils", |
| 240 | "libcutils", |
| 241 | "liblog", |
| 242 | "libutils", |
| 243 | "libbinder", |
Jeongik Cha | b54ecec | 2019-10-15 17:06:59 +0900 | [diff] [blame] | 244 | "dnsresolver_aidl_interface-cpp", |
| 245 | "netd_aidl_interface-cpp", |
Luke Huang | cfd04b2 | 2019-03-18 15:53:21 +0800 | [diff] [blame] | 246 | ], |
| 247 | srcs: [ |
| 248 | "ndc.cpp", |
| 249 | "UidRanges.cpp", |
| 250 | "NdcDispatcher.cpp", |
| 251 | ], |
Ken Chen | 2e413c3 | 2020-01-13 11:59:53 +0800 | [diff] [blame] | 252 | sanitize: { |
| 253 | cfi: true, |
Ken Chen | 2e413c3 | 2020-01-13 11:59:53 +0800 | [diff] [blame] | 254 | }, |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 255 | } |
| 256 | |
| 257 | cc_test { |
| 258 | name: "netd_unit_test", |
| 259 | defaults: ["netd_defaults"], |
| 260 | test_suites: ["device-tests"], |
Bernie Innocenti | 83a67ca | 2019-06-19 16:28:05 +0900 | [diff] [blame] | 261 | require_root: true, |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 262 | include_dirs: [ |
| 263 | "system/netd/include", |
| 264 | "system/netd/server/binder", |
| 265 | "system/netd/tests", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 266 | ], |
| 267 | srcs: [ |
| 268 | "BandwidthControllerTest.cpp", |
Lorenzo Colitti | 7ef8c0f | 2019-01-11 22:34:58 +0900 | [diff] [blame] | 269 | "ClatdControllerTest.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 270 | "ControllersTest.cpp", |
| 271 | "FirewallControllerTest.cpp", |
| 272 | "IdletimerControllerTest.cpp", |
| 273 | "InterfaceControllerTest.cpp", |
| 274 | "IptablesBaseTest.cpp", |
| 275 | "IptablesRestoreControllerTest.cpp", |
| 276 | "NFLogListenerTest.cpp", |
Maciej Żenczykowski | eec7208 | 2020-02-04 23:29:41 -0800 | [diff] [blame] | 277 | "OffloadUtilsTest.cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 278 | "RouteControllerTest.cpp", |
| 279 | "SockDiagTest.cpp", |
| 280 | "StrictControllerTest.cpp", |
| 281 | "TetherControllerTest.cpp", |
| 282 | "TrafficControllerTest.cpp", |
| 283 | "XfrmControllerTest.cpp", |
| 284 | "WakeupControllerTest.cpp", |
| 285 | ], |
| 286 | static_libs: [ |
| 287 | "libgmock", |
| 288 | "libnetd_server", |
| 289 | "libnetd_test_tun_interface", |
Lorenzo Colitti | 3f52fae | 2019-06-27 18:46:22 +0900 | [diff] [blame] | 290 | "libqtaguid", |
Lorenzo Colitti | f0e051c | 2020-04-06 09:19:57 +0000 | [diff] [blame] | 291 | "netd_aidl_interface-unstable-cpp", |
Jeongik Cha | b54ecec | 2019-10-15 17:06:59 +0900 | [diff] [blame] | 292 | "netd_event_listener_interface-cpp", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 293 | ], |
| 294 | shared_libs: [ |
| 295 | "libbase", |
| 296 | "libbinder", |
Chenbo Feng | a54aaf5 | 2018-11-07 17:51:51 -0800 | [diff] [blame] | 297 | "libbpf_android", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 298 | "libcrypto", |
| 299 | "libcutils", |
| 300 | "liblog", |
Chenbo Feng | d6104d1 | 2018-10-16 20:29:29 -0700 | [diff] [blame] | 301 | "libnetdbpf", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 302 | "libnetdutils", |
| 303 | "libnetutils", |
Bernie Innocenti | 9895179 | 2018-06-26 17:13:44 +0900 | [diff] [blame] | 304 | "libsysutils", |
| 305 | "libutils", |
| 306 | ], |
| 307 | } |