參考: macOS 下載編譯 aosp 源碼
注意:編譯環(huán)境還是挺重要的,我用了另一臺(tái)mac (版本較新)去嘗試編譯(按上面的參考文章去解決問題),里面遇到的問題一 按同樣的步驟不行,換了另一臺(tái)電腦用同樣的步驟就可以, 看來系統(tǒng)版本不同,影響大啊,深究不了。沒啥辦法的話,可以嘗試一下linux方式去編譯吧各位
internal error: Could not find a supported mac sdk: [“10.10” “10.11” “10.12” “10.13”]
ninja: build stopped: subcommand failed.
其他文章鏈接:
repo reset: error: Entry 'command.py' not uptodate. Cannot merge
源碼版本支持查看
https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds
正文要開始了!!
一、親測(cè)可行的編譯環(huán)境:
1.系統(tǒng):macOS Catalina 10.15.6
2.區(qū)分大小寫、日志式的磁盤 (這邊格式化了個(gè)移動(dòng)硬盤,用于裝源碼)
3.xcode:11.3.1(按參考文章把10.13 版本的sdk 下載下來用)
4.aosp 目標(biāo)編譯平臺(tái):android-9.0.0_r1
其余一些小細(xì)節(jié)的環(huán)境可以參考 上面提到的文章

二、下載源碼
以前也嘗試過下源碼去編譯,不過源碼都沒下載成功過,這次又來挑戰(zhàn)了,也是麻煩的要命,主要是沒找對(duì)文章,還好這次成功了!
國外的太難下了,建議下 清華大學(xué)的鏡像,參考:AOSP 鏡像使用幫助
0、安裝python3.7
1、下載repo 工具
2、在新文件夾下執(zhí)行以下命令
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-9.0.0_r1
repo sync

三、構(gòu)建源碼
source build/envsetup.sh
lunch
make -j4



運(yùn)行模擬器
如果剛剛編譯完,直接執(zhí)行 emulator 即可。否則需要重新執(zhí)行 source build/envsetup.sh; lunch aosp_x86-eng; 導(dǎo)入 emulator 命令。
emulator
四、遇到的問題
參考上面參考文章中提到的問題,
1、10.13 sdk 的問題,要下載源碼編譯所需 的對(duì)應(yīng)版本
2、libc++_static 庫被重復(fù)引入
五、真機(jī) pixel3 運(yùn)行
編譯出來肯定是想要在真機(jī)運(yùn)行看看 是不是真的沒問題的,實(shí)踐才是真理啊,就在閑魚買了臺(tái) 洋垃圾,pixel3 ,便宜能用就行
為啥買pixel 3 ?
1.便宜
2.aosp 上比較新的分支 支持編譯 pixel 3 (blueline)
3.因?yàn)橐芎煤眠\(yùn)行,需要相應(yīng)的驅(qū)動(dòng),pixel 的驅(qū)動(dòng),google 有提供下載,所以還是搞一臺(tái)來好好研究吧
步驟:
1、源碼中切換分支
Android 源碼分支,支持設(shè)備查詢
https://source.android.com/setup/start/build-numbers?hl=nb
repo init -b android-9.0.0_r11
repo sync
2、下載對(duì)應(yīng)驅(qū)動(dòng)
https://developers.google.com/android/drivers#blueline

下載兩個(gè)驅(qū)動(dòng)文件,并解壓到源碼目錄下運(yùn)行的到vender 文件夾


3、編譯
make clean
source build/envsetup.sh
lunch aosp_blueline-userdebug
make -j8
4、刷寫設(shè)備
設(shè)置環(huán)境變量 (另外解鎖oem,解鎖bl就不說了)
export ANDROID_PRODUCT_OUT=/Volumes/ziqstore/aosp_9/out/target/product/blueline
adb reboot bootloader
fastboot flashall -w

