hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
config BR2_PACKAGE_ANDROID_TOOLS
   bool "android-tools"
   # Technically, fastboot could build on noMMU systems. But
   # since we need at least one of the three sub-options enabled,
   # and adb/adbd can't be built on noMMU systems, and fastboot
   # has some complicated dependencies, we simply make the whole
   # package not available on noMMU platforms.
   depends on BR2_USE_MMU
   depends on BR2_TOOLCHAIN_HAS_THREADS
   select BR2_PACKAGE_ANDROID_TOOLS_ADBD if \
         !BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT && \
         !BR2_PACKAGE_ANDROID_TOOLS_ADB
   help
     This package contains the fastboot and adb utilities, that
     can be used to interact with target devices using of these
     protocols.
 
if BR2_PACKAGE_ANDROID_TOOLS
 
# We need kernel headers that support the __SANE_USERSPACE_TYPES__
# mechanism for 64 bits architectures, so that u64 gets defined as
# "unsigned long long" and not "unsigned long". We know that >= 3.16
# is needed for MIPS64 (kernel commit
# f4b3aa7cd9d32407670e67238c5ee752bb98f481) and >= 3.10 is needed for
# PowerPC64 (kernel commit
# 2c9c6ce0199a4d252e20c531cfdc9d24e39235c0). Without this, the build
# fails with a bad redefinition of u64 (the android-tools fastboot
# code defines it as "unsigned long long").
config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS
   bool
   default y if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 && (BR2_powerpc64 || BR2_powerpc64le)
   default y if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 && (BR2_mips64 || BR2_mips64el)
   default y if !BR2_powerpc64 && !BR2_powerpc64le && !BR2_mips64 && !BR2_mips64el
 
config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT
   bool "fastboot"
   depends on BR2_TOOLCHAIN_HAS_THREADS # libselinux
   depends on !BR2_STATIC_LIBS # libselinux
   depends on BR2_TOOLCHAIN_USES_GLIBC # libselinux
   depends on !BR2_arc # libselinux
   depends on BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS
   select BR2_PACKAGE_LIBSELINUX
   select BR2_PACKAGE_ZLIB
   help
     This option will build and install the fastboot utility for
     the target, which can be used to reflash other target devices
     implementing the fastboot protocol.
 
comment "fastboot needs a glibc toolchain w/ threads, dynamic library"
   depends on !BR2_arc
   depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
       !BR2_TOOLCHAIN_USES_GLIBC
 
comment "fastboot needs headers >= 3.10 (PowerPC64), headers >= 3.16 (MIPS64)"
   depends on !BR2_arc
   depends on !BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS
 
config BR2_PACKAGE_ANDROID_TOOLS_ADB
   bool "adb"
   depends on BR2_USE_MMU # uses fork()
   select BR2_PACKAGE_OPENSSL
   select BR2_PACKAGE_ZLIB
   help
     This option will build and install the adb utility for the
     target, which can be used to interact with other target
     devices implementing the ADB protocol.
 
config BR2_PACKAGE_ANDROID_TOOLS_ADBD
   bool "adbd"
   depends on BR2_USE_MMU # uses fork()
   select BR2_PACKAGE_OPENSSL
   select BR2_PACKAGE_ZLIB
   help
     This option will build and install the adbd utility for the
     target, which can be used to interact with a host machine
     implementing the ADB protocol.
 
if BR2_PACKAGE_ANDROID_TOOLS_ADBD
 
config BR2_PACKAGE_ANDROID_TOOLS_AUTH_PASSWORD
   string "adb auth password"
   default ""
 
config BR2_PACKAGE_ANDROID_TOOLS_AUTH_RSA
   bool "adbd rsa authentication enable"
 
config BR2_PACKAGE_ANDROID_TOOLS_AUTH_RSA_KEY_PATH
   string "adbd rsa authentication public key path"
   default "/etc/adbkey.pub"
   depends on BR2_PACKAGE_ANDROID_TOOLS_AUTH_RSA
endif
 
endif
 
comment "android-tools needs a toolchain w/ threads"
   depends on BR2_USE_MMU
   depends on !BR2_TOOLCHAIN_HAS_THREADS