编译 android 2.1 (eclair) 源码 For HTC G1

1. 说明

  1. 下载编译最基本的 android 源码,无法在真机上使用(不能生成 boot.img

),只能在模拟器上使用。这是因为没有编译相关机型的内核和硬件驱动。以下介绍的是用 android 源码编译出对应 HTC G1

的版本,和烧写的过程。编译生成的版本除相机不能用之外,其它绝大部分功能都能正常使用,在 G1 上运行 2.1 版的速度也不错。

  1. 本文主要参考日文文档 G1/G2 烧机指南,感谢原文作者,原文地址: [_ http://code.google.com/p/android-development-

environment/wiki/EclaironADP1andADP2 _](http://code.google.com/p/android-

development-environment/wiki/EclaironADP1andADP2)
同时加入中文系统的支持和 JIT 支持(提高速度),以及相关文字解释。

  1. 以下步骤都经过验证(只验证 G1 手机,G2 部分请参见日文文档),实验系统 ubuntu8.04,实验日期 2010 年 5

月 8 日

  1. 关键字: android 2.1 eclair g1 源码编译

2. 建立 android 源码编译目录

1
2
3
$ export ANDROID=/exports/android/android_2.1_cn/  
$ mkdir -p $ANDROID
$ cd $ANDROID _

3. 源码下载

1
2
3
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b
android-2.1_r2 _ _ #设定下载 _ _ 2.1 _ _ 版代码 _ _
$ vi .repo/local_manifest.xml # _ _ 新建下载配置文件 _

编辑内容如下

注意:其中 msm 是高通芯片组,path 指明下载到源码目录中的位置,name 指明 git 上的项目名

1
$ repo sync #  _ _ 开始下载代码,此时需要等待较长时间  _

4. 打补丁以支持动态壁纸(此为步骤为可选)

1
2
3
4
5
6
$ wget  [ http://android-development-
environment.googlecode.com/files/patch_devphone_eclair.tar.gz
](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. 编译内核及无线网络驱动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ 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 _

](http://developer.htc.com/adp.html)
下载名为 _ signed-dream_devphone_userdebug-ota-14721.zip _ 的包,并把它放在 $ANDROID

目录下

1
2
3
4
5
6
7
8
9
10
11
$ 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 键准备烧写

1
2
3
4
5
$  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 _

](http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry)

  1. 源码编译部分未详细描述,具体请参考文档
    [_ http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry _

](http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry)

(转载请注明出处:http://xy0811.spaces.live.com)