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