让Android adb运行在ARM平台上


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

  1. From e8853dc01a99fddd57b375c29489cd817ddebc2d Mon Sep 17 00:00:00 2001  
  2. From: Barry Song <21cnbao@gmail.com>  
  3. Date: Wed, 2 May 2012 09:57:02 +0800  
  4. Subject: [PATCH] adb: make adb support arm as the host and adbd/host co-exist  
  5.   
  6. The Makefile is copied from https://gist.github.com/958335   
  7. with added DEFAULT_ADB_PORT=8888 to avoid the tcp port confliction  
  8. between adbd in client and cloned usb thread in host adb  
  9.   
  10. adbd uses 5037 port, thread in host adb uses 8888  
  11.   
  12. Signed-off-by: Barry Song <21cnbao@gmail.com>  
  13.   
  14. Change-Id: I70f178230a78f84ad464479abc2bba1fe6d2c372  
  15. ---  
  16.  adb/Makefile |   71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
  17.  adb/adb.h    |    2 +  
  18.  2 files changed, 73 insertions(+), 0 deletions(-)  
  19.  create mode 100644 adb/Makefile  
  20.   
  21. diff --git a/adb/Makefile b/adb/Makefile  
  22. new file mode 100644  
  23. index 0000000..d5317ee  
  24. --- /dev/null  
  25. +++ b/adb/Makefile  
  26. @@ -0,0 +1,71 @@  
  27. +SRCS+= adb.c  
  28. +SRCS+= adb_client.c  
  29. +SRCS+= commandline.c  
  30. +SRCS+= console.c  
  31. +SRCS+= file_sync_client.c  
  32. +SRCS+= fdevent.c  
  33. +SRCS+= get_my_path_linux.c  
  34. +SRCS+= services.c  
  35. +SRCS+= sockets.c  
  36. +SRCS+= transport.c  
  37. +SRCS+= transport_local.c  
  38. +SRCS+= transport_usb.c  
  39. +SRCS+= usb_linux.c  
  40. +SRCS+= usb_vendors.c  
  41. +SRCS+= utils.c  
  42. +  
  43. +VPATH+= ../libcutils  
  44. +SRCS+= abort_socket.c  
  45. +SRCS+= socket_inaddr_any_server.c  
  46. +SRCS+= socket_local_client.c  
  47. +SRCS+= socket_local_server.c  
  48. +SRCS+= socket_loopback_client.c  
  49. +SRCS+= socket_loopback_server.c  
  50. +SRCS+= socket_network_client.c  
  51. +  
  52. +VPATH+= ../libzipfile  
  53. +SRCS+= centraldir.c  
  54. +SRCS+= zipfile.c  
  55. +  
  56. +VPATH+= ../../../external/zlib  
  57. +SRCS+= adler32.c  
  58. +SRCS+= compress.c  
  59. +SRCS+= crc32.c  
  60. +SRCS+= deflate.c  
  61. +SRCS+= infback.c  
  62. +SRCS+= inffast.c  
  63. +SRCS+= inflate.c  
  64. +SRCS+= inftrees.c  
  65. +SRCS+= trees.c  
  66. +SRCS+= uncompr.c  
  67. +SRCS+= zutil.c  
  68. +  
  69. +CPPFLAGS+= -DADB_HOST=1  
  70. +CPPFLAGS+= -DHAVE_FORKEXEC=1  
  71. +CPPFLAGS+= -DHAVE_SYMLINKS  
  72. +CPPFLAGS+= -DHAVE_TERMIO_H  
  73. +CPPFLAGS+= -D_GNU_SOURCE  
  74. +CPPFLAGS+= -D_XOPEN_SOURCE  
  75. +CPPFLAGS+= -DPATH_MAX=256  
  76. +CPPFLAGS+= -DDEFAULT_ADB_PORT=8888  
  77. +CPPFLAGS+= -I.  
  78. +CPPFLAGS+= -I../include  
  79. +CPPFLAGS+= -I../../../external/zlib  
  80. +  
  81. +CFLAGS+= -O2 -g -Wall -Wno-unused-parameter -DDEFAULT_ADB_PORT=8888  
  82. +LDFLAGS= -static  
  83. +LIBS= -lrt -lpthread  
  84. +  
  85. +TOOLCHAIN= arm-none-linux-gnueabi-  
  86. +CC= $(TOOLCHAIN)gcc  
  87. +LD= $(TOOLCHAIN)gcc  
  88. +  
  89. +OBJS= $(SRCS:.c=.o)  
  90. +  
  91. +all: adb  
  92. +  
  93. +adb: $(OBJS)  
  94. +   $(LD) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)  
  95. +  
  96. +clean:  
  97. +   rm -rf $(OBJS)  
  98. diff --git a/adb/adb.h b/adb/adb.h  
  99. index f52c8b7..51b4c2f 100644  
  100. --- a/adb/adb.h  
  101. +++ b/adb/adb.h  
  102. @@ -365,7 +365,9 @@ typedef enum {  
  103.  #define print_packet(tag,p) do {} while (0)   
  104.  #endif   
  105.    
  106. +#ifndef DEFAULT_ADB_PORT  
  107.  #define DEFAULT_ADB_PORT 5037   
  108. +#endif  
  109.  #define DEFAULT_ADB_LOCAL_TRANSPORT_PORT 5555   
  110.    
  111.  #define ADB_CLASS              0xff   
  112. --   
  113. 1.7.0.4  

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

相关内容