1. 说明
1) 下载编译最基本的 android 源码,无法在真机上使用(不能生成 boot.img ),只能在模拟器上使用。这是因为没有编译相关机型的内核和硬件驱动。以下介绍的是用 android 源码编译出对应 HTC G1 的版本,和烧写的过程。编译生成的版本除相机不能用之外,其它绝大部分功能都能正常使用,在 G1 上运行 2.1 版的速度也不错。
2)
本文主要参考日文文档
G1/G2
烧机指南,感谢原文作者,原文地址:
http://code.google.com/p/android-development-environment/wiki/EclaironADP1andADP2
同时加入中文系统的支持和
JIT
支持(提高速度),以及相关文字解释。
3) 以下步骤都经过验证(只验证 G1 手机, G2 部分请参见日文文档),实验系统 ubuntu8.04 ,实验日期 2010 年 5 月 8 日
4) 关键字 : android 2.1 eclair g1 源码编译
2.
建立
android
源码编译目录
$ export ANDROID=/exports/android/android_2.1_cn/
$ mkdir -p $ANDROID
$ cd $ANDROID
3.
源码下载
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.1_r2
#设定下载
2.1
版代码
$ vi .repo/local_manifest.xml
#
新建下载配置文件
编辑内容如下
<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest>
<project path=”kernel” name=”kernel/msm” revision=”refs/heads/android-msm-2.6.29-donut”/>
<project path=”vendor/htc/common-open” name=”platform/vendor/htc/common-open” revision=”master”/>
<project path=”vendor/htc/dream-open” name=”platform/vendor/htc/dream-open” revision=”master”/>
<project path=”vendor/htc/prebuilt-open” name=”platform/vendor/htc/prebuilt-open” revision=”master”/>
<project path=”vendor/htc/sapphire-open” name=”platform/vendor/htc/sapphire-open” revision=”master”/>
<project path=”vendor/qcom/android-open” name=”platform/vendor/qcom/android-open” revision=”master”/>
<project path=”vendor/qcom/proprietary-open” name=”platform/vendor/qcom/proprietary-open” revision=”master”/>
<project path=”vendor/pv-open” name=”platform/vendor/pv-open” revision=”master”/>
<project path=”vendor/aosp” name=”platform/vendor/aosp” revision=”master”/>
<project path=”hardware/htc/dream” name=”platform/hardware/htc/dream” revision=”master”/>
</manifest>
注意:其中
msm
是高通芯片组,
path
指明下载到源码目录中的位置,
name
指明
git
上的项目名
$ repo sync
#
开始下载代码,此时需要等待较长时间
4.
打补丁以支持动态壁纸(此为步骤为可选)
$ wget
http://android-development-environment.googlecode.com/files/patch_devphone_eclair.tar.gz
$ tar zxvf patch_devphone_eclair.tar.gz
$ ./patch/eclair-build-patch.sh
5.
编译内核及无线网络驱动
$ cd $ANDROID/kernel
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig
#
设定默认的
msm
配置
$ vi .config
#
修改新生成的配置文件,以重新设置
CPU
最高频率,修改如下:
修改
CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX
项为
CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=528000
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- #
编译内核
$ cd $ANDROID/system/wlan/ti/sta_dk_4_0_4_32
$ make ARCH=arm CROSS_COMPILE=$ANDROID/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- KERNEL_DIR=$ANDROID/kerne
l
#编译无线网络驱动
$ cp $ANDROID/kernel/arch/arm/boot/zImage $ANDROID/vendor/htc/dream-open/kernel
$ cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko $ANDROID/vendor/htc/dream-open/wlan.ko
6.
编译
android
源码
在
HTC
网站
http://developer.htc.com/adp.html
下载名为
signed-dream_devphone_userdebug-ota-14721.zip
的包,并把它放在
$ANDROID
目录下
$ cd $ANDROID
$ source build/envsetup.sh
$ lunch aosp_dream_us-eng
#
指明机型
$ cd vendor/htc/dream-open
$ ./unzip-files.sh
# 解压
htc
相关驱动
$ cd $ANDROID
$ vi buildspec.mk
# 新建配置文件
加入如下内容
CUSTOM_LOCALES:=zh_CN
#
设置编译为中文系统
WITH_JIT:=true
#
加入
JIT
支持,使得运算速度加快
1-2
倍
$ make -j2
#
编译
android
源码,需要等待较长时间
7.
把编译好的软件烧写到手机
用
usb
线连接手机到电脑,按
home+power
键将手机启动到工程模式,按
back
键准备烧写
$
export PATH=$PATH:$ANDROID/out/host/linux-x86/bin
#
把烧写工具所在目录加上路径
$ cd out/target/product/dream-open/
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot reboot
烧写系统后第一次启动手机需要几分钟,请耐心等待
8. 参考
1)
刷写部分未详细描述,具体请参考文档
http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry
2)
源码编译部分未详细描述,具体请参考文档
http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry