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

yangfangjit 2011-03-27

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源码编译目录

$exportANDROID=/exports/android/android_2.1_cn/

$mkdir-p$ANDROID

$ cd $ANDROID

3. 源码下载

$repoinit-ugit://android.git.kernel.org/platform/manifest.git-bandroid-2.1_r2#设定下载2.1版代码

$vi.repo/local_manifest.xml#新建下载配置文件

编辑内容如下

<?xmlversion=”1.0″encoding=”UTF-8″?>

<manifest>

<projectpath=”kernel”name=”kernel/msm”revision=”refs/heads/android-msm-2.6.29-donut”/>

<projectpath=”vendor/htc/common-open”name=”platform/vendor/htc/common-open”revision=”master”/>

<projectpath=”vendor/htc/dream-open”name=”platform/vendor/htc/dream-open”revision=”master”/>

<projectpath=”vendor/htc/prebuilt-open”name=”platform/vendor/htc/prebuilt-open”revision=”master”/>

<projectpath=”vendor/htc/sapphire-open”name=”platform/vendor/htc/sapphire-open”revision=”master”/>

<projectpath=”vendor/qcom/android-open”name=”platform/vendor/qcom/android-open”revision=”master”/>

<projectpath=”vendor/qcom/proprietary-open”name=”platform/vendor/qcom/proprietary-open”revision=”master”/>

<projectpath=”vendor/pv-open”name=”platform/vendor/pv-open”revision=”master”/>

<projectpath=”vendor/aosp”name=”platform/vendor/aosp”revision=”master”/>

<projectpath=”hardware/htc/dream”name=”platform/hardware/htc/dream”revision=”master”/>

</manifest>

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

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

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

$wgethttp://android-development-environment.googlecode.com/files/patch_devphone_eclair.tar.gz

$tarzxvfpatch_devphone_eclair.tar.gz

$ ./patch/eclair-build-patch.sh

5. 编译内核及无线网络驱动

$cd$ANDROID/kernel

$makeARCH=armCROSS_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

$makeARCH=armCROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-#编译内核

$cd$ANDROID/system/wlan/ti/sta_dk_4_0_4_32

$makeARCH=armCROSS_COMPILE=$ANDROID/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-KERNEL_DIR=$ANDROID/kernel#编译无线网络驱动

$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

$sourcebuild/envsetup.sh

$lunchaosp_dream_us-eng#指明机型

$cdvendor/htc/dream-open

$./unzip-files.sh# 解压htc相关驱动

$cd$ANDROID

$vibuildspec.mk# 新建配置文件

加入如下内容

CUSTOM_LOCALES:=zh_CN#设置编译为中文系统

WITH_JIT:=true#加入JIT支持,使得运算速度加快1-2倍

$ make -j2  编译android源码,需要等待较长时间

7. 把编译好的软件烧写到手机

用usb线连接手机到电脑,按home+power键将手机启动到工程模式,按back键准备烧写

$exportPATH=$PATH:$ANDROID/out/host/linux-x86/bin#把烧写工具所在目录加上路径

$cdout/target/product/dream-open/

$fastbootflashsystemsystem.img

$fastbootflashbootboot.img

$fastbootreboot

烧写系统后第一次启动手机需要几分钟,请耐心等待

8. 参考

1) 刷写部分未详细描述,具体请参考文档http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry

2) 源码编译部分未详细描述,具体请参考文档

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

相关推荐