1// 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
15package {
16    default_applicable_licenses: ["packages_modules_adb_license"],
17}
18
19// Added automatically by a large-scale-change
20// See: http://go/android-license-faq
21license {
22    name: "packages_modules_adb_license",
23    visibility: [":__subpackages__"],
24    license_kinds: [
25        "SPDX-license-identifier-Apache-2.0",
26    ],
27    license_text: [
28        "NOTICE",
29    ],
30}
31
32tidy_errors = [
33    "-*",
34    "bugprone-inaccurate-erase",
35    "bugprone-use-after-move",
36]
37
38cc_defaults {
39    name: "adb_defaults",
40
41    cflags: [
42        "-Wall",
43        "-Wextra",
44        "-Werror",
45        "-Wexit-time-destructors",
46        "-Wno-non-virtual-dtor",
47        "-Wno-unused-parameter",
48        "-Wno-missing-field-initializers",
49        "-Wthread-safety",
50        "-Wvla",
51        "-DADB_HOST=1",         // overridden by adbd_defaults
52        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION=1",
53    ],
54    cpp_std: "experimental",
55
56    use_version_lib: true,
57    compile_multilib: "first",
58
59    target: {
60        darwin: {
61            host_ldlibs: [
62                "-lpthread",
63                "-framework CoreFoundation",
64                "-framework IOKit",
65                "-lobjc",
66            ],
67            cflags: [
68                // Required, to use the new IPv6 Sockets options introduced by RFC 3542.
69                "-D__APPLE_USE_RFC_3542",
70            ],
71        },
72
73        windows: {
74            cflags: [
75                // Define windows.h and tchar.h Unicode preprocessor symbols so that
76                // CreateFile(), _tfopen(), etc. map to versions that take wchar_t*, breaking the
77                // build if you accidentally pass char*. Fix by calling like:
78                //   std::wstring path_wide;
79                //   if (!android::base::UTF8ToWide(path_utf8, &path_wide)) { /* error handling */ }
80                //   CreateFileW(path_wide.c_str());
81                "-DUNICODE=1",
82                "-D_UNICODE=1",
83
84                // Unlike on Linux, -std=gnu++ doesn't set _GNU_SOURCE on Windows.
85                "-D_GNU_SOURCE",
86
87                // MinGW hides some things behind _POSIX_SOURCE.
88                "-D_POSIX_SOURCE",
89
90                // libusb uses __stdcall on a variadic function, which gets ignored.
91                "-Wno-ignored-attributes",
92
93                // Not supported yet.
94                "-Wno-thread-safety",
95            ],
96
97            host_ldlibs: [
98                "-lws2_32",
99                "-lgdi32",
100                "-luserenv",
101                "-liphlpapi",
102            ],
103        },
104    },
105
106    tidy: true,
107    tidy_checks: tidy_errors,
108    tidy_checks_as_errors: tidy_errors,
109}
110
111cc_defaults {
112    name: "adbd_defaults",
113    defaults: ["adb_defaults"],
114
115    cflags: ["-UADB_HOST", "-DADB_HOST=0"],
116}
117
118cc_defaults {
119    name: "host_adbd_supported",
120
121    host_supported: true,
122    target: {
123        linux: {
124            enabled: true,
125            host_ldlibs: [
126                "-lresolv", // b64_pton
127                "-lutil", // forkpty
128            ],
129        },
130        darwin: {
131            enabled: false,
132        },
133        windows: {
134            enabled: false,
135        },
136    },
137}
138
139soong_config_module_type_import {
140    from: "system/apex/Android.bp",
141    module_types: ["library_linking_strategy_cc_defaults"],
142}
143
144library_linking_strategy_cc_defaults {
145    name: "libadbd_binary_dependencies",
146    static_libs: [
147        "libadb_crypto",
148        "libadb_pairing_connection",
149        "libadb_sysdeps",
150        "libadb_tls_connection",
151        "libadbd",
152        "libadbd_core",
153        "libadbconnection_server",
154        "libasyncio",
155        "libbrotli",
156        "libcrypto_utils",
157        "libcutils_sockets",
158        "libdiagnose_usb",
159        "libmdnssd",
160        "libzstd",
161
162        "libadb_protos",
163        "libapp_processes_protos_lite",
164        "libprotobuf-cpp-lite",
165    ],
166
167    shared_libs: [
168        "libadbd_auth",
169        "libadbd_fs",
170        "liblog",
171        "libselinux",
172    ],
173
174    soong_config_variables:{
175        library_linking_strategy: {
176            prefer_static: {
177                static_libs: [
178                    "libbase",
179                ],
180            },
181            conditions_default: {
182                shared_libs: [
183                    "libbase",
184                ],
185            },
186        },
187    },
188
189    target: {
190        android: {
191            shared_libs: ["libcrypto"],
192        },
193        linux_glibc: {
194            static_libs: ["libcrypto_static"],
195        },
196        recovery: {
197            exclude_static_libs: [
198                "libadb_pairing_auth",
199                "libadb_pairing_connection",
200            ],
201        },
202    },
203}
204
205// libadb
206// =========================================================
207// These files are compiled for both the host and the device.
208libadb_srcs = [
209    "adb.cpp",
210    "adb_io.cpp",
211    "adb_listeners.cpp",
212    "adb_mdns.cpp",
213    "adb_trace.cpp",
214    "adb_unique_fd.cpp",
215    "adb_utils.cpp",
216    "fdevent/fdevent.cpp",
217    "services.cpp",
218    "sockets.cpp",
219    "socket_spec.cpp",
220    "sysdeps/env.cpp",
221    "sysdeps/errno.cpp",
222    "transport.cpp",
223    "transport_fd.cpp",
224    "types.cpp",
225]
226
227libadb_darwin_srcs = [
228    "fdevent/fdevent_poll.cpp",
229]
230
231libadb_windows_srcs = [
232    "fdevent/fdevent_poll.cpp",
233    "sysdeps_win32.cpp",
234    "sysdeps/win32/errno.cpp",
235    "sysdeps/win32/stat.cpp",
236]
237
238libadb_posix_srcs = [
239    "sysdeps_unix.cpp",
240    "sysdeps/posix/network.cpp",
241]
242
243libadb_linux_srcs = [
244    "fdevent/fdevent_epoll.cpp",
245]
246
247libadb_test_srcs = [
248    "adb_io_test.cpp",
249    "adb_listeners_test.cpp",
250    "adb_utils_test.cpp",
251    "fdevent/fdevent_test.cpp",
252    "socket_spec_test.cpp",
253    "socket_test.cpp",
254    "sysdeps_test.cpp",
255    "sysdeps/stat_test.cpp",
256    "transport_test.cpp",
257    "types_test.cpp",
258]
259
260cc_library_host_static {
261    name: "libadb_host",
262    defaults: ["adb_defaults"],
263
264    srcs: libadb_srcs + [
265        "client/openscreen/mdns_service_info.cpp",
266        "client/openscreen/mdns_service_watcher.cpp",
267        "client/openscreen/platform/logging.cpp",
268        "client/openscreen/platform/task_runner.cpp",
269        "client/openscreen/platform/udp_socket.cpp",
270        "client/auth.cpp",
271        "client/adb_wifi.cpp",
272        "client/usb_libusb.cpp",
273        "client/transport_local.cpp",
274        "client/mdnsresponder_client.cpp",
275        "client/mdns_utils.cpp",
276        "client/transport_mdns.cpp",
277        "client/transport_usb.cpp",
278        "client/pairing/pairing_client.cpp",
279    ],
280
281    generated_headers: ["platform_tools_version"],
282
283    target: {
284        linux: {
285            srcs: ["client/usb_linux.cpp"] + libadb_linux_srcs,
286        },
287        darwin: {
288            srcs: ["client/usb_osx.cpp"] + libadb_darwin_srcs,
289        },
290        not_windows: {
291            srcs: libadb_posix_srcs,
292        },
293        windows: {
294            enabled: true,
295            srcs: [
296                "client/usb_windows.cpp",
297            ] + libadb_windows_srcs,
298            shared_libs: ["AdbWinApi"],
299        },
300    },
301
302    static_libs: [
303        "libadb_crypto",
304        "libadb_protos",
305        "libadb_pairing_connection",
306        "libadb_tls_connection",
307        "libbase",
308        "libcrypto_utils",
309        "libcrypto",
310        "libdiagnose_usb",
311        "libmdnssd",
312        "libusb",
313        "libutils",
314        "liblog",
315        "libcutils",
316        "libopenscreen-discovery",
317        "libopenscreen-platform-impl",
318        "libprotobuf-cpp-lite",
319    ],
320}
321
322cc_library {
323    name: "libadb_sysdeps",
324    defaults: ["adb_defaults"],
325    recovery_available: true,
326    host_supported: true,
327    compile_multilib: "both",
328    min_sdk_version: "apex_inherit",
329    // This library doesn't use build::GetBuildNumber()
330    use_version_lib: false,
331
332    srcs: [
333        "sysdeps/env.cpp",
334    ],
335
336    shared_libs: [
337        "libbase",
338        "liblog",
339    ],
340
341    target: {
342        windows: {
343            enabled: true,
344            ldflags: ["-municode"],
345        },
346    },
347
348    export_include_dirs: ["."],
349
350    visibility: [
351        "//bootable/recovery/minadbd:__subpackages__",
352        "//packages/modules/adb:__subpackages__",
353    ],
354
355    apex_available: [
356        "com.android.adbd",
357        "test_com.android.adbd",
358    ],
359}
360
361cc_test_host {
362    name: "adb_test",
363    defaults: ["adb_defaults"],
364    srcs: libadb_test_srcs + [
365        "client/mdns_utils_test.cpp",
366    ],
367
368    static_libs: [
369        "libadb_crypto_static",
370        "libadb_host",
371        "libadb_pairing_auth_static",
372        "libadb_pairing_connection_static",
373        "libadb_protos_static",
374        "libadb_sysdeps",
375        "libadb_tls_connection_static",
376        "libbase",
377        "libcutils",
378        "libcrypto_utils",
379        "libcrypto",
380        "liblog",
381        "libmdnssd",
382        "libdiagnose_usb",
383        "libopenscreen-discovery",
384        "libopenscreen-platform-impl",
385        "libprotobuf-cpp-lite",
386        "libssl",
387        "libusb",
388    ],
389
390    target: {
391        windows: {
392            enabled: true,
393            ldflags: ["-municode"],
394            shared_libs: ["AdbWinApi"],
395        },
396    },
397}
398
399cc_binary_host {
400    name: "adb",
401
402    stl: "libc++_static",
403    defaults: ["adb_defaults"],
404
405    srcs: [
406        "client/adb_client.cpp",
407        "client/bugreport.cpp",
408        "client/commandline.cpp",
409        "client/file_sync_client.cpp",
410        "client/main.cpp",
411        "client/console.cpp",
412        "client/adb_install.cpp",
413        "client/line_printer.cpp",
414        "client/fastdeploy.cpp",
415        "client/fastdeploycallbacks.cpp",
416        "client/incremental.cpp",
417        "client/incremental_server.cpp",
418        "client/incremental_utils.cpp",
419        "shell_service_protocol.cpp",
420    ],
421
422    generated_headers: [
423        "bin2c_fastdeployagent",
424        "bin2c_fastdeployagentscript"
425    ],
426
427    static_libs: [
428        "libadb_crypto",
429        "libadb_host",
430        "libadb_pairing_auth",
431        "libadb_pairing_connection",
432        "libadb_protos",
433        "libadb_sysdeps",
434        "libadb_tls_connection",
435        "libandroidfw",
436        "libapp_processes_protos_full",
437        "libbase",
438        "libbrotli",
439        "libcutils",
440        "libcrypto_utils",
441        "libcrypto",
442        "libfastdeploy_host",
443        "libdiagnose_usb",
444        "liblog",
445        "liblz4",
446        "libmdnssd",
447        "libopenscreen-discovery",
448        "libopenscreen-platform-impl",
449        "libprotobuf-cpp-full",
450        "libssl",
451        "libusb",
452        "libutils",
453        "liblog",
454        "libziparchive",
455        "libz",
456        "libzstd",
457    ],
458
459    // Don't add anything here, we don't want additional shared dependencies
460    // on the host adb tool, and shared libraries that link against libc++
461    // will violate ODR
462    shared_libs: [],
463
464    // Archive adb, adb.exe.
465    dist: {
466        targets: [
467            "dist_files",
468            "sdk",
469            "win_sdk",
470        ],
471    },
472
473    target: {
474        darwin: {
475            cflags: [
476                "-Wno-sizeof-pointer-memaccess",
477            ],
478        },
479        windows: {
480            enabled: true,
481            ldflags: ["-municode"],
482            shared_libs: ["AdbWinApi"],
483            required: [
484                "AdbWinUsbApi",
485            ],
486        },
487    },
488}
489
490// libadbd_core contains the common sources to build libadbd and libadbd_services.
491cc_library_static {
492    name: "libadbd_core",
493    defaults: ["adbd_defaults", "host_adbd_supported"],
494    recovery_available: true,
495
496    // libminadbd wants both, as it's used to build native tests.
497    compile_multilib: "both",
498
499    srcs: libadb_srcs + libadb_linux_srcs + libadb_posix_srcs + [
500        "daemon/adb_wifi.cpp",
501        "daemon/auth.cpp",
502        "daemon/jdwp_service.cpp",
503        "daemon/logging.cpp",
504        "daemon/transport_local.cpp",
505    ],
506
507    generated_headers: ["platform_tools_version"],
508
509    static_libs: [
510        "libdiagnose_usb",
511    ],
512
513    shared_libs: [
514        "libadbconnection_server",
515        "libadb_crypto",
516        "libadb_pairing_connection",
517        "libadb_protos",
518        "libadb_tls_connection",
519        "libadbd_auth",
520        "libapp_processes_protos_lite",
521        "libasyncio",
522        "libbase",
523        "libcrypto",
524        "libcrypto_utils",
525        "libcutils_sockets",
526        "liblog",
527    ],
528
529    proto: {
530        type: "lite",
531        static: true,
532        export_proto_headers: true,
533    },
534
535    target: {
536        android: {
537            srcs: [
538                "daemon/property_monitor.cpp",
539                "daemon/usb.cpp",
540                "daemon/usb_ffs.cpp",
541                "daemon/watchdog.cpp",
542            ]
543        },
544        recovery: {
545            exclude_shared_libs: [
546                "libadb_pairing_auth",
547                "libadb_pairing_connection",
548                "libapp_processes_protos_lite",
549            ],
550        }
551    },
552
553    apex_available: [
554        "//apex_available:platform",
555        "com.android.adbd",
556    ],
557    visibility: [
558        "//bootable/recovery/minadbd",
559        "//packages/modules/adb:__subpackages__",
560    ],
561}
562
563cc_library {
564    name: "libadbd_services",
565    defaults: ["adbd_defaults", "host_adbd_supported"],
566    recovery_available: true,
567    compile_multilib: "both",
568
569    srcs: [
570        "daemon/file_sync_service.cpp",
571        "daemon/services.cpp",
572        "daemon/shell_service.cpp",
573        "shell_service_protocol.cpp",
574    ],
575
576    cflags: [
577        "-D_GNU_SOURCE",
578        "-Wno-deprecated-declarations",
579    ],
580
581    static_libs: [
582        "libadbconnection_server",
583        "libadbd_core",
584        "libbrotli",
585        "libdiagnose_usb",
586        "liblz4",
587        "libzstd",
588    ],
589
590    shared_libs: [
591        "libadb_crypto",
592        "libadb_pairing_connection",
593        "libadb_protos",
594        "libadb_tls_connection",
595        "libapp_processes_protos_lite",
596        "libasyncio",
597        "libbase",
598        "libcrypto_utils",
599        "libcutils_sockets",
600        "libprotobuf-cpp-lite",
601
602        // APEX dependencies.
603        "libadbd_auth",
604        "libadbd_fs",
605        "libcrypto",
606        "liblog",
607    ],
608
609    target: {
610        android: {
611            srcs: [
612                "daemon/abb_service.cpp",
613                "daemon/framebuffer_service.cpp",
614                "daemon/mdns.cpp",
615                "daemon/restart_service.cpp",
616            ],
617            shared_libs: [
618                "libmdnssd",
619                "libselinux",
620            ],
621        },
622        recovery: {
623            exclude_srcs: [
624                "daemon/abb_service.cpp",
625            ],
626            exclude_shared_libs: [
627                "libadb_pairing_auth",
628                "libadb_pairing_connection",
629            ],
630        },
631    },
632
633    apex_available: [
634        "//apex_available:platform",
635        "com.android.adbd",
636    ],
637    visibility: [
638        "//packages/modules/adb",
639    ],
640
641}
642
643cc_library {
644    name: "libadbd",
645    defaults: ["adbd_defaults", "host_adbd_supported"],
646    recovery_available: true,
647    apex_available: ["com.android.adbd"],
648
649    // avoid getting duplicate symbol of android::build::getbuildnumber().
650    use_version_lib: false,
651
652    // libminadbd wants both, as it's used to build native tests.
653    compile_multilib: "both",
654
655    shared_libs: [
656        "libadbconnection_server",
657        "libapp_processes_protos_lite",
658        "libprotobuf-cpp-lite",
659        "libadb_crypto",
660        "libadb_pairing_connection",
661        "libadb_tls_connection",
662        "libasyncio",
663        "libbase",
664        "libcrypto",
665        "libcrypto_utils",
666        "liblog",
667        "libselinux",
668
669        // APEX dependencies on the system image.
670        "libadbd_auth",
671        "libadbd_fs",
672        "libadbd_services",
673    ],
674
675    target: {
676        recovery: {
677            exclude_shared_libs: [
678                "libadb_pairing_auth",
679                "libadb_pairing_connection",
680            ],
681        }
682    },
683
684    static_libs: [
685        "libadbd_core",
686        "libbrotli",
687        "libcutils_sockets",
688        "libdiagnose_usb",
689        "liblz4",
690        "libmdnssd",
691        "libzstd",
692    ],
693
694    visibility: [
695        "//bootable/recovery/minadbd",
696        "//packages/modules/adb",
697    ],
698}
699
700cc_binary {
701    name: "adbd",
702    defaults: ["adbd_defaults", "host_adbd_supported", "libadbd_binary_dependencies"],
703    recovery_available: true,
704    apex_available: ["com.android.adbd"],
705
706    srcs: [
707        "daemon/main.cpp",
708    ],
709
710    cflags: [
711        "-D_GNU_SOURCE",
712        "-Wno-deprecated-declarations",
713    ],
714
715    strip: {
716        keep_symbols: true,
717    },
718
719    static_libs: [
720        "libadbd",
721        "libadbd_services",
722        "libasyncio",
723        "libcap",
724        "liblz4",
725        "libminijail",
726        "libssl",
727    ],
728
729    shared_libs: [
730        "libadb_protos",
731        "libadbd_auth",
732    ],
733
734    target: {
735        recovery: {
736            exclude_shared_libs: [
737                "libadb_pairing_auth",
738                "libadb_pairing_connection",
739            ],
740        }
741    },
742}
743
744phony {
745    // Interface between adbd in a module and the system.
746    name: "adbd_system_api",
747    required: [
748        "libadbd_auth",
749        "libadbd_fs",
750        "abb",
751        "reboot",
752        "set-verity-state",
753    ]
754}
755
756phony {
757    name: "adbd_system_api_recovery",
758    required: [
759        "libadbd_auth",
760        "libadbd_fs",
761        "reboot.recovery",
762    ],
763}
764
765cc_binary {
766    name: "abb",
767
768    defaults: ["adbd_defaults"],
769    stl: "libc++",
770    recovery_available: false,
771
772    srcs: [
773        "daemon/abb.cpp",
774    ],
775
776    cflags: [
777        "-D_GNU_SOURCE",
778        "-Wno-deprecated-declarations",
779    ],
780
781    strip: {
782        keep_symbols: true,
783    },
784
785    static_libs: [
786        "libadbd_core",
787        "libadbd_services",
788        "libcmd",
789    ],
790
791    shared_libs: [
792        "libbase",
793        "libbinder",
794        "liblog",
795        "libutils",
796        "libselinux",
797    ],
798}
799
800cc_test {
801    name: "adbd_test",
802
803    defaults: ["adbd_defaults", "libadbd_binary_dependencies"],
804
805    recovery_available: false,
806    srcs: libadb_test_srcs + [
807        "daemon/services.cpp",
808        "daemon/shell_service.cpp",
809        "daemon/shell_service_test.cpp",
810        "shell_service_protocol.cpp",
811        "shell_service_protocol_test.cpp",
812        "mdns_test.cpp",
813    ],
814
815    test_config: "adb_test.xml",
816
817    target: {
818        android: {
819            srcs: [
820                "daemon/property_monitor_test.cpp",
821            ],
822        },
823    },
824
825    shared_libs: [
826        "liblog",
827    ],
828
829    static_libs: [
830        "libadbd",
831        "libadbd_auth",
832        "libbase",
833        "libcrypto_utils",
834        "libusb",
835    ],
836    test_suites: ["general-tests", "mts-adbd"],
837    require_root: true,
838}
839
840python_test_host {
841    name: "adb_integration_test_adb",
842    main: "test_adb.py",
843    srcs: [
844        "test_adb.py",
845    ],
846    test_config: "adb_integration_test_adb.xml",
847    test_suites: ["general-tests"],
848    version: {
849        py2: {
850            enabled: false,
851        },
852        py3: {
853            enabled: true,
854        },
855    },
856    test_options: {
857        unit_test: false,
858    },
859}
860
861python_test_host {
862    name: "adb_integration_test_device",
863    main: "test_device.py",
864    srcs: [
865        "test_device.py",
866    ],
867    libs: [
868        "adb_py",
869    ],
870    test_config: "adb_integration_test_device.xml",
871    test_suites: ["general-tests"],
872    version: {
873        py2: {
874            enabled: false,
875        },
876        py3: {
877            enabled: true,
878        },
879    },
880    test_options: {
881        unit_test: false,
882    },
883}
884
885// Note: using pipe for xxd to control the variable name generated
886// the default name used by xxd is the path to the input file.
887java_genrule {
888    name: "bin2c_fastdeployagent",
889    out: ["deployagent.inc"],
890    srcs: [":deployagent"],
891    cmd: "(echo 'unsigned char kDeployAgent[] = {' && xxd -i <$(in) && echo '};') > $(out)",
892}
893
894genrule {
895    name: "bin2c_fastdeployagentscript",
896    out: ["deployagentscript.inc"],
897    srcs: ["fastdeploy/deployagent/deployagent.sh"],
898    cmd: "(echo 'unsigned char kDeployAgentScript[] = {' && xxd -i <$(in) && echo '};') > $(out)",
899}
900
901cc_library_host_static {
902    name: "libfastdeploy_host",
903    defaults: ["adb_defaults"],
904    srcs: [
905        "fastdeploy/deploypatchgenerator/apk_archive.cpp",
906        "fastdeploy/deploypatchgenerator/deploy_patch_generator.cpp",
907        "fastdeploy/deploypatchgenerator/patch_utils.cpp",
908        "fastdeploy/proto/ApkEntry.proto",
909    ],
910    static_libs: [
911        "libadb_host",
912        "libandroidfw",
913        "libbase",
914        "libcutils",
915        "libcrypto_utils",
916        "libcrypto",
917        "libdiagnose_usb",
918        "liblog",
919        "libmdnssd",
920        "libusb",
921        "libutils",
922        "libziparchive",
923        "libz",
924    ],
925    proto: {
926        type: "lite",
927        export_proto_headers: true,
928    },
929    target: {
930        windows: {
931            enabled: true,
932            shared_libs: ["AdbWinApi"],
933        },
934    },
935}
936
937cc_test_host {
938    name: "fastdeploy_test",
939    defaults: ["adb_defaults"],
940    srcs: [
941        "fastdeploy/deploypatchgenerator/apk_archive_test.cpp",
942        "fastdeploy/deploypatchgenerator/deploy_patch_generator_test.cpp",
943        "fastdeploy/deploypatchgenerator/patch_utils_test.cpp",
944    ],
945    static_libs: [
946        "libadb_crypto_static",
947        "libadb_host",
948        "libadb_pairing_auth_static",
949        "libadb_pairing_connection_static",
950        "libadb_protos_static",
951        "libadb_sysdeps",
952        "libadb_tls_connection_static",
953        "libandroidfw",
954        "libbase",
955        "libcutils",
956        "libcrypto_utils",
957        "libcrypto",
958        "libdiagnose_usb",
959        "libfastdeploy_host",
960        "liblog",
961        "libmdnssd",
962        "libopenscreen-discovery",
963        "libopenscreen-platform-impl",
964        "libprotobuf-cpp-lite",
965        "libssl",
966        "libusb",
967        "libutils",
968        "libziparchive",
969        "libz",
970    ],
971    target: {
972        windows: {
973            enabled: true,
974            shared_libs: ["AdbWinApi"],
975        },
976    },
977    data: [
978        "fastdeploy/testdata/rotating_cube-metadata-release.data",
979        "fastdeploy/testdata/rotating_cube-release.apk",
980        "fastdeploy/testdata/sample.apk",
981        "fastdeploy/testdata/sample.cd",
982    ],
983}
984