Как установить Android Debug Bridge (ADB) на Raspberry Pi?

Я хочу использовать ADB (Android Debug Bridge) на моей малине Pi.

Как настроить его?

4 голоса | спросил neeteen09 13 MaramSun, 13 Mar 2016 09:38:27 +03002016-03-13T09:38:27+03:0009 2016, 09:38:27

3 ответа


4

Я столкнулся с этой проблемой 1-2 года назад, и после долгого поиска я закончил сам компиляцию. Кроме того, поскольку доступные двоичные файлы adb устарели. Мне нужен adb v1.0.32 , и я мог найти только v1.0.29. Другие двоичные файлы adb, которые я нашел, не работали, потому что они были созданы для других платформ ЦП (т. Е. Не ARM).

Итак, давайте компиляции adb на самой малине Pi - без какого-либо перекрестного компиляции безумия. Это было на самом деле проще, чем вы думаете. Все, что вам нужно, это git и gcc (и пакет libssl-dev, который установлен скриптом bash).

Используя несколько шагов из здесь , я сделал следующие 2 файла

  1. 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
    
  2. 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 файлами тоже отлично работает.

ответил Eugen 25 J000000Tuesday17 2017, 14:17:34
3

Этот поток от форумов XDA ( " ADB для малины Pi ") может быть полезно; пользователю удалось собрать ADB и создать для него двоичный файл.

Сам двоичный файл можно загрузить с этой страницы .

После распаковки с использованием p7zip -d <file.7z> и копирования двоичного файла mypart /out /host /linux-armv6l /bin /adb в /usr /bin, кажется, работает нормально на RPi.

(у меня не было много времени, чтобы скомпилировать его непосредственно для теста, но инструкции должны быть на упомянутой выше странице)

ответил Michal Mig Novotny 20 MaramSun, 20 Mar 2016 01:06:08 +03002016-03-20T01:06:08+03:0001 2016, 01:06:08
1

Вы можете использовать Ubuntu Mate на Raspberry Pi. и установить adb. Оно работает. Я использовал его два дня назад, и все мои 3 устройства были обнаружены (Samsung S6, MotoX, Samsung Alpha).

ответил D-Ink. 29 Mayam16 2016, 05:05:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132