經過這將近一天的不斷試誤,終於至少成功跑完 building 流程,先記錄一下:
參考文獻:
截自目前為止,編譯 AOSP 還是去找一台 x86 Linux 比較乾脆。我在 x86_64 Linux 上折騰好久,最後還是找家裡的 x86 桌機來用。
流程:
- mkdir ~/aosp && cd ~/aosp/
- repo init -u git://github.com/CyanogenMod/android.git -b froyo
- repo sync (取得原始碼)
- source build/envsetup.sh
- lunch cyanogen_dream_sapphire-eng (指定要 build 給 Sapphire 用,也就是 32B 版 Magic)
- export CCOMPILER=~/aosp/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
- export USE_CCACHE=1
- cd device/htc/dream_sapphire/
- mkdir -p ../../../vendor/htc/dream_sapphire/proprietary
- ./extract-files.sh (需將手機以 debugging 模式接上電腦,並且會呼叫 SDK 的 adb 抓取手機裡頭一些 proprietaries 檔案)
- cd ~/aosp/vendor/cyanogen/
- ./get-rommanager (若不想安裝 ROM Manager,可能需要修改相關的 Makefiles,否則此步不做的話 building 流程會失敗)
- cd ~/aosp
- make clobber ; make clean (若先前有跑過失敗的 building 流程,需先跑一次)
- make -j2 otapackage
- ./vendor/cyanogen/tools/squisher
生出來的 *.zip 與 *.img 檔會在:
- out/target/product/dream_sapphire/
- out/target/product/dream_sapphire/obj/PACKAGING/target_files_intermediates/