blob: 5c1e1feca48d701dcbc36c502a6876d4d49651cb [file] [log] [blame]
GuangHui Liu41bda342017-05-10 14:37:17 -07001// Copyright (C) 2017 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Joshua Duong89169a32020-07-17 14:14:00 -070015tidy_errors = [
16 "-*",
17 "bugprone-inaccurate-erase",
18]
19
Josh Gao27768452018-01-02 12:01:43 -080020cc_defaults {
21 name: "adb_defaults",
22
23 cflags: [
24 "-Wall",
25 "-Wextra",
26 "-Werror",
Pirama Arumuga Nainar79821782018-06-01 11:31:38 -070027 "-Wexit-time-destructors",
Jiyong Parkee989fc2020-09-18 16:35:06 +090028 "-Wno-non-virtual-dtor",
Josh Gao27768452018-01-02 12:01:43 -080029 "-Wno-unused-parameter",
30 "-Wno-missing-field-initializers",
Josh Gao776c2ec2019-01-22 19:36:15 -080031 "-Wthread-safety",
Josh Gao27768452018-01-02 12:01:43 -080032 "-Wvla",
Bowgo Tsai9b30c0a2019-03-12 04:25:33 +080033 "-DADB_HOST=1", // overridden by adbd_defaults
Josh Gao27241a72019-04-25 14:04:57 -070034 "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION=1",
Josh Gao27768452018-01-02 12:01:43 -080035 ],
Josh Gao6eb78822018-11-16 15:40:16 -080036 cpp_std: "experimental",
Josh Gao27768452018-01-02 12:01:43 -080037
Josh Gaoc7567fa2018-02-27 15:49:23 -080038 use_version_lib: true,
Josh Gao27768452018-01-02 12:01:43 -080039 compile_multilib: "first",
Josh Gao27768452018-01-02 12:01:43 -080040
41 target: {
Josh Gao27768452018-01-02 12:01:43 -080042 darwin: {
43 host_ldlibs: [
44 "-lpthread",
45 "-framework CoreFoundation",
46 "-framework IOKit",
47 "-lobjc",
48 ],
49 },
50
51 windows: {
52 cflags: [
53 // Define windows.h and tchar.h Unicode preprocessor symbols so that
54 // CreateFile(), _tfopen(), etc. map to versions that take wchar_t*, breaking the
55 // build if you accidentally pass char*. Fix by calling like:
56 // std::wstring path_wide;
57 // if (!android::base::UTF8ToWide(path_utf8, &path_wide)) { /* error handling */ }
58 // CreateFileW(path_wide.c_str());
59 "-DUNICODE=1",
60 "-D_UNICODE=1",
61
Elliott Hughes3c59cb82018-12-03 09:02:18 -080062 // Unlike on Linux, -std=gnu++ doesn't set _GNU_SOURCE on Windows.
Josh Gao27768452018-01-02 12:01:43 -080063 "-D_GNU_SOURCE",
Josh Gao2e1e7892018-03-23 13:03:28 -070064
65 // MinGW hides some things behind _POSIX_SOURCE.
66 "-D_POSIX_SOURCE",
Josh Gao776c2ec2019-01-22 19:36:15 -080067
Josh Gao4710e532019-04-17 16:57:43 -070068 // libusb uses __stdcall on a variadic function, which gets ignored.
69 "-Wno-ignored-attributes",
70
Josh Gao776c2ec2019-01-22 19:36:15 -080071 // Not supported yet.
72 "-Wno-thread-safety",
Josh Gao27768452018-01-02 12:01:43 -080073 ],
Josh Gaof8a97c12018-03-23 15:37:20 -070074
75 host_ldlibs: [
76 "-lws2_32",
77 "-lgdi32",
78 "-luserenv",
79 ],
Josh Gao27768452018-01-02 12:01:43 -080080 },
Josh Gao776c2ec2019-01-22 19:36:15 -080081 },
Joshua Duong89169a32020-07-17 14:14:00 -070082
83 tidy: true,
84 tidy_checks: tidy_errors,
85 tidy_checks_as_errors: tidy_errors,
Josh Gao776c2ec2019-01-22 19:36:15 -080086}
Pirama Arumuga Nainar79821782018-06-01 11:31:38 -070087
Josh Gao776c2ec2019-01-22 19:36:15 -080088cc_defaults {
89 name: "adbd_defaults",
90 defaults: ["adb_defaults"],
91
92 cflags: ["-UADB_HOST", "-DADB_HOST=0"],
Josh Gao27768452018-01-02 12:01:43 -080093}
94
Josh Gao776c2ec2019-01-22 19:36:15 -080095cc_defaults {
96 name: "host_adbd_supported",
97
98 host_supported: true,
99 target: {
100 linux: {
101 enabled: true,
102 host_ldlibs: [
103 "-lresolv", // b64_pton
104 "-lutil", // forkpty
105 ],
106 },
107 darwin: {
108 enabled: false,
109 },
110 windows: {
111 enabled: false,
112 },
113 },
114}
115
Josh Gao37356142020-03-27 19:41:59 -0700116cc_defaults {
117 name: "libadbd_binary_dependencies",
118 static_libs: [
119 "libadb_crypto",
120 "libadb_pairing_connection",
Joshua Duong62a42ec2020-07-30 16:34:29 -0700121 "libadb_sysdeps",
Josh Gao37356142020-03-27 19:41:59 -0700122 "libadb_tls_connection",
123 "libadbd",
124 "libadbd_core",
125 "libadbconnection_server",
126 "libasyncio",
Josh Gao317d3e12020-05-27 17:52:52 -0700127 "libbase",
Josh Gao37356142020-03-27 19:41:59 -0700128 "libbrotli",
129 "libcutils_sockets",
130 "libdiagnose_usb",
131 "libmdnssd",
Josh Gao317d3e12020-05-27 17:52:52 -0700132 "libzstd",
Josh Gao37356142020-03-27 19:41:59 -0700133
134 "libadb_protos",
135 "libapp_processes_protos_lite",
136 "libprotobuf-cpp-lite",
137 ],
138
139 shared_libs: [
140 "libadbd_auth",
141 "libadbd_fs",
142 "libcrypto",
143 "libcrypto_utils",
144 "liblog",
145 "libselinux",
146 ],
147
148 target: {
149 recovery: {
150 exclude_static_libs: [
151 "libadb_pairing_auth",
152 "libadb_pairing_connection",
153 ],
154 },
155 },
156}
157
Josh Gao27768452018-01-02 12:01:43 -0800158// libadb
159// =========================================================
160// These files are compiled for both the host and the device.
161libadb_srcs = [
162 "adb.cpp",
163 "adb_io.cpp",
164 "adb_listeners.cpp",
165 "adb_trace.cpp",
Josh Gao6e1246c2018-05-24 22:54:50 -0700166 "adb_unique_fd.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800167 "adb_utils.cpp",
Josh Gao57e09b12019-06-28 13:50:37 -0700168 "fdevent/fdevent.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800169 "services.cpp",
170 "sockets.cpp",
171 "socket_spec.cpp",
Joshua Duong62a42ec2020-07-30 16:34:29 -0700172 "sysdeps/env.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800173 "sysdeps/errno.cpp",
174 "transport.cpp",
Josh Gao6082e7d2018-04-05 16:16:04 -0700175 "transport_fd.cpp",
Yurii Zubrytskyi5dda7f62019-07-12 14:11:54 -0700176 "types.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800177]
178
Josh Gao073c8d22020-04-20 19:22:05 -0700179libadb_darwin_srcs = [
180 "fdevent/fdevent_poll.cpp",
181]
182
183libadb_windows_srcs = [
184 "fdevent/fdevent_poll.cpp",
185 "sysdeps_win32.cpp",
186 "sysdeps/win32/errno.cpp",
187 "sysdeps/win32/stat.cpp",
188]
189
Josh Gao27768452018-01-02 12:01:43 -0800190libadb_posix_srcs = [
191 "sysdeps_unix.cpp",
192 "sysdeps/posix/network.cpp",
193]
194
Josh Gaob43ad442019-07-11 13:47:44 -0700195libadb_linux_srcs = [
196 "fdevent/fdevent_epoll.cpp",
197]
198
Josh Gao27768452018-01-02 12:01:43 -0800199libadb_test_srcs = [
200 "adb_io_test.cpp",
201 "adb_listeners_test.cpp",
202 "adb_utils_test.cpp",
Josh Gao57e09b12019-06-28 13:50:37 -0700203 "fdevent/fdevent_test.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800204 "socket_spec_test.cpp",
205 "socket_test.cpp",
206 "sysdeps_test.cpp",
207 "sysdeps/stat_test.cpp",
208 "transport_test.cpp",
Josh Gao7c738cd2018-04-03 14:37:11 -0700209 "types_test.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800210]
211
212cc_library_host_static {
213 name: "libadb_host",
214 defaults: ["adb_defaults"],
215
216 srcs: libadb_srcs + [
217 "client/auth.cpp",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800218 "client/adb_wifi.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800219 "client/usb_libusb.cpp",
220 "client/usb_dispatch.cpp",
Josh Gao8a9277a2020-04-22 17:30:06 -0700221 "client/transport_local.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800222 "client/transport_mdns.cpp",
Joshua Duong7be85192020-04-30 15:45:38 -0700223 "client/mdns_utils.cpp",
Josh Gao08718242020-03-27 18:09:56 -0700224 "client/transport_usb.cpp",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800225 "client/pairing/pairing_client.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800226 ],
227
Dan Willemsenab971b52018-08-29 14:58:02 -0700228 generated_headers: ["platform_tools_version"],
229
Josh Gao27768452018-01-02 12:01:43 -0800230 target: {
231 linux: {
Josh Gaob43ad442019-07-11 13:47:44 -0700232 srcs: ["client/usb_linux.cpp"] + libadb_linux_srcs,
Josh Gao27768452018-01-02 12:01:43 -0800233 },
234 darwin: {
Josh Gao073c8d22020-04-20 19:22:05 -0700235 srcs: ["client/usb_osx.cpp"] + libadb_darwin_srcs,
Josh Gao27768452018-01-02 12:01:43 -0800236 },
Josh Gao27768452018-01-02 12:01:43 -0800237 not_windows: {
238 srcs: libadb_posix_srcs,
239 },
240 windows: {
241 enabled: true,
242 srcs: [
243 "client/usb_windows.cpp",
Josh Gao073c8d22020-04-20 19:22:05 -0700244 ] + libadb_windows_srcs,
Josh Gao27768452018-01-02 12:01:43 -0800245 shared_libs: ["AdbWinApi"],
246 },
247 },
248
249 static_libs: [
Joshua Duongef28ca42019-12-19 16:36:30 -0800250 "libadb_crypto",
251 "libadb_protos",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800252 "libadb_pairing_connection",
253 "libadb_tls_connection",
Josh Gao27768452018-01-02 12:01:43 -0800254 "libbase",
255 "libcrypto_utils",
256 "libcrypto",
257 "libdiagnose_usb",
258 "libmdnssd",
259 "libusb",
Idries Hamadi269a4b42018-09-13 18:00:25 +0100260 "libutils",
261 "liblog",
262 "libcutils",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800263 "libprotobuf-cpp-lite",
Josh Gao27768452018-01-02 12:01:43 -0800264 ],
265}
266
Joshua Duong62a42ec2020-07-30 16:34:29 -0700267cc_library {
268 name: "libadb_sysdeps",
269 defaults: ["adb_defaults"],
270 recovery_available: true,
271 host_supported: true,
272 compile_multilib: "both",
273 min_sdk_version: "apex_inherit",
Jiyong Park4c575962020-08-25 17:05:41 +0900274 // This library doesn't use build::GetBuildNumber()
275 use_version_lib: false,
Joshua Duong62a42ec2020-07-30 16:34:29 -0700276
277 srcs: [
278 "sysdeps/env.cpp",
279 ],
280
281 shared_libs: [
282 "libbase",
283 "liblog",
284 ],
285
286 target: {
287 windows: {
288 enabled: true,
289 ldflags: ["-municode"],
290 },
291 },
292
293 export_include_dirs: ["."],
294
295 visibility: [
296 "//system/core/adb:__subpackages__",
297 "//bootable/recovery/minadbd:__subpackages__",
298 ],
299
300 apex_available: [
301 "com.android.adbd",
302 "test_com.android.adbd",
303 ],
304}
305
Josh Gao27768452018-01-02 12:01:43 -0800306cc_test_host {
307 name: "adb_test",
308 defaults: ["adb_defaults"],
Joshua Duong7be85192020-04-30 15:45:38 -0700309 srcs: libadb_test_srcs + [
310 "client/mdns_utils_test.cpp",
311 ],
312
Josh Gao27768452018-01-02 12:01:43 -0800313 static_libs: [
Joshua Duongd85f5c02019-11-20 14:18:43 -0800314 "libadb_crypto_static",
Josh Gao27768452018-01-02 12:01:43 -0800315 "libadb_host",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800316 "libadb_pairing_auth_static",
317 "libadb_pairing_connection_static",
318 "libadb_protos_static",
Joshua Duong62a42ec2020-07-30 16:34:29 -0700319 "libadb_sysdeps",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800320 "libadb_tls_connection_static",
Josh Gao27768452018-01-02 12:01:43 -0800321 "libbase",
322 "libcutils",
323 "libcrypto_utils",
324 "libcrypto",
Tom Cherry99216302020-01-08 13:41:56 -0800325 "liblog",
Josh Gao27768452018-01-02 12:01:43 -0800326 "libmdnssd",
327 "libdiagnose_usb",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800328 "libprotobuf-cpp-lite",
329 "libssl",
Josh Gao27768452018-01-02 12:01:43 -0800330 "libusb",
331 ],
Josh Gaof8a97c12018-03-23 15:37:20 -0700332
333 target: {
334 windows: {
335 enabled: true,
Josh Gaoefd8ae22019-07-16 15:08:42 -0700336 ldflags: ["-municode"],
Josh Gaof8a97c12018-03-23 15:37:20 -0700337 shared_libs: ["AdbWinApi"],
338 },
339 },
Josh Gao27768452018-01-02 12:01:43 -0800340}
341
342cc_binary_host {
343 name: "adb",
Josh Gao27768452018-01-02 12:01:43 -0800344
Josh Gao99522582020-02-03 23:08:05 -0800345 stl: "libc++_static",
Josh Gao27768452018-01-02 12:01:43 -0800346 defaults: ["adb_defaults"],
347
348 srcs: [
349 "client/adb_client.cpp",
350 "client/bugreport.cpp",
351 "client/commandline.cpp",
352 "client/file_sync_client.cpp",
353 "client/main.cpp",
354 "client/console.cpp",
Idries Hamadied409ea2018-01-29 16:30:36 +0000355 "client/adb_install.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800356 "client/line_printer.cpp",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700357 "client/fastdeploy.cpp",
358 "client/fastdeploycallbacks.cpp",
Alex Buynytskyy96ff54b2020-02-13 06:52:04 -0800359 "client/incremental.cpp",
360 "client/incremental_server.cpp",
Songchun Fanc3eb3012020-03-13 13:11:43 -0700361 "client/incremental_utils.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800362 "shell_service_protocol.cpp",
363 ],
364
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700365 generated_headers: [
366 "bin2c_fastdeployagent",
367 "bin2c_fastdeployagentscript"
368 ],
369
Josh Gao27768452018-01-02 12:01:43 -0800370 static_libs: [
Joshua Duongef28ca42019-12-19 16:36:30 -0800371 "libadb_crypto",
Josh Gao27768452018-01-02 12:01:43 -0800372 "libadb_host",
Josh Gao31d42aa2020-03-26 13:46:08 -0700373 "libadb_pairing_auth",
374 "libadb_pairing_connection",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800375 "libadb_protos",
Joshua Duong62a42ec2020-07-30 16:34:29 -0700376 "libadb_sysdeps",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800377 "libadb_tls_connection",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700378 "libandroidfw",
Shukang Zhouf4ffae12020-02-13 17:01:39 -0800379 "libapp_processes_protos_full",
Josh Gao27768452018-01-02 12:01:43 -0800380 "libbase",
Josh Gao939fc192020-03-04 19:34:08 -0800381 "libbrotli",
Josh Gao27768452018-01-02 12:01:43 -0800382 "libcutils",
383 "libcrypto_utils",
384 "libcrypto",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700385 "libfastdeploy_host",
Josh Gao27768452018-01-02 12:01:43 -0800386 "libdiagnose_usb",
387 "liblog",
Alex Buynytskyy96ff54b2020-02-13 06:52:04 -0800388 "liblz4",
Josh Gao27768452018-01-02 12:01:43 -0800389 "libmdnssd",
Shukang Zhouf4ffae12020-02-13 17:01:39 -0800390 "libprotobuf-cpp-full",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800391 "libssl",
Josh Gao27768452018-01-02 12:01:43 -0800392 "libusb",
Idries Hamadi269a4b42018-09-13 18:00:25 +0100393 "libutils",
394 "liblog",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700395 "libziparchive",
396 "libz",
Josh Gao317d3e12020-05-27 17:52:52 -0700397 "libzstd",
Josh Gao27768452018-01-02 12:01:43 -0800398 ],
399
Josh Gao27768452018-01-02 12:01:43 -0800400 // Don't add anything here, we don't want additional shared dependencies
401 // on the host adb tool, and shared libraries that link against libc++
402 // will violate ODR
403 shared_libs: [],
404
Dan Willemsen3f439a72018-11-19 19:11:35 -0800405 // Archive adb, adb.exe.
406 dist: {
407 targets: [
408 "dist_files",
409 "sdk",
410 "win_sdk",
411 ],
412 },
413
Josh Gao27768452018-01-02 12:01:43 -0800414 target: {
415 darwin: {
416 cflags: [
417 "-Wno-sizeof-pointer-memaccess",
418 ],
419 },
420 windows: {
421 enabled: true,
422 ldflags: ["-municode"],
Josh Gao27768452018-01-02 12:01:43 -0800423 shared_libs: ["AdbWinApi"],
424 required: [
425 "AdbWinUsbApi",
426 ],
427 },
428 },
429}
430
Tao Baoeca59ae2018-07-30 20:45:27 -0700431// libadbd_core contains the common sources to build libadbd and libadbd_services.
Josh Gao27768452018-01-02 12:01:43 -0800432cc_library_static {
Tao Baoeca59ae2018-07-30 20:45:27 -0700433 name: "libadbd_core",
Josh Gao776c2ec2019-01-22 19:36:15 -0800434 defaults: ["adbd_defaults", "host_adbd_supported"],
Tao Baoeca59ae2018-07-30 20:45:27 -0700435 recovery_available: true,
436
437 // libminadbd wants both, as it's used to build native tests.
438 compile_multilib: "both",
439
Josh Gaob43ad442019-07-11 13:47:44 -0700440 srcs: libadb_srcs + libadb_linux_srcs + libadb_posix_srcs + [
Josh Gao8a9277a2020-04-22 17:30:06 -0700441 "daemon/adb_wifi.cpp",
Tao Baoeca59ae2018-07-30 20:45:27 -0700442 "daemon/auth.cpp",
443 "daemon/jdwp_service.cpp",
Josh Gao52d0b672020-02-26 16:39:20 -0800444 "daemon/logging.cpp",
Josh Gao8a9277a2020-04-22 17:30:06 -0700445 "daemon/transport_local.cpp",
Tao Baoeca59ae2018-07-30 20:45:27 -0700446 ],
447
Dan Willemsenab971b52018-08-29 14:58:02 -0700448 generated_headers: ["platform_tools_version"],
449
Tao Baoeca59ae2018-07-30 20:45:27 -0700450 static_libs: [
451 "libdiagnose_usb",
Tao Baoeca59ae2018-07-30 20:45:27 -0700452 ],
453
454 shared_libs: [
Josh Gaoc151a1b2020-03-16 11:30:09 -0700455 "libadbconnection_server",
Joshua Duongef28ca42019-12-19 16:36:30 -0800456 "libadb_crypto",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800457 "libadb_pairing_connection",
458 "libadb_protos",
459 "libadb_tls_connection",
Josh Gao27523262019-10-22 12:30:39 -0700460 "libadbd_auth",
Josh Gaoc151a1b2020-03-16 11:30:09 -0700461 "libapp_processes_protos_lite",
Tao Baoeca59ae2018-07-30 20:45:27 -0700462 "libasyncio",
463 "libbase",
464 "libcrypto",
465 "libcrypto_utils",
Josh Gao37356142020-03-27 19:41:59 -0700466 "libcutils_sockets",
Tao Baoeca59ae2018-07-30 20:45:27 -0700467 "liblog",
468 ],
Josh Gao776c2ec2019-01-22 19:36:15 -0800469
Shukang Zhouf4ffae12020-02-13 17:01:39 -0800470 proto: {
471 type: "lite",
472 static: true,
473 export_proto_headers: true,
474 },
475
Josh Gao776c2ec2019-01-22 19:36:15 -0800476 target: {
477 android: {
478 whole_static_libs: [
479 "libqemu_pipe",
480 ],
481 srcs: [
482 "daemon/transport_qemu.cpp",
483 "daemon/usb.cpp",
484 "daemon/usb_ffs.cpp",
Josh Gao776c2ec2019-01-22 19:36:15 -0800485 ]
Joshua Duong0f53d172020-02-26 15:43:44 -0800486 },
487 recovery: {
488 exclude_shared_libs: [
489 "libadb_pairing_auth",
490 "libadb_pairing_connection",
Josh Gaoc151a1b2020-03-16 11:30:09 -0700491 "libapp_processes_protos_lite",
Joshua Duong0f53d172020-02-26 15:43:44 -0800492 ],
Josh Gao776c2ec2019-01-22 19:36:15 -0800493 }
494 },
Josh Gaob5673032020-03-16 12:48:18 -0700495
496 apex_available: [
497 "//apex_available:platform",
498 "com.android.adbd",
499 ],
500 visibility: [
501 "//bootable/recovery/minadbd",
502 "//system/core/adb",
503 ],
Tao Baoeca59ae2018-07-30 20:45:27 -0700504}
505
Josh Gao7f8a37c2020-03-09 15:20:55 -0700506cc_library {
Tao Baoeca59ae2018-07-30 20:45:27 -0700507 name: "libadbd_services",
Josh Gao776c2ec2019-01-22 19:36:15 -0800508 defaults: ["adbd_defaults", "host_adbd_supported"],
Tao Baoeca59ae2018-07-30 20:45:27 -0700509 recovery_available: true,
510 compile_multilib: "both",
511
512 srcs: [
513 "daemon/file_sync_service.cpp",
Tao Baoeca59ae2018-07-30 20:45:27 -0700514 "daemon/services.cpp",
Tao Baoeca59ae2018-07-30 20:45:27 -0700515 "daemon/shell_service.cpp",
516 "shell_service_protocol.cpp",
517 ],
518
519 cflags: [
520 "-D_GNU_SOURCE",
521 "-Wno-deprecated-declarations",
522 ],
523
524 static_libs: [
Josh Gaobb7fc922020-01-22 17:58:03 -0800525 "libadbconnection_server",
Tao Baoeca59ae2018-07-30 20:45:27 -0700526 "libadbd_core",
Josh Gao939fc192020-03-04 19:34:08 -0800527 "libbrotli",
Tao Baoeca59ae2018-07-30 20:45:27 -0700528 "libdiagnose_usb",
Josh Gaoec44d352020-03-26 22:02:03 -0700529 "liblz4",
Josh Gao317d3e12020-05-27 17:52:52 -0700530 "libzstd",
Tao Baoeca59ae2018-07-30 20:45:27 -0700531 ],
532
533 shared_libs: [
Joshua Duongd85f5c02019-11-20 14:18:43 -0800534 "libadb_crypto",
535 "libadb_pairing_connection",
536 "libadb_protos",
537 "libadb_tls_connection",
Josh Gaoc151a1b2020-03-16 11:30:09 -0700538 "libapp_processes_protos_lite",
Tao Baoeca59ae2018-07-30 20:45:27 -0700539 "libasyncio",
540 "libbase",
Tao Baoeca59ae2018-07-30 20:45:27 -0700541 "libcrypto_utils",
Josh Gao7f8a37c2020-03-09 15:20:55 -0700542 "libcutils_sockets",
Josh Gaoc151a1b2020-03-16 11:30:09 -0700543 "libprotobuf-cpp-lite",
Josh Gao37356142020-03-27 19:41:59 -0700544
545 // APEX dependencies.
546 "libadbd_auth",
547 "libadbd_fs",
548 "libcrypto",
549 "liblog",
Tao Baoeca59ae2018-07-30 20:45:27 -0700550 ],
Alex Buynytskyy640407d2018-12-12 10:48:50 -0800551
552 target: {
Josh Gao776c2ec2019-01-22 19:36:15 -0800553 android: {
554 srcs: [
555 "daemon/abb_service.cpp",
556 "daemon/framebuffer_service.cpp",
557 "daemon/mdns.cpp",
Josh Gao776c2ec2019-01-22 19:36:15 -0800558 "daemon/restart_service.cpp",
Josh Gao776c2ec2019-01-22 19:36:15 -0800559 ],
560 shared_libs: [
Josh Gao776c2ec2019-01-22 19:36:15 -0800561 "libmdnssd",
Josh Gao776c2ec2019-01-22 19:36:15 -0800562 "libselinux",
563 ],
564 },
Alex Buynytskyy640407d2018-12-12 10:48:50 -0800565 recovery: {
566 exclude_srcs: [
567 "daemon/abb_service.cpp",
568 ],
Joshua Duong0f53d172020-02-26 15:43:44 -0800569 exclude_shared_libs: [
570 "libadb_pairing_auth",
571 "libadb_pairing_connection",
572 ],
Alex Buynytskyy640407d2018-12-12 10:48:50 -0800573 },
574 },
Josh Gaob5673032020-03-16 12:48:18 -0700575
576 apex_available: [
577 "//apex_available:platform",
578 "com.android.adbd",
579 ],
580 visibility: [
581 "//system/core/adb",
582 ],
583
Tao Baoeca59ae2018-07-30 20:45:27 -0700584}
585
586cc_library {
Josh Gao27768452018-01-02 12:01:43 -0800587 name: "libadbd",
Josh Gao776c2ec2019-01-22 19:36:15 -0800588 defaults: ["adbd_defaults", "host_adbd_supported"],
Jiyong Parka0e75042018-05-24 14:11:00 +0900589 recovery_available: true,
Jiyong Park697134d2020-03-23 14:40:50 +0000590 apex_available: ["com.android.adbd"],
Josh Gao27768452018-01-02 12:01:43 -0800591
Josh Gaobb7fc922020-01-22 17:58:03 -0800592 // avoid getting duplicate symbol of android::build::getbuildnumber().
Tao Baoeca59ae2018-07-30 20:45:27 -0700593 use_version_lib: false,
594
595 // libminadbd wants both, as it's used to build native tests.
Josh Gao27768452018-01-02 12:01:43 -0800596 compile_multilib: "both",
Tao Baoeca59ae2018-07-30 20:45:27 -0700597
Tao Baoeca59ae2018-07-30 20:45:27 -0700598 shared_libs: [
Josh Gaoc151a1b2020-03-16 11:30:09 -0700599 "libadbconnection_server",
600 "libapp_processes_protos_lite",
601 "libprotobuf-cpp-lite",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800602 "libadb_crypto",
603 "libadb_pairing_connection",
604 "libadb_tls_connection",
Josh Gao27768452018-01-02 12:01:43 -0800605 "libasyncio",
Josh Gao27768452018-01-02 12:01:43 -0800606 "libbase",
Tao Baoeca59ae2018-07-30 20:45:27 -0700607 "libcrypto",
608 "libcrypto_utils",
Tao Baoeca59ae2018-07-30 20:45:27 -0700609 "liblog",
Josh Gaoa9b62d52020-02-19 13:50:57 -0800610 "libselinux",
Josh Gao37356142020-03-27 19:41:59 -0700611
612 // APEX dependencies on the system image.
613 "libadbd_auth",
614 "libadbd_fs",
615 "libadbd_services",
Josh Gaoa9b62d52020-02-19 13:50:57 -0800616 ],
617
Joshua Duong0f53d172020-02-26 15:43:44 -0800618 target: {
619 recovery: {
620 exclude_shared_libs: [
621 "libadb_pairing_auth",
622 "libadb_pairing_connection",
623 ],
624 }
625 },
626
Josh Gaoa9b62d52020-02-19 13:50:57 -0800627 static_libs: [
Josh Gao37356142020-03-27 19:41:59 -0700628 "libadbd_core",
Josh Gao939fc192020-03-04 19:34:08 -0800629 "libbrotli",
Josh Gaoa9b62d52020-02-19 13:50:57 -0800630 "libcutils_sockets",
631 "libdiagnose_usb",
Josh Gaoec44d352020-03-26 22:02:03 -0700632 "liblz4",
Josh Gao6d949e82020-02-21 16:38:29 -0800633 "libmdnssd",
Josh Gao317d3e12020-05-27 17:52:52 -0700634 "libzstd",
Josh Gao27768452018-01-02 12:01:43 -0800635 ],
Jerry Zhangb156c602018-05-07 15:14:47 -0700636
Josh Gao08718242020-03-27 18:09:56 -0700637 visibility: [
638 "//bootable/recovery/minadbd",
639 "//system/core/adb",
Jerry Zhangb156c602018-05-07 15:14:47 -0700640 ],
Josh Gao27768452018-01-02 12:01:43 -0800641}
642
643cc_binary {
644 name: "adbd",
Josh Gao37356142020-03-27 19:41:59 -0700645 defaults: ["adbd_defaults", "host_adbd_supported", "libadbd_binary_dependencies"],
Jiyong Parka0e75042018-05-24 14:11:00 +0900646 recovery_available: true,
Jiyong Park697134d2020-03-23 14:40:50 +0000647 apex_available: ["com.android.adbd"],
Josh Gao8db99f82018-03-06 12:57:27 -0800648
Josh Gao27768452018-01-02 12:01:43 -0800649 srcs: [
650 "daemon/main.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800651 ],
652
653 cflags: [
654 "-D_GNU_SOURCE",
655 "-Wno-deprecated-declarations",
656 ],
657
658 strip: {
659 keep_symbols: true,
660 },
661
Josh Gao594f70f2019-08-15 14:05:12 -0700662 static_libs: [
Josh Gao27768452018-01-02 12:01:43 -0800663 "libadbd",
Tao Baoeca59ae2018-07-30 20:45:27 -0700664 "libadbd_services",
Josh Gao594f70f2019-08-15 14:05:12 -0700665 "libasyncio",
Tao Baoeca59ae2018-07-30 20:45:27 -0700666 "libcap",
Josh Gaoec44d352020-03-26 22:02:03 -0700667 "liblz4",
Josh Gao27768452018-01-02 12:01:43 -0800668 "libminijail",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800669 "libssl",
Josh Gao27768452018-01-02 12:01:43 -0800670 ],
Josh Gao594f70f2019-08-15 14:05:12 -0700671
672 shared_libs: [
Joshua Duongd85f5c02019-11-20 14:18:43 -0800673 "libadb_protos",
Josh Gao7f729452020-01-16 12:40:43 -0800674 "libadbd_auth",
Josh Gao594f70f2019-08-15 14:05:12 -0700675 ],
Josh Gao99522582020-02-03 23:08:05 -0800676
Joshua Duong0f53d172020-02-26 15:43:44 -0800677 target: {
678 recovery: {
679 exclude_shared_libs: [
680 "libadb_pairing_auth",
681 "libadb_pairing_connection",
682 ],
683 }
684 },
Josh Gao27768452018-01-02 12:01:43 -0800685}
686
Josh Gao7b7ee192019-10-23 13:27:17 -0700687phony {
Josh Gaoe572f2f2020-06-01 18:59:21 -0700688 // Interface between adbd in a module and the system.
689 name: "adbd_system_api",
Josh Gao7b7ee192019-10-23 13:27:17 -0700690 required: [
Josh Gaoe572f2f2020-06-01 18:59:21 -0700691 "libadbd_auth",
692 "libadbd_fs",
Josh Gao7b7ee192019-10-23 13:27:17 -0700693 "abb",
Josh Gao2c356bb2019-10-22 12:30:36 -0700694 "reboot",
Josh Gaof61f4142019-10-22 12:30:30 -0700695 "set-verity-state",
Josh Gao7b7ee192019-10-23 13:27:17 -0700696 ]
697}
698
699phony {
Josh Gaoe572f2f2020-06-01 18:59:21 -0700700 name: "adbd_system_api_recovery",
Josh Gao7b7ee192019-10-23 13:27:17 -0700701 required: [
Josh Gaoe572f2f2020-06-01 18:59:21 -0700702 "libadbd_auth",
703 "libadbd_fs",
Josh Gao2c356bb2019-10-22 12:30:36 -0700704 "reboot.recovery",
Josh Gao7b7ee192019-10-23 13:27:17 -0700705 ],
706}
707
Alex Buynytskyy640407d2018-12-12 10:48:50 -0800708cc_binary {
709 name: "abb",
710
Josh Gao776c2ec2019-01-22 19:36:15 -0800711 defaults: ["adbd_defaults"],
Josh Gao99522582020-02-03 23:08:05 -0800712 stl: "libc++",
Alex Buynytskyy640407d2018-12-12 10:48:50 -0800713 recovery_available: false,
714
715 srcs: [
716 "daemon/abb.cpp",
717 ],
718
719 cflags: [
720 "-D_GNU_SOURCE",
721 "-Wno-deprecated-declarations",
722 ],
723
724 strip: {
725 keep_symbols: true,
726 },
727
728 static_libs: [
729 "libadbd_core",
730 "libadbd_services",
731 "libcmd",
732 ],
733
734 shared_libs: [
735 "libbase",
736 "libbinder",
737 "liblog",
738 "libutils",
739 "libselinux",
740 ],
741}
742
Josh Gao27768452018-01-02 12:01:43 -0800743cc_test {
744 name: "adbd_test",
Josh Gao99522582020-02-03 23:08:05 -0800745
Josh Gao37356142020-03-27 19:41:59 -0700746 defaults: ["adbd_defaults", "libadbd_binary_dependencies"],
Josh Gao99522582020-02-03 23:08:05 -0800747
748 recovery_available: false,
Josh Gao27768452018-01-02 12:01:43 -0800749 srcs: libadb_test_srcs + [
Josh Gao997cfac2018-07-25 18:15:52 -0700750 "daemon/services.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800751 "daemon/shell_service.cpp",
752 "daemon/shell_service_test.cpp",
753 "shell_service_protocol.cpp",
754 "shell_service_protocol_test.cpp",
Joshua Duong81f2db42020-04-16 15:58:19 -0700755 "mdns_test.cpp",
Josh Gao27768452018-01-02 12:01:43 -0800756 ],
757
Chen Zhu5daea5a2020-05-08 16:45:11 -0700758 test_config: "adb_test.xml",
759
Josh Gao37356142020-03-27 19:41:59 -0700760 shared_libs: [
761 "liblog",
762 ],
763
Josh Gao27768452018-01-02 12:01:43 -0800764 static_libs: [
765 "libadbd",
Josh Gao27523262019-10-22 12:30:39 -0700766 "libadbd_auth",
Josh Gao27768452018-01-02 12:01:43 -0800767 "libbase",
Josh Gao27768452018-01-02 12:01:43 -0800768 "libcrypto_utils",
Josh Gao27768452018-01-02 12:01:43 -0800769 "libusb",
Josh Gao27768452018-01-02 12:01:43 -0800770 ],
Josh Gao7e015872020-01-30 14:49:01 -0800771 test_suites: ["device-tests", "mts"],
Dan Shid1360f42019-09-24 09:04:05 -0700772 require_root: true,
Josh Gao27768452018-01-02 12:01:43 -0800773}
774
Julien Desprez75fea7e2018-08-08 12:08:50 -0700775python_test_host {
Elliott Hughesdc699a22018-02-16 17:58:14 -0800776 name: "adb_integration_test_adb",
777 main: "test_adb.py",
778 srcs: [
779 "test_adb.py",
780 ],
Julien Desprez75fea7e2018-08-08 12:08:50 -0700781 test_config: "adb_integration_test_adb.xml",
782 test_suites: ["general-tests"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800783 version: {
784 py2: {
Josh Gao9b6522b2018-08-07 14:31:17 -0700785 enabled: false,
Elliott Hughesdc699a22018-02-16 17:58:14 -0800786 },
787 py3: {
Josh Gao9b6522b2018-08-07 14:31:17 -0700788 enabled: true,
Elliott Hughesdc699a22018-02-16 17:58:14 -0800789 },
GuangHui Liu41bda342017-05-10 14:37:17 -0700790 },
GuangHui Liu41bda342017-05-10 14:37:17 -0700791}
792
Julien Desprez618f0e12018-10-12 13:48:14 -0700793python_test_host {
Elliott Hughesdc699a22018-02-16 17:58:14 -0800794 name: "adb_integration_test_device",
795 main: "test_device.py",
796 srcs: [
797 "test_device.py",
798 ],
799 libs: [
800 "adb_py",
801 ],
Julien Desprez618f0e12018-10-12 13:48:14 -0700802 test_config: "adb_integration_test_device.xml",
803 test_suites: ["general-tests"],
Elliott Hughesdc699a22018-02-16 17:58:14 -0800804 version: {
805 py2: {
Josh Gao93dee962020-02-06 17:52:38 -0800806 enabled: false,
Elliott Hughesdc699a22018-02-16 17:58:14 -0800807 },
808 py3: {
Josh Gao93dee962020-02-06 17:52:38 -0800809 enabled: true,
Elliott Hughesdc699a22018-02-16 17:58:14 -0800810 },
GuangHui Liu41bda342017-05-10 14:37:17 -0700811 },
GuangHui Liu41bda342017-05-10 14:37:17 -0700812}
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700813
814// Note: using pipe for xxd to control the variable name generated
815// the default name used by xxd is the path to the input file.
816java_genrule {
817 name: "bin2c_fastdeployagent",
818 out: ["deployagent.inc"],
819 srcs: [":deployagent"],
820 cmd: "(echo 'unsigned char kDeployAgent[] = {' && xxd -i <$(in) && echo '};') > $(out)",
821}
822
823genrule {
824 name: "bin2c_fastdeployagentscript",
825 out: ["deployagentscript.inc"],
826 srcs: ["fastdeploy/deployagent/deployagent.sh"],
827 cmd: "(echo 'unsigned char kDeployAgentScript[] = {' && xxd -i <$(in) && echo '};') > $(out)",
828}
829
830cc_library_host_static {
831 name: "libfastdeploy_host",
832 defaults: ["adb_defaults"],
833 srcs: [
Alex Buynytskyy665f3ff2019-09-16 12:10:54 -0700834 "fastdeploy/deploypatchgenerator/apk_archive.cpp",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700835 "fastdeploy/deploypatchgenerator/deploy_patch_generator.cpp",
836 "fastdeploy/deploypatchgenerator/patch_utils.cpp",
837 "fastdeploy/proto/ApkEntry.proto",
838 ],
839 static_libs: [
840 "libadb_host",
841 "libandroidfw",
842 "libbase",
843 "libcutils",
844 "libcrypto_utils",
845 "libcrypto",
846 "libdiagnose_usb",
847 "liblog",
848 "libmdnssd",
849 "libusb",
850 "libutils",
851 "libziparchive",
852 "libz",
853 ],
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700854 proto: {
855 type: "lite",
856 export_proto_headers: true,
857 },
858 target: {
859 windows: {
860 enabled: true,
861 shared_libs: ["AdbWinApi"],
862 },
863 },
864}
865
866cc_test_host {
867 name: "fastdeploy_test",
868 defaults: ["adb_defaults"],
869 srcs: [
Alex Buynytskyy665f3ff2019-09-16 12:10:54 -0700870 "fastdeploy/deploypatchgenerator/apk_archive_test.cpp",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700871 "fastdeploy/deploypatchgenerator/deploy_patch_generator_test.cpp",
872 "fastdeploy/deploypatchgenerator/patch_utils_test.cpp",
873 ],
874 static_libs: [
Joshua Duongd85f5c02019-11-20 14:18:43 -0800875 "libadb_crypto_static",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700876 "libadb_host",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800877 "libadb_pairing_auth_static",
878 "libadb_pairing_connection_static",
879 "libadb_protos_static",
Joshua Duong62a42ec2020-07-30 16:34:29 -0700880 "libadb_sysdeps",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800881 "libadb_tls_connection_static",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700882 "libandroidfw",
883 "libbase",
884 "libcutils",
885 "libcrypto_utils",
886 "libcrypto",
887 "libdiagnose_usb",
888 "libfastdeploy_host",
889 "liblog",
890 "libmdnssd",
891 "libprotobuf-cpp-lite",
Joshua Duongd85f5c02019-11-20 14:18:43 -0800892 "libssl",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700893 "libusb",
894 "libutils",
895 "libziparchive",
896 "libz",
897 ],
898 target: {
899 windows: {
900 enabled: true,
901 shared_libs: ["AdbWinApi"],
902 },
903 },
904 data: [
Alex Buynytskyy665f3ff2019-09-16 12:10:54 -0700905 "fastdeploy/testdata/rotating_cube-metadata-release.data",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700906 "fastdeploy/testdata/rotating_cube-release.apk",
Alex Buynytskyy665f3ff2019-09-16 12:10:54 -0700907 "fastdeploy/testdata/sample.apk",
908 "fastdeploy/testdata/sample.cd",
Joshua Gilpatrickaf3ce082019-07-19 09:42:12 -0700909 ],
910}