I ran accross this problem 1-2 years ago and after a long search I ended up compiling adb myself. Also, because the available adb binaries are outdated. I needed **adb v1.0.32** and I could find only v1.0.29. Using some steps from [here][1] I made the following 2 files 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** (place into ~/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 $@ $(LDFLAGS) $(OBJS) $(LIBS) clean: rm -rf $(OBJS) Run the first bash file directly on your Raspberry Pi. This should compile the adb binary right on the Pi using Android 5.1.1 R1 sources - **no cross-compiling environment needed**! *Remark*: My comment in the Makefile so well, let's fake HAVE_OFF64_T, because Raspbian does not. just stay away from files larger than 2GB, ok? I have never tested the "2GB problem", so I don't know how my adb build will behave, i.e. when you do `adb push verylarge4GBfile.img`. Maybe it will work nonetheless. Please let me know if you ever come across any problems in regards to this possible limitation. [1]: http://android.serverbox.ch/?p=1217