让Android adb运行在ARM平台上

对android/system/core中的adb打上如下补丁:

From e8853dc01a99fddd57b375c29489cd817ddebc2d Mon Sep 17 00:00:00 2001
From: Barry Song <[email protected]>
Date: Wed, 2 May 2012 09:57:02 +0800
Subject: [PATCH] adb: make adb support arm as the host and adbd/host co-exist

The Makefile is copied from https://gist.github.com/958335
with added DEFAULT_ADB_PORT=8888 to avoid the tcp port confliction
between adbd in client and cloned usb thread in host adb

adbd uses 5037 port, thread in host adb uses 8888

Signed-off-by: Barry Song <[email protected]>

Change-Id: I70f178230a78f84ad464479abc2bba1fe6d2c372
---
 adb/Makefile |   71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 adb/adb.h    |    2 +
 2 files changed, 73 insertions(+), 0 deletions(-)
 create mode 100644 adb/Makefile

diff --git a/adb/Makefile b/adb/Makefile
new file mode 100644
index 0000000..d5317ee
--- /dev/null
+++ b/adb/Makefile
@@ -0,0 +1,71 @@
+SRCS+= adb.c
+SRCS+= adb_client.c
+SRCS+= commandline.c
+SRCS+= console.c
+SRCS+= file_sync_client.c
+SRCS+= fdevent.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+= utils.c
+
+VPATH+= ../libcutils
+SRCS+= abort_socket.c
+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
+
+VPATH+= ../libzipfile
+SRCS+= centraldir.c
+SRCS+= zipfile.c
+
+VPATH+= ../../../external/zlib
+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+= -D_GNU_SOURCE
+CPPFLAGS+= -D_XOPEN_SOURCE
+CPPFLAGS+= -DPATH_MAX=256
+CPPFLAGS+= -DDEFAULT_ADB_PORT=8888
+CPPFLAGS+= -I.
+CPPFLAGS+= -I../include
+CPPFLAGS+= -I../../../external/zlib
+
+CFLAGS+= -O2 -g -Wall -Wno-unused-parameter -DDEFAULT_ADB_PORT=8888
+LDFLAGS= -static
+LIBS= -lrt -lpthread
+
+TOOLCHAIN= arm-none-linux-gnueabi-
+CC= $(TOOLCHAIN)gcc
+LD= $(TOOLCHAIN)gcc
+
+OBJS= $(SRCS:.c=.o)
+
+all: adb
+
+adb: $(OBJS)
+	$(LD) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)
+
+clean:
+	rm -rf $(OBJS)
diff --git a/adb/adb.h b/adb/adb.h
index f52c8b7..51b4c2f 100644
--- a/adb/adb.h
+++ b/adb/adb.h
@@ -365,7 +365,9 @@ typedef enum {
 #define print_packet(tag,p) do {} while (0)
 #endif
 
+#ifndef DEFAULT_ADB_PORT
 #define DEFAULT_ADB_PORT 5037
+#endif
 #define DEFAULT_ADB_LOCAL_TRANSPORT_PORT 5555
 
 #define ADB_CLASS              0xff
-- 
1.7.0.4

在adb所在目录运行make,使用arm linux toolchain得到了adb。即可以在运行ARM Linux平台的电路板或Android手机上作为adb的host了。




你可能感兴趣的:(thread,android,linux,socket,gcc,makefile)