How to build Android adb for ARM .
来源:互联网 发布:2017php就业形势 编辑:程序博客网 时间:2024/04/30 16:15
Thanks to Google I’ve just found searching in many Forum threads the way to build adb on ARM arch.
Just download sources with git (apt-get install git-core on debian-like system):
$ git clone git://android.git.kernel.org/platform/system/core.git system/coreor you can go into Android source code and find the directory /system/core/adb/
$ git clone git://android.git.kernel.org/platform/build.git build
$ git clone git://android.git.kernel.org/platform/external/zlib.git external/zlib
$ git clone git://android.git.kernel.org/platform/bionic.git bionic
Now edit build/core/main.mk and comment out the parts labelled
Also edit build/target/product/sdk.mk and comment out the “include” lines after
Save this Makefile as system/core/adb/Makefile : https://gist.github.com/958335
Then just run:
Then you can copy and use your adb binary.
That’s all! If you have any problems search your distro’s packages repository to install needed packages!
:-)
# Check for the correct version of javaand
# Check for the correct version of javacSince adb doesn’t need Java, these checks are unnecessary.
Also edit build/target/product/sdk.mk and comment out the “include” lines after
# include available languages for TTS in the system imageThis avoids having to download language files that aren’t needed for adb.
Save this Makefile as system/core/adb/Makefile : https://gist.github.com/958335
Then just run:
cd system/core/adb; make
Then you can copy and use your adb binary.
That’s all! If you have any problems search your distro’s packages repository to install needed packages!
:-)
Makefile:
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+= -I.
CPPFLAGS+= -I../include
CPPFLAGS+= -I../../../external/zlib
CFLAGS+= -O2 -g -Wall -Wno-unused-parameter
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)
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+= -I.
CPPFLAGS+= -I../include
CPPFLAGS+= -I../../../external/zlib
CFLAGS+= -O2 -g -Wall -Wno-unused-parameter
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)
http://blog.csdn.net/dssxk/article/details/7263351
============================================================================================================================================================
pseudolocalize.cpp is not needed for adb. And NDK toolchain is intended to build with bionic(Android libc). adb requires glibc(GNU libc) to build.
I created a Makefile to compile adb for Linux/ARM. This Makefile makes statically linked adb executable binary for Linux/ARM, thus it works on Android/ARM as well.
- standalone Makefile for adb
How to make.
- Install Sourcery G++ Lite for ARM and GNU Make.
- Download "Android source code".
- Save Makefile as system/core/adb/Makefile.
- cd system/core/adb; make.
Makefile #
embed
raw123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
SRCS+= adb.cSRCS+= adb_client.cSRCS+= commandline.cSRCS+= console.cSRCS+= file_sync_client.cSRCS+= fdevent.cSRCS+= get_my_path_linux.cSRCS+= services.cSRCS+= sockets.cSRCS+= transport.cSRCS+= transport_local.cSRCS+= transport_usb.cSRCS+= usb_linux.cSRCS+= usb_vendors.cSRCS+= utils.cVPATH+= ../libcutilsSRCS+= abort_socket.cSRCS+= socket_inaddr_any_server.cSRCS+= socket_local_client.cSRCS+= socket_local_server.cSRCS+= socket_loopback_client.cSRCS+= socket_loopback_server.cSRCS+= socket_network_client.cVPATH+= ../libzipfileSRCS+= centraldir.cSRCS+= zipfile.cVPATH+= ../../../external/zlibSRCS+= adler32.cSRCS+= compress.cSRCS+= crc32.cSRCS+= deflate.cSRCS+= infback.cSRCS+= inffast.cSRCS+= inflate.cSRCS+= inftrees.cSRCS+= trees.cSRCS+= uncompr.cSRCS+= zutil.cCPPFLAGS+= -DADB_HOST=1CPPFLAGS+= -DHAVE_FORKEXEC=1CPPFLAGS+= -DHAVE_SYMLINKSCPPFLAGS+= -DHAVE_TERMIO_HCPPFLAGS+= -D_GNU_SOURCECPPFLAGS+= -D_XOPEN_SOURCECPPFLAGS+= -I.CPPFLAGS+= -I../includeCPPFLAGS+= -I../../../external/zlibCFLAGS+= -O2 -g -Wall -Wno-unused-parameterLDFLAGS= -staticLIBS= -lrt -lpthreadTOOLCHAIN= arm-none-linux-gnueabi-CC= $(TOOLCHAIN)gccLD= $(TOOLCHAIN)gccOBJS= $(SRCS:.c=.o)all: adbadb: $(OBJS)$(LD) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)clean:rm -rf $(OBJS)
- How to build Android adb for ARM
- How to build Android adb for ARM .
- How to Build FFmpeg for Android
- How to Build FFmpeg for Android
- How to Build FFmpeg for Android
- How to Build FFmpeg for Android
- How To Build CyanogenMod Android for smartphone
- (转)How to build adb, the Android debugger
- How to build android
- How to Build and Use libnetfilter_queue for Android
- How to build OpenOCD for windows
- how to build DLIB for iOS
- How to Build and Run Android L 64-bit ARM in QEMU
- How to cross-compile OpenSSL for ARM
- How to cross-compile Chromium for ARM
- 编译自己的Windows Android SDK(how to build Android SDK for Windows)
- 编译自己的Windows Android SDK(how to build Android SDK for Windows)
- How To Build GCC 4.8.2 ARM Cross-Compiler
- Android 应用视觉效果设计技巧
- 返回值如何理解?
- 谈点自己对当前的互联网的认识
- 【insigma】jquery、ajax以及ajax提交时中文乱码问题
- window 快捷键的用法
- How to build Android adb for ARM .
- taobao日常和项目测试流程总结
- Pyramid Lucas-Kanade optical flow code
- LINUX下的mail \ mailx为什么无法使用外部SMTP发邮件?
- TeeChart 7.0 With Source在Delphi 7.0中的安装
- treeview与xml文件的相互操作
- 关于Myclipse中java项目新建Source Folder中配置文件路径的问题
- CCriticalSection
- win7下用windbug