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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
