Как установить Android Debug Bridge (ADB) на Raspberry Pi?
Я хочу использовать ADB (Android Debug Bridge) на моей малине Pi.
Как настроить его?
3 ответа
Я столкнулся с этой проблемой 1-2 года назад, и после долгого поиска я закончил сам компиляцию. Кроме того, поскольку доступные двоичные файлы adb устарели. Мне нужен adb v1.0.32 , и я мог найти только v1.0.29. Другие двоичные файлы adb, которые я нашел, не работали, потому что они были созданы для других платформ ЦП (т. Е. Не ARM).
Итак, давайте компиляции adb на самой малине Pi - без какого-либо перекрестного компиляции безумия. Это было на самом деле проще, чем вы думаете. Все, что вам нужно, это git и gcc (и пакет libssl-dev, который установлен скриптом bash).
Используя несколько шагов из здесь , я сделал следующие 2 файла
-
adb-compile-env-setup.sh
#!/bin/bash # some steps found here: http://android.serverbox.ch/?p=1217 sudo apt-get install libssl-dev mkdir ~/adb-dev/5.1.1 cd ~/adb-dev/5.1.1 mkdir system mkdir external cd system/ git clone -b android-5.1.1_r1 https://android.googlesource.com/platform/system/core git clone -b android-5.1.1_r1 https://android.googlesource.com/platform/system/extras cd ../external/ git clone -b android-5.1.1_r1 https://android.googlesource.com/platform/external/zlib git clone -b android-5.1.1_r1 https://android.googlesource.com/platform/external/openssl git clone -b android-5.1.1_r1 https://android.googlesource.com/platform/external/libselinux cd ../system/core/adb cp ~/adb-dev/Makefile . echo "Ready to hit *make* now and pray?" read -rsp $'Press any key to continue...\n' -n1 key
-
Makefile (место в ~ /adb-dev /Makefile)
# standalone Makefile for adb # found on: http://android.serverbox.ch/?p=1217 # this works with android-5.1.1_r1 SRCS+= adb.c SRCS+= fdevent.c SRCS+= adb_client.c SRCS+= commandline.c SRCS+= console.c SRCS+= file_sync_client.c SRCS+= get_my_path_linux.c SRCS+= services.c SRCS+= sockets.c SRCS+= transport.c SRCS+= transport_local.c SRCS+= transport_usb.c SRCS+= usb_linux.c SRCS+= usb_vendors.c SRCS+= adb_auth_host.c VPATH+= ../libcutils SRCS+= socket_inaddr_any_server.c SRCS+= socket_local_client.c SRCS+= socket_local_server.c SRCS+= socket_loopback_client.c SRCS+= socket_loopback_server.c SRCS+= socket_network_client.c SRCS+= load_file.c VPATH+= ../libzipfile SRCS+= centraldir.c SRCS+= zipfile.c VPATH+= ../../../external/zlib/src SRCS+= adler32.c SRCS+= compress.c SRCS+= crc32.c SRCS+= deflate.c SRCS+= infback.c SRCS+= inffast.c SRCS+= inflate.c SRCS+= inftrees.c SRCS+= trees.c SRCS+= uncompr.c SRCS+= zutil.c CPPFLAGS+= -DADB_HOST=1 CPPFLAGS+= -DHAVE_FORKEXEC=1 CPPFLAGS+= -DHAVE_SYMLINKS CPPFLAGS+= -DHAVE_TERMIO_H CPPFLAGS+= -DHAVE_SYS_SOCKET_H CPPFLAGS+= -D_GNU_SOURCE CPPFLAGS+= -D_XOPEN_SOURCE CPPFLAGS+= -I. CPPFLAGS+= -I../include CPPFLAGS+= -I../../../external/zlib CPPFLAGS+= -I../../../external/openssl/include # so well, let's fake HAVE_OFF64_T, because Raspbian does not. # just stay away from files larger than 2GB, ok? CFLAGS+= -O2 -g -Wno-unused-parameter -DHAVE_OFF64_T LIBS= -lcrypto -lpthread -lrt # old cross-compiler stuff #TOOLCHAIN= /opt/poky/1.5/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- #CC= $(TOOLCHAIN)gcc #LD= $(TOOLCHAIN)gcc TOOLCHAIN= /usr/bin/ CC= $(TOOLCHAIN)gcc LD= $(TOOLCHAIN)gcc OBJS= $(SRCS:.c=.o) all: adb adb: $(OBJS) $(LD) -o [email protected] $(LDFLAGS) $(OBJS) $(LIBS) clean: rm -rf $(OBJS)
Запустите первый скрипт bash непосредственно на вашем малиновом Pi. Закончив, запустите make
. Это должно скомпилировать двоичный код adb прямо на Pi с использованием источников 5.1.1 R1 для Android - не требуется среда для кросс-компиляции !
Примечание : Мой комментарий в Makefile
# so well, let's fake HAVE_OFF64_T, because Raspbian does not.
# just stay away from files larger than 2GB, ok?
Я никогда не тестировал «проблему 2 ГБ», поэтому я не знаю, как будет вести себя моя сборка adb, т. е. когда вы выполните adb push verylarge4GBfile.img
. Возможно, файлы размером более 2 ГБ будут работать, возможно, нет. Пожалуйста, дайте мне знать, если вы когда-нибудь столкнетесь с какими-либо проблемами в отношении этого возможного ограничения.
Я запускаю свой двоичный код adb примерно на 20-30 малины Pi (v2 и v3) без каких-либо проблем, так как прибл. 2 года. Он используется на различных телефонах Android, но в основном на телефонах android 4.4.x и android 5.1.x. Особенно adb forward
работает отлично (это было недоступно в adb v1.0.29, насколько я помню). adb push
с ~ 1GB файлами тоже отлично работает.
Этот поток от форумов XDA ( " ADB для малины Pi ") может быть полезно; пользователю удалось собрать ADB и создать для него двоичный файл.
Сам двоичный файл можно загрузить с этой страницы .
После распаковки с использованием p7zip -d <file.7z>
и копирования двоичного файла mypart /out /host /linux-armv6l /bin /adb в /usr /bin, кажется, работает нормально на RPi.
(у меня не было много времени, чтобы скомпилировать его непосредственно для теста, но инструкции должны быть на упомянутой выше странице)
Вы можете использовать Ubuntu Mate на Raspberry Pi. и установить adb. Оно работает. Я использовал его два дня назад, и все мои 3 устройства были обнаружены (Samsung S6, MotoX, Samsung Alpha).