編譯Android2.1 for G1

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章