歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

讓Android adb運行在ARM平台上

對Android/system/core中的adb打上如下補丁:

  1. From e8853dc01a99fddd57b375c29489cd817ddebc2d Mon Sep 17 00:00:00 2001  
  2. From: Barry Song <[email protected]>  
  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 <[email protected]>  
  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了。

Copyright © Linux教程網 All Rights Reserved