blob: 8969886ad28bb6b5420ce51b4e51c885444a3fe1 [file] [log] [blame]
Lorenzo Colitti84485a42018-12-18 19:16:12 +09001cc_library_headers {
2 name: "libnetd_resolv_headers",
3 export_include_dirs: ["include"],
4}
5
Bernie Innocenti86890c92020-01-08 21:00:39 +09006// Used only by dns_responder_client_ndk.cpp for ResolverStats.h
7// TODO: refactor stats to use a Parcel and eliminate this dependency
chenbruce2e2446c2019-06-28 16:37:36 +08008cc_library_headers {
9 name: "libnetd_resolv_internal_headers",
10 export_include_dirs: ["."],
11}
12
Luke Huang27616fe2020-05-26 17:31:15 +080013cc_library_headers {
14 name: "dnsproxyd_protocol_headers",
15 export_include_dirs: ["include/dnsproxyd_protocol"],
Remi NGUYEN VAN35e9af02020-11-27 18:59:19 +090016 apex_available: [
17 "//apex_available:platform",
18 "com.android.tethering",
19 ],
Luke Huang27616fe2020-05-26 17:31:15 +080020}
21
Luke Huang403c0442019-02-25 15:33:42 +080022aidl_interface {
23 name: "dnsresolver_aidl_interface",
24 local_include_dir: "binder",
25 srcs: [
26 "binder/android/net/IDnsResolver.aidl",
chenbrucefd837fa2019-10-29 18:35:36 +080027 "binder/android/net/ResolverHostsParcel.aidl",
Ken Chena6ac2a62020-04-07 17:25:56 +080028 "binder/android/net/ResolverOptionsParcel.aidl",
waynema37255182019-03-18 13:22:56 +080029 "binder/android/net/ResolverParamsParcel.aidl",
paulhub6d71b62020-11-17 00:29:29 +080030 // New AIDL classes should go into android.net.resolv.aidl so they can be clearly identified
31 "binder/android/net/resolv/aidl/**/*.aidl",
Luke Huang403c0442019-02-25 15:33:42 +080032 ],
Hungming Chena32c8c12019-01-25 10:47:40 +080033 imports: [
34 "netd_event_listener_interface",
35 ],
Luke Huang598daad2019-05-02 18:10:15 +080036 backend: {
chenbruce66ba90d2020-02-25 14:53:39 +080037 java: {
38 apex_available: [
Jiyong Park27b9a8a2020-04-07 16:37:01 +090039 "//apex_available:platform",
chenbruce76035f62020-03-16 00:12:59 +080040 "com.android.bluetooth.updatable",
chenbruce66ba90d2020-02-25 14:53:39 +080041 "com.android.wifi",
42 ],
43 },
Luke Huang598daad2019-05-02 18:10:15 +080044 ndk: {
45 gen_log: true,
Jiyong Parkf29f09b2020-04-08 23:39:45 +090046 apex_available: [
47 "com.android.resolv",
48 ],
Jooyung Han105a9bc2020-04-16 18:48:33 +090049 min_sdk_version: "29",
Luke Huang598daad2019-05-02 18:10:15 +080050 },
51 },
Luke Huang5aa6a992019-04-29 22:02:11 +080052 versions: [
53 "1",
54 "2",
Luke Huang0fc985f2019-11-14 19:18:14 +080055 "3",
Luke Huange1ddf092020-04-08 01:41:02 +080056 "4",
Lorenzo Colittia126c242020-05-21 18:07:40 +090057 "5",
Ken Chenb52a7812020-06-19 17:19:07 +080058 "6",
paulhub6d71b62020-11-17 00:29:29 +080059 "7",
Luke Huang5aa6a992019-04-29 22:02:11 +080060 ],
Luke Huang403c0442019-02-25 15:33:42 +080061}
62
Luke Huang45b761c2020-03-20 22:30:43 +080063cc_defaults {
64 name: "resolv_test_defaults",
65 // Note that, static link liblog and libbase is a hard requirement for resolv related tests
66 // because libbase is not compatible between Q and R for general platform build due
67 // to its log revelant functions changing. And most of resolv related tests must be able to run
68 // in Q.
69 static_libs: [
70 "libbase",
71 "liblog",
72 ],
73}
74
Luke Huang0b6c4932020-03-27 17:40:07 +080075cc_defaults {
76 // This is necessary to have the coverage tests run on cf_x86_phone.
77 // Because the test_suite target is 64 bit and the test infra is running the 64 bit test
78 // suite on cf_x86_phone (32-bit) for coverage.
79 // See b/147785146 for details.
80 // TODO: Remove this target after coverage test switched to 64-bit device.
81 name: "resolv_test_mts_coverage_defaults",
82 test_config_template: ":resolv_test_config_template",
83 compile_multilib: "both",
84 multilib: {
85 lib32: {
86 suffix: "32",
87 },
88 lib64: {
89 suffix: "64",
90 },
91 },
92}
93
Lorenzo Colitti8505af42018-12-19 20:30:41 +090094cc_library {
Bernie Innocentiafaacf72018-08-30 07:34:37 +090095 name: "libnetd_resolv",
Bernie Innocenti1e886742018-10-25 18:41:47 +090096 version_script: "libnetd_resolv.map.txt",
Jooyung Han41fa73d2019-11-27 15:41:44 +090097 stubs: {
98 versions: [
99 "1",
100 ],
101 symbol_file: "libnetd_resolv.map.txt",
102 },
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900103 defaults: ["netd_defaults"],
104 srcs: [
Bernie Innocenti9c575932018-09-07 21:10:25 +0900105 "getaddrinfo.cpp",
106 "gethnamaddr.cpp",
107 "sethostent.cpp",
108 "res_cache.cpp",
109 "res_comp.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +0900110 "res_debug.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +0900111 "res_mkquery.cpp",
112 "res_query.cpp",
113 "res_send.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +0900114 "res_stats.cpp",
Mike Yu021c3e12019-10-08 17:29:34 +0800115 "util.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +0800116 "Dns64Configuration.cpp",
Mike Yu19108d52018-11-15 21:58:19 +0800117 "DnsProxyListener.cpp",
Mike Yu939e3692019-10-29 17:28:34 +0800118 "DnsQueryLog.cpp",
Luke Huang36796f32019-03-13 02:54:45 +0800119 "DnsResolver.cpp",
Luke Huang403c0442019-02-25 15:33:42 +0800120 "DnsResolverService.cpp",
Mike Yue655b1d2019-08-28 17:49:59 +0800121 "DnsStats.cpp",
Mike Yubab3daa2018-10-19 22:11:43 +0800122 "DnsTlsDispatcher.cpp",
123 "DnsTlsQueryMap.cpp",
124 "DnsTlsTransport.cpp",
125 "DnsTlsServer.cpp",
126 "DnsTlsSessionCache.cpp",
127 "DnsTlsSocket.cpp",
Luke Huangf40df9c2020-04-21 08:51:48 +0800128 "Experiments.cpp",
Mike Yub601ff72018-11-01 20:07:00 +0800129 "PrivateDnsConfiguration.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +0800130 "ResolverController.cpp",
Mike Yu39cc6892018-12-14 16:18:27 +0800131 "ResolverEventReporter.cpp",
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900132 ],
Tobias Thierer469b6332019-08-28 20:25:33 +0100133 // Link most things statically to minimize our dependence on system ABIs.
Bernie Innocenti2a9244c2018-09-13 16:12:56 +0900134 stl: "libc++_static",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900135 static_libs: [
Maciej Żenczykowski3d809362020-06-03 11:49:26 -0700136 "dnsresolver_aidl_interface-unstable-ndk_platform",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900137 "libbase",
Mike Yu19108d52018-11-15 21:58:19 +0800138 "libcutils",
Mike Yubab3daa2018-10-19 22:11:43 +0800139 "libnetdutils",
Bernie Innocenti83a968f2019-06-27 14:35:53 +0900140 "libprotobuf-cpp-lite",
lifr9b87e362019-05-08 13:00:14 +0800141 "libstatslog_resolv",
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800142 "libstatspush_compat",
Mike Yu19108d52018-11-15 21:58:19 +0800143 "libsysutils",
Jeongik Cha144af032020-08-14 23:13:11 +0900144 "netd_event_listener_interface-unstable-ndk_platform",
waynemaa74195e2019-01-18 14:02:31 +0800145 "server_configurable_flags",
lifr9b87e362019-05-08 13:00:14 +0800146 "stats_proto",
Mike Yu39cc6892018-12-14 16:18:27 +0800147 ],
Tobias Thierer469b6332019-08-28 20:25:33 +0100148 // libcrypto needs to be used as a shared library because it performs an
149 // integrity check (against a checksum) that is not supported for static
150 // libs. See http://b/141248879
151 // We're also adding libssl here to treat it consistently.
Jiyong Parkdd938dd2020-03-09 14:35:37 +0900152 // liblog is added as a shared library because it provides stable C API
153 // from the platform; we don't need to include it in this module by
154 // statically linking to it. Doing so is even dangerous because the socket
155 // protocol to logd implemented in the library isn't guaranteed to be
156 // stable. See b/151051671
Mike Yu39cc6892018-12-14 16:18:27 +0800157 shared_libs: [
158 "libbinder_ndk",
Tobias Thierer469b6332019-08-28 20:25:33 +0100159 "libcrypto",
Jiyong Parkdd938dd2020-03-09 14:35:37 +0900160 "liblog", //Used by libstatslog_resolv
Tobias Thierer469b6332019-08-28 20:25:33 +0100161 "libssl",
Mike Yu19108d52018-11-15 21:58:19 +0800162 ],
Luke Huangf4c98f22019-06-14 01:57:00 +0800163 header_libs: [
Luke Huang27616fe2020-05-26 17:31:15 +0800164 "libnetdbinder_utils_headers",
Mike Yubab3daa2018-10-19 22:11:43 +0800165 ],
Ruchir Rastogicf96e8b2020-02-26 10:36:18 -0800166 runtime_libs: [
167 // Causes the linkerconfig to create a namespace link from resolv to the
168 // libstatssocket library within the statsd apex
169 "libstatssocket",
170 ],
Bernie Innocentiac18b122018-10-01 23:10:18 +0900171 export_include_dirs: ["include"],
chenbruce99cbfd82019-09-05 15:08:13 +0800172
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900173 product_variables: {
174 debuggable: {
175 cppflags: [
176 "-DRESOLV_ALLOW_VERBOSE_LOGGING=1",
177 ],
178 },
179 },
Ken Chen4961dfe2019-11-15 09:03:29 +0800180 header_abi_checker: {
181 enabled: true,
182 symbol_file: "libnetd_resolv.map.txt",
183 },
Ken Chenf5573fd2020-01-14 01:51:05 +0800184 sanitize: {
185 cfi: true,
Ken Chenf5573fd2020-01-14 01:51:05 +0800186 },
Jiyong Parkf29f09b2020-04-08 23:39:45 +0900187 apex_available: ["com.android.resolv"],
Jooyung Han105a9bc2020-04-16 18:48:33 +0900188 min_sdk_version: "29",
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900189}
Mike Yuc52739e2018-10-19 21:06:32 +0800190
lifr9b87e362019-05-08 13:00:14 +0800191cc_library_static {
192 name: "stats_proto",
193 defaults: ["netd_defaults"],
194 proto: {
195 export_proto_headers: true,
196 type: "lite",
197 },
198 srcs: [
199 "stats.proto",
200 ],
Jiyong Parkf29f09b2020-04-08 23:39:45 +0900201 apex_available: ["com.android.resolv"],
Jooyung Han105a9bc2020-04-16 18:48:33 +0900202 min_sdk_version: "29",
lifr9b87e362019-05-08 13:00:14 +0800203}
204
205genrule {
206 name: "statslog_resolv.h",
207 tools: ["stats-log-api-gen"],
208 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_resolv.h --module resolv --namespace android,net,stats",
209 out: [
210 "statslog_resolv.h",
211 ],
212}
213
214genrule {
215 name: "statslog_resolv.cpp",
216 tools: ["stats-log-api-gen"],
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800217 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_resolv.cpp --module resolv --namespace android,net,stats --importHeader statslog_resolv.h --supportQ",
lifr9b87e362019-05-08 13:00:14 +0800218 out: [
219 "statslog_resolv.cpp",
220 ],
221}
222
223cc_library_static {
224 name: "libstatslog_resolv",
225 generated_sources: ["statslog_resolv.cpp"],
226 generated_headers: ["statslog_resolv.h"],
227 defaults: ["netd_defaults"],
228 export_generated_headers: ["statslog_resolv.h"],
229 static_libs: [
230 "libcutils",
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800231 "libgtest_prod", // Used by libstatspush_compat
232 "libstatspush_compat",
lifr9b87e362019-05-08 13:00:14 +0800233 ],
Jiyong Parkf29f09b2020-04-08 23:39:45 +0900234 apex_available: ["com.android.resolv"],
Jooyung Han105a9bc2020-04-16 18:48:33 +0900235 min_sdk_version: "29",
lifr9b87e362019-05-08 13:00:14 +0800236}
237
Luke Huang6b7ff612020-03-25 15:23:41 +0800238filegroup {
239 name: "resolv_test_config_template",
240 srcs: [
241 "resolv_test_config_template.xml",
242 ],
243}
244
Luke Huangf8215372019-11-22 11:53:41 +0800245// TODO: Move this test to tests/
Ken Chenb9fa2062018-11-13 21:51:13 +0800246cc_test {
247 name: "resolv_unit_test",
Luke Huange1ddf092020-04-08 01:41:02 +0800248 test_suites: [
Luke Huang46799392020-07-08 16:58:33 +0800249 "general-tests",
Luke Huange1ddf092020-04-08 01:41:02 +0800250 "mts",
251 ],
chenbruce609db9d2019-06-26 23:30:33 +0800252 require_root: true,
Luke Huang0b6c4932020-03-27 17:40:07 +0800253 // TODO: Drop root privileges and make it be an real unit test.
254 // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device.
Luke Huange1ddf092020-04-08 01:41:02 +0800255 defaults: [
256 "netd_defaults",
257 "resolv_test_defaults",
258 "resolv_test_mts_coverage_defaults",
259 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800260 srcs: [
waynemae9302592019-08-15 14:50:58 +0800261 "resolv_cache_unit_test.cpp",
chenbruce98f19c22019-11-20 14:58:20 +0800262 "resolv_callback_unit_test.cpp",
waynemae9302592019-08-15 14:50:58 +0800263 "resolv_tls_unit_test.cpp",
264 "resolv_unit_test.cpp",
Mike Yu39df0b12019-10-31 16:12:23 +0800265 "DnsQueryLogTest.cpp",
Luke Huangf40df9c2020-04-21 08:51:48 +0800266 "DnsStatsTest.cpp",
267 "ExperimentsTest.cpp",
Bernie Innocentiac6c9a42020-11-27 21:57:41 +0900268 "OperationLimiterTest.cpp",
Mike Yu0ee1dc92020-11-09 14:56:54 +0800269 "PrivateDnsConfigurationTest.cpp",
Mike Yuc52739e2018-10-19 21:06:32 +0800270 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800271 shared_libs: [
Mike Yub601ff72018-11-01 20:07:00 +0800272 "libcrypto",
Sehee Parkd975bf32019-08-07 13:21:16 +0900273 "libbinder_ndk",
Luke Huang0b564a22020-03-19 11:33:59 +0800274 "libssl",
Mike Yuc52739e2018-10-19 21:06:32 +0800275 ],
nuccachen0efcc802018-11-28 18:19:39 +0800276 static_libs: [
Luke Huangf871e4f2020-05-27 18:54:13 +0800277 "dnsresolver_aidl_interface-unstable-ndk_platform",
Luke Huangeb618ef2020-05-26 14:17:02 +0800278 "netd_aidl_interface-ndk_platform",
Jeongik Cha144af032020-08-14 23:13:11 +0900279 "netd_event_listener_interface-unstable-ndk_platform",
Luke Huang0b564a22020-03-19 11:33:59 +0800280 "libcutils",
Luke Huange126fbe2019-07-20 17:36:30 +0800281 "libgmock",
Lorenzo Colitti8505af42018-12-19 20:30:41 +0900282 "libnetd_resolv",
Luke Huang39757932020-04-17 19:04:21 +0800283 "libnetd_test_dnsresponder_ndk",
Hungming Chend52f6b12019-07-24 16:01:47 +0800284 "libnetd_test_resolv_utils",
Lorenzo Colittidae66672018-12-19 21:13:03 +0900285 "libnetdutils",
lifr94981782019-05-17 21:15:19 +0800286 "libprotobuf-cpp-lite",
chenbruce98f19c22019-11-20 14:58:20 +0800287 "libstatslog_resolv",
Muhammad Qureshi2361d132020-01-19 07:06:45 -0800288 "libstatspush_compat",
chenbruce98f19c22019-11-20 14:58:20 +0800289 "libsysutils",
290 "libutils",
Luke Huang977e46e2019-07-04 15:33:07 +0800291 "resolv_stats_test_utils",
waynemaa74195e2019-01-18 14:02:31 +0800292 "server_configurable_flags",
lifr94981782019-05-17 21:15:19 +0800293 "stats_proto",
nuccachen0efcc802018-11-28 18:19:39 +0800294 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800295}