1. 簡(jiǎn)介
很多 Android 開(kāi)發(fā)者都會(huì)希望編譯 Android 源碼并刷進(jìn)自己的手機(jī)里面缭付,但網(wǎng)上教程很多都僅僅是告訴你 lunch邑跪、make 等等烈和,但你手里有一臺(tái)設(shè)備時(shí)卻發(fā)現(xiàn)偶垮,你編譯出的鏡像由于驅(qū)動(dòng)關(guān)系是不能直接燒進(jìn)手機(jī)的睛约。這里整理了一下步驟执解,幫助大家可以按照流程編譯并燒寫(xiě)鏡像寞肖。
本篇文章以 Pixel 2 && Android 10 為例
2. 環(huán)境準(zhǔn)備
這塊沒(méi)啥說(shuō),官方教程就夠了衰腌,參考:https://source.android.com/setup/build/initializing 就行了
3. 源碼下載
- 根據(jù) https://developers.google.com/android/drivers 選擇一個(gè)設(shè)備對(duì)應(yīng) Android 版本號(hào)和驅(qū)動(dòng)新蟆,比如我們選擇:Android 10.0.0 (QP1A.190711.020),下載驅(qū)動(dòng)桶唐,記住 Build 號(hào)
-
在 https://source.android.com/setup/start/build-numbers 查找 QP1A.190711.020 對(duì)應(yīng)的分支:android-10.0.0_r2栅葡,記住分支名
下載 AOSP 源碼
注意在下載 aosp 前要安裝 repo 工具,參考:https://source.android.com/setup/build/downloading
mkdir Pixel2
cd Pixel2
repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r2 --depth=1
repo sync -j8
repo start android-10.0.0_r2 --all
- 把步驟1中選中的兩個(gè)驅(qū)動(dòng)下載到 aosp 源碼根目錄并解壓
- 分別執(zhí)行解壓后的文件尤泽,注意欣簇,執(zhí)行后要同意 License,確保正確解壓到 aosp 根目錄的 vendor 目錄
./extract-qcom-walleye.sh
./extract-google_devices-walleye.sh
4. 源碼編譯
- 在 aosp 源碼根目錄執(zhí)行:source build/envsetup.sh(注意坯约,執(zhí)行前終端請(qǐng)選bash熊咽,不要使用zsh等,在終端鍵入bash回車即可)
- 在 aosp 源碼根目錄執(zhí)行:lunch
- 選擇對(duì)應(yīng)的版本闹丐,比如 Pixel2 就選擇:aosp_walleye-userdebug
- 執(zhí)行:make -j8
5. 鏡像燒寫(xiě)
- 編譯完后横殴,執(zhí)行:
export ANDROID_PRODUCT_OUT=/home/chenhang/source/Pixel2/out/target/product/walleye
- 執(zhí)行:
fastboot flashall -w
- 燒寫(xiě)完成后,執(zhí)行:
fastboot reboot
6. Gapps 安裝
編譯出來(lái)的 aosp 默認(rèn)沒(méi)有 google 全家桶卿拴,可以通過(guò)以下方式進(jìn)行安裝
- 在 https://opengapps.org/ 根據(jù)系統(tǒng)版本衫仑、芯片類型選擇需要的 Gapps 全家桶,可以選 stock 版本
- 下載后把全家桶 push 到手機(jī) sdcard(不用解壓)
- 在 https://twrp.me/devices/ 搜索你的設(shè)備堕花,如: https://twrp.me/google/googlepixel2.html
- 下載 twrp.img 后根據(jù)截圖中的命令文狱,把 twrp 加載到手機(jī), 選擇 install 刷入 twrp.zip (這是一個(gè) recovery 版本)缘挽,重啟后瞄崇,通過(guò) adb reboot recovery 進(jìn)入 twrp 的recovery 系統(tǒng)
- 在手機(jī)上選擇 install, 選擇步驟2中 push 到手機(jī) sdcard 的全家桶壕曼,安裝結(jié)束后選擇擦除 dalvik cache 和 cache苏研,重啟即可