前期准备
1. 安装虚拟机:
Ubuntu 12.04 64位操作系统(32位编译会出问题)
2. 获取Android源码:
http://blog.youkuaiyun.com/ilittleone/article/details/6823441
复制到虚拟机,据其博文,使用cat生成droid.tar.gz,并解压
3. 安装java
获取64位java: https://jdk6.java.net/download.html
记得勾选“Accept License Agreement”(建议采用迅雷下载)
复制到虚拟机,依据: http://blog.youkuaiyun.com/yygydjkthh/article/details/18874317
解压缩安装之后:
配置/etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/java/jdk1.6.0_38/bin"
CLASSPATH=.:/usr/local/java/jdk1.6.0_38/lib
JAVA_HOME=/usr/local/java/jdk1.6.0_38
保存退出。
配置profile:
sudo vim /etc/profile
在文件的末尾添加以下内容:
export JAVA_HOME=/usr/local/java/jdk1.6.0_38
export JRE_HOME=/usr/local/java/jdk1.6.0_38/jre
export PATH=$PATH:/usr/local/java/jdk1.6.0_38/bin
export CLASSPATH=./:/usr/local/java/jdk1.6.0_38/lib:/usr/local/java/jdk1.6.0_38/jre/lib
4. 安装软件
$sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
编译代码
1. 解压缩droid.tar.gz
$tar -xzvf droid.tar.gz
2. 编译Android
$source build/envsetup.sh
$m -j // 采用多个处理器编译速度更快
待生成
out/host/windows-x86/obj/STATIC_LIBRARIES/AdbWinApi_intermediates/AdbWinApi.a
之后.
3. 编译fastboot.exe
退出上述编译, 运行命令
$make USE_MINGW=y fastboot // 再编译fastboot
如编译失败, 则尝试先编译adb:
$make USE_MINGW=y adb
生成的fastboot.exe和AdbWinApi.dll, 在out/host/windows-x86/bin下.
4. 编译fastboot.dll
更改system/core/fastboot/Android.mk:
ifneq ($(HOST_OS),windows)
LOCAL_STATIC_LIBRARIES += libselinux
endif # HOST_OS != windows
#include $(BUILD_HOST_EXECUTABLE)
include $(BUILD_HOST_SHARED_LIBRARY)
$(call dist-for-goals,dist_files sdk,$(LOCAL_BUILT_MODULE))
ifeq ($(HOST_OS),linux)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := usbtest.c usb_linux.c
LOCAL_MODULE := usbtest
include $(BUILD_HOST_EXECUTABLE)
endif
ifeq ($(HOST_OS),windows)
$(LOCAL_INSTALLED_MODULE): $(HOST_OUT_EXECUTABLES)/AdbWinApi.dll
endif
将BUILD_HOST_EXECUTABLE改为BUILD_HOST_SHARED_LIBRARY再进行上述命令编译。
生成的fastboot.dll在out/host/windows-x86/lib里.