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