blob: c9295498218626f19f0e973d830f31280b4437f4 [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 Huang403c0442019-02-25 15:33:42 +080013aidl_interface {
14 name: "dnsresolver_aidl_interface",
15 local_include_dir: "binder",
16 srcs: [
17 "binder/android/net/IDnsResolver.aidl",
chenbrucefd837fa2019-10-29 18:35:36 +080018 "binder/android/net/ResolverHostsParcel.aidl",
Ken Chen05420812020-04-07 18:58:38 +000019 "binder/android/net/ResolverOptionsParcel.aidl",
waynema37255182019-03-18 13:22:56 +080020 "binder/android/net/ResolverParamsParcel.aidl",
Luke Huang403c0442019-02-25 15:33:42 +080021 ],
Hungming Chena32c8c12019-01-25 10:47:40 +080022 imports: [
23 "netd_event_listener_interface",
24 ],
Luke Huang598daad2019-05-02 18:10:15 +080025 backend: {
chenbruce66ba90d2020-02-25 14:53:39 +080026 java: {
27 apex_available: [
Jiyong Park328324e2020-04-07 16:37:01 +090028 "//apex_available:platform",
chenbruce76035f62020-03-16 00:12:59 +080029 "com.android.bluetooth.updatable",
chenbruce66ba90d2020-02-25 14:53:39 +080030 "com.android.wifi",
31 ],
32 },
Luke Huang598daad2019-05-02 18:10:15 +080033 ndk: {
34 gen_log: true,
Treehugger Robot21366e62020-04-13 15:40:08 +000035 apex_available: [
36 "com.android.resolv",
37 ],
Jooyung Hanfcd7e8b2020-04-16 18:48:33 +090038 min_sdk_version: "29",
Luke Huang598daad2019-05-02 18:10:15 +080039 },
40 },
Luke Huang5aa6a992019-04-29 22:02:11 +080041 versions: [
42 "1",
43 "2",
Luke Huang0fc985f2019-11-14 19:18:14 +080044 "3",
Luke Huang05922e32020-04-09 09:32:16 +000045 "4",
Lorenzo Colittifc3a5312020-05-21 13:56:27 +000046 "5",
Luke Huang5aa6a992019-04-29 22:02:11 +080047 ],
Luke Huang403c0442019-02-25 15:33:42 +080048}
49
Luke Huang92102ff2020-03-23 12:57:47 +000050cc_defaults {
51 name: "resolv_test_defaults",
52 // Note that, static link liblog and libbase is a hard requirement for resolv related tests
53 // because libbase is not compatible between Q and R for general platform build due
54 // to its log revelant functions changing. And most of resolv related tests must be able to run
55 // in Q.
56 static_libs: [
57 "libbase",
58 "liblog",
59 ],
60}
61
Luke Huang26e58152020-03-30 11:51:36 +000062cc_defaults {
63 // This is necessary to have the coverage tests run on cf_x86_phone.
64 // Because the test_suite target is 64 bit and the test infra is running the 64 bit test
65 // suite on cf_x86_phone (32-bit) for coverage.
66 // See b/147785146 for details.
67 // TODO: Remove this target after coverage test switched to 64-bit device.
68 name: "resolv_test_mts_coverage_defaults",
69 test_config_template: ":resolv_test_config_template",
70 compile_multilib: "both",
71 multilib: {
72 lib32: {
73 suffix: "32",
74 },
75 lib64: {
76 suffix: "64",
77 },
78 },
79}
80
Lorenzo Colitti8505af42018-12-19 20:30:41 +090081cc_library {
Bernie Innocentiafaacf72018-08-30 07:34:37 +090082 name: "libnetd_resolv",
Bernie Innocenti1e886742018-10-25 18:41:47 +090083 version_script: "libnetd_resolv.map.txt",
Jooyung Han41fa73d2019-11-27 15:41:44 +090084 stubs: {
85 versions: [
86 "1",
87 ],
88 symbol_file: "libnetd_resolv.map.txt",
89 },
Bernie Innocentiafaacf72018-08-30 07:34:37 +090090 defaults: ["netd_defaults"],
91 srcs: [
Bernie Innocenti9c575932018-09-07 21:10:25 +090092 "getaddrinfo.cpp",
93 "gethnamaddr.cpp",
94 "sethostent.cpp",
95 "res_cache.cpp",
96 "res_comp.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +090097 "res_debug.cpp",
98 "res_init.cpp",
99 "res_mkquery.cpp",
100 "res_query.cpp",
101 "res_send.cpp",
Bernie Innocenti9c575932018-09-07 21:10:25 +0900102 "res_stats.cpp",
Mike Yu021c3e12019-10-08 17:29:34 +0800103 "util.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +0800104 "Dns64Configuration.cpp",
Mike Yu19108d52018-11-15 21:58:19 +0800105 "DnsProxyListener.cpp",
Mike Yu939e3692019-10-29 17:28:34 +0800106 "DnsQueryLog.cpp",
Luke Huang36796f32019-03-13 02:54:45 +0800107 "DnsResolver.cpp",
Luke Huang403c0442019-02-25 15:33:42 +0800108 "DnsResolverService.cpp",
Mike Yue655b1d2019-08-28 17:49:59 +0800109 "DnsStats.cpp",
Mike Yubab3daa2018-10-19 22:11:43 +0800110 "DnsTlsDispatcher.cpp",
111 "DnsTlsQueryMap.cpp",
112 "DnsTlsTransport.cpp",
113 "DnsTlsServer.cpp",
114 "DnsTlsSessionCache.cpp",
115 "DnsTlsSocket.cpp",
Luke Huang68fa5002020-04-23 15:48:47 +0000116 "Experiments.cpp",
Mike Yub601ff72018-11-01 20:07:00 +0800117 "PrivateDnsConfiguration.cpp",
Luke Huang7b26b202019-03-28 14:09:24 +0800118 "ResolverController.cpp",
Mike Yu39cc6892018-12-14 16:18:27 +0800119 "ResolverEventReporter.cpp",
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900120 ],
Tobias Thierer469b6332019-08-28 20:25:33 +0100121 // Link most things statically to minimize our dependence on system ABIs.
Bernie Innocenti2a9244c2018-09-13 16:12:56 +0900122 stl: "libc++_static",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900123 static_libs: [
Lorenzo Colitti346737c2020-05-21 13:56:22 +0000124 "dnsresolver_aidl_interface-unstable-ndk_platform",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900125 "libbase",
Mike Yu19108d52018-11-15 21:58:19 +0800126 "libcutils",
Mike Yubab3daa2018-10-19 22:11:43 +0800127 "libnetdutils",
Bernie Innocenti83a968f2019-06-27 14:35:53 +0900128 "libprotobuf-cpp-lite",
lifr9b87e362019-05-08 13:00:14 +0800129 "libstatslog_resolv",
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800130 "libstatspush_compat",
Mike Yu19108d52018-11-15 21:58:19 +0800131 "libsysutils",
Jeongik Cha9af2c7e2019-10-15 17:06:40 +0900132 "netd_event_listener_interface-ndk_platform",
waynemaa74195e2019-01-18 14:02:31 +0800133 "server_configurable_flags",
lifr9b87e362019-05-08 13:00:14 +0800134 "stats_proto",
Mike Yu39cc6892018-12-14 16:18:27 +0800135 ],
Tobias Thierer469b6332019-08-28 20:25:33 +0100136 // libcrypto needs to be used as a shared library because it performs an
137 // integrity check (against a checksum) that is not supported for static
138 // libs. See http://b/141248879
139 // We're also adding libssl here to treat it consistently.
Jiyong Park75ebc832020-03-09 14:35:37 +0900140 // liblog is added as a shared library because it provides stable C API
141 // from the platform; we don't need to include it in this module by
142 // statically linking to it. Doing so is even dangerous because the socket
143 // protocol to logd implemented in the library isn't guaranteed to be
144 // stable. See b/151051671
Mike Yu39cc6892018-12-14 16:18:27 +0800145 shared_libs: [
146 "libbinder_ndk",
Tobias Thierer469b6332019-08-28 20:25:33 +0100147 "libcrypto",
Jiyong Park75ebc832020-03-09 14:35:37 +0900148 "liblog", //Used by libstatslog_resolv
Tobias Thierer469b6332019-08-28 20:25:33 +0100149 "libssl",
Mike Yu19108d52018-11-15 21:58:19 +0800150 ],
Luke Huangf4c98f22019-06-14 01:57:00 +0800151 header_libs: [
152 "libnetd_client_headers",
Mike Yubab3daa2018-10-19 22:11:43 +0800153 ],
Bernie Innocentiac18b122018-10-01 23:10:18 +0900154 export_include_dirs: ["include"],
chenbruce99cbfd82019-09-05 15:08:13 +0800155
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900156 product_variables: {
157 debuggable: {
158 cppflags: [
159 "-DRESOLV_ALLOW_VERBOSE_LOGGING=1",
waynema0e73c2e2019-07-31 15:04:08 +0800160 "-DRESOLV_INJECT_CA_CERTIFICATE=1",
Bernie Innocenti9f05f5e2018-09-12 23:20:10 +0900161 ],
162 },
163 },
Ken Chen4961dfe2019-11-15 09:03:29 +0800164 header_abi_checker: {
165 enabled: true,
166 symbol_file: "libnetd_resolv.map.txt",
167 },
Ken Chenf5573fd2020-01-14 01:51:05 +0800168 sanitize: {
169 cfi: true,
Ken Chenf5573fd2020-01-14 01:51:05 +0800170 },
Treehugger Robot21366e62020-04-13 15:40:08 +0000171 apex_available: ["com.android.resolv"],
Jooyung Hanfcd7e8b2020-04-16 18:48:33 +0900172 min_sdk_version: "29",
Bernie Innocentiafaacf72018-08-30 07:34:37 +0900173}
Mike Yuc52739e2018-10-19 21:06:32 +0800174
lifr9b87e362019-05-08 13:00:14 +0800175cc_library_static {
176 name: "stats_proto",
177 defaults: ["netd_defaults"],
178 proto: {
179 export_proto_headers: true,
180 type: "lite",
181 },
182 srcs: [
183 "stats.proto",
184 ],
Treehugger Robot21366e62020-04-13 15:40:08 +0000185 apex_available: ["com.android.resolv"],
Jooyung Hanfcd7e8b2020-04-16 18:48:33 +0900186 min_sdk_version: "29",
lifr9b87e362019-05-08 13:00:14 +0800187}
188
189genrule {
190 name: "statslog_resolv.h",
191 tools: ["stats-log-api-gen"],
192 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_resolv.h --module resolv --namespace android,net,stats",
193 out: [
194 "statslog_resolv.h",
195 ],
196}
197
198genrule {
199 name: "statslog_resolv.cpp",
200 tools: ["stats-log-api-gen"],
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800201 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 +0800202 out: [
203 "statslog_resolv.cpp",
204 ],
205}
206
207cc_library_static {
208 name: "libstatslog_resolv",
209 generated_sources: ["statslog_resolv.cpp"],
210 generated_headers: ["statslog_resolv.h"],
211 defaults: ["netd_defaults"],
212 export_generated_headers: ["statslog_resolv.h"],
213 static_libs: [
214 "libcutils",
Muhammad Qureshi10b3d272019-12-03 15:25:19 -0800215 "libgtest_prod", // Used by libstatspush_compat
216 "libstatspush_compat",
lifr9b87e362019-05-08 13:00:14 +0800217 ],
Treehugger Robot21366e62020-04-13 15:40:08 +0000218 apex_available: ["com.android.resolv"],
Jooyung Hanfcd7e8b2020-04-16 18:48:33 +0900219 min_sdk_version: "29",
lifr9b87e362019-05-08 13:00:14 +0800220}
221
Luke Huang4140bbf2020-03-25 13:52:47 +0000222filegroup {
223 name: "resolv_test_config_template",
224 srcs: [
225 "resolv_test_config_template.xml",
226 ],
227}
228
Luke Huangf8215372019-11-22 11:53:41 +0800229// TODO: Move this test to tests/
Ken Chenb9fa2062018-11-13 21:51:13 +0800230cc_test {
231 name: "resolv_unit_test",
Luke Huang05922e32020-04-09 09:32:16 +0000232 test_suites: [
233 "device-tests",
234 "mts",
235 ],
chenbruce609db9d2019-06-26 23:30:33 +0800236 require_root: true,
Luke Huang26e58152020-03-30 11:51:36 +0000237 // TODO: Drop root privileges and make it be an real unit test.
238 // TODO: Remove resolv_test_mts_coverage_defaults after mts coverage switched to 64-bit device.
Luke Huang05922e32020-04-09 09:32:16 +0000239 defaults: [
240 "netd_defaults",
241 "resolv_test_defaults",
242 "resolv_test_mts_coverage_defaults",
243 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800244 srcs: [
waynemae9302592019-08-15 14:50:58 +0800245 "resolv_cache_unit_test.cpp",
chenbruce98f19c22019-11-20 14:58:20 +0800246 "resolv_callback_unit_test.cpp",
waynemae9302592019-08-15 14:50:58 +0800247 "resolv_tls_unit_test.cpp",
248 "resolv_unit_test.cpp",
Mike Yu39df0b12019-10-31 16:12:23 +0800249 "DnsQueryLogTest.cpp",
Luke Huang68fa5002020-04-23 15:48:47 +0000250 "DnsStatsTest.cpp",
251 "ExperimentsTest.cpp",
Mike Yuc52739e2018-10-19 21:06:32 +0800252 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800253 shared_libs: [
Mike Yub601ff72018-11-01 20:07:00 +0800254 "libcrypto",
Sehee Parkd975bf32019-08-07 13:21:16 +0900255 "libbinder_ndk",
Luke Huangb6402ae2020-03-19 10:58:14 +0000256 "libssl",
Mike Yuc52739e2018-10-19 21:06:32 +0800257 ],
nuccachen0efcc802018-11-28 18:19:39 +0800258 static_libs: [
chenbrucefd837fa2019-10-29 18:35:36 +0800259 "dnsresolver_aidl_interface-unstable-ndk_platform",
Jeongik Cha9af2c7e2019-10-15 17:06:40 +0900260 "netd_event_listener_interface-ndk_platform",
Luke Huangb6402ae2020-03-19 10:58:14 +0000261 "libcutils",
Luke Huange126fbe2019-07-20 17:36:30 +0800262 "libgmock",
Lorenzo Colitti8505af42018-12-19 20:30:41 +0900263 "libnetd_resolv",
nuccachen0efcc802018-11-28 18:19:39 +0800264 "libnetd_test_dnsresponder",
Hungming Chend52f6b12019-07-24 16:01:47 +0800265 "libnetd_test_resolv_utils",
Lorenzo Colittidae66672018-12-19 21:13:03 +0900266 "libnetdutils",
lifr94981782019-05-17 21:15:19 +0800267 "libprotobuf-cpp-lite",
chenbruce98f19c22019-11-20 14:58:20 +0800268 "libstatslog_resolv",
Muhammad Qureshi2361d132020-01-19 07:06:45 -0800269 "libstatspush_compat",
chenbruce98f19c22019-11-20 14:58:20 +0800270 "libsysutils",
271 "libutils",
Luke Huang977e46e2019-07-04 15:33:07 +0800272 "resolv_stats_test_utils",
waynemaa74195e2019-01-18 14:02:31 +0800273 "server_configurable_flags",
lifr94981782019-05-17 21:15:19 +0800274 "stats_proto",
nuccachen0efcc802018-11-28 18:19:39 +0800275 ],
Mike Yuc52739e2018-10-19 21:06:32 +0800276}