LineageOS Google Pixel3(blueline) Android10系統(tǒng)源碼的下載、環(huán)境搭建、編譯方法
LineageOS的Android系統(tǒng)版本
lineage-17.1 //Android10
lineage-18.1 //Android11
lineage-19.1 //Android12
https://wiki.lineageos.org/devices/blueline/build
sudo apt-get install openjdk-8-jdk sudo apt-get install -y python-dev python-setuptools python-pip python-smbus sudo apt-get install python3sudo apt-get install python3-pip sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagicklib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-devlibsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsyncschedtool squashfs-tools xsltproc zip zlib1g-dev
pip或pip3的升級(jí)
pip install --upgrade pip #python2的版本命令pip3 install --upgrade pip #python3的版本命令
Pixel3手機(jī)提取vendor的方法
https://wiki.lineageos.org/devices/blueline/buildhttps://lineageosroms.com/blueline/https://wiki.lineageos.org/extracting_blobs_from_zips
protobuf版本和python不匹配



TypeError:__init__()gotanunexpectedkeywordargument'serialized_options'
sudo pip install -U protobuf或sudo pip3 uninstall protobufsudo pip3 install -U protobuf

切換Python3的版本到Python3.7,參考如下文章
Ubuntu安裝配置切換Python3版本的解決方法
Ubuntu環(huán)境Python3版本的更新升級(jí)使用方法
https://wiki.lineageos.org/extracting_blobs_from_zips

python3 /scripts/update-payload-extractor/extract.py payload.bin --output_dir /home/payload或cd /scripts/update-payload-extractor/python3 extract.py payload.bin --output_dir /home/payload


sudo -H pip uninstall protobufsudo -H pip uninstall googlesudo -H pip install -U googlesudo -H pip install -U protobuf或sudo -H pip3 uninstall protobufsudo -H pip3 uninstall googlesudo -H pip3 install -U googlesudo-Hpip3install-Uprotobuf
LineageOS Downloads(Pixel3 Android10系統(tǒng)鏡像下載地址)
https://download.lineageos.org/https://download.lineageos.org/bluelinehttps://lineageosroms.com/https://lineageosroms.com/blueline/

從LineageOS zip中提取Pixel3手機(jī)Android系統(tǒng)版本匹配的vendor(方法1)
https://wiki.lineageos.org/extracting_blobs_from_zips




連接上Google Pixel3手機(jī),其中手機(jī)中的Android系統(tǒng)版本號(hào)需要跟即將編譯的Android系統(tǒng)版本號(hào)匹配,然后執(zhí)行以下命令進(jìn)行提取vendor(方法2)
cd ~/android/lineage/device/google/blueline ./extract cd ~/android/lineage/vendor/google
備注:提取vendor的方法采用以上方法之一即可
如果遇到編譯問題,可以參考,如下文章
Ubuntu虛擬機(jī)環(huán)境搭建Android系統(tǒng)源碼編譯環(huán)境及問題解決方法
Ubuntu18.04/20.04虛擬機(jī)編譯Android4/5/6/7/8/9/10/11系統(tǒng)源碼的問題解決
Ubuntu20.04系統(tǒng)設(shè)置全局的環(huán)境變量
sudo vim /etc/profile或sudovim~/.bashrc
把以下內(nèi)容添加到/etc/profile或~/.bashrc中
exportUSE_CCACHE=1export CCACHE_EXEC=/usr/bin/ccacheccache -M 50Gccache -o compression=true
source后設(shè)置才可以生效
source /etc/profile或source ~/.bashrc
編譯Android10系統(tǒng)源碼(Google Pixel3手機(jī))
source build/envsetup.shbreakfast bluelinecrootbrunch blueline





have enough space free (691224576 requested, 3392774144 used out of 4069523456)Not enough space on device for partition product with size 691224576


du -h --max-depth=1 ./







以上報(bào)錯(cuò)的主要原因是空間不足(參考以下方法解決)
https://stackoverflow.com/questions/70482311/how-can-i-increase-system-ext-partition-in-aosp ExternalError: Failed to run command '['lpmake', '--metadata-size', '65536', '--super-name', 'system', '--metadata-slots', '2', '--auto-slot-suffixing', '--device', 'system:2952790016', '--device', 'vendor:805306368', '--device', 'product:314572800', '--group', 'google_dynamic_partitions:4069523456', '--partition', 'system:readonly:2344202240:google_dynamic_partitions', '--image', 'system=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/system.img', '--partition', 'vendor:readonly:452227072:google_dynamic_partitions', '--image', 'vendor=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/vendor.img', '--partition', 'product:readonly:1016426496:google_dynamic_partitions', '--image', 'product=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/product.img', '--partition', 'system_ext:readonly:266698752:google_dynamic_partitions', '--image', 'system_ext=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/system_ext.img', '--sparse', '--output', '/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/OTA']' (exit code 70):lpmake I 12-25 19:38:11 10456 10456 builder.cpp:1031] [liblp]Partition system will resize from 0 bytes to 2344202240 byteslpmake I 12-25 19:38:11 10456 10456 builder.cpp:1031] [liblp]Partition vendor will resize from 0 bytes to 452227072 byteslpmake I 12-25 19:38:11 10456 10456 builder.cpp:1031] [liblp]Partition product will resize from 0 bytes to 1016426496 byteslpmake E 12-25 19:38:11 10456 10456 builder.cpp:620] [liblp]Partition system_ext is part of group google_dynamic_partitions which does not have enough space free (266698752 requested, 3812855808 used out of 4069523456)Not enough space on device for partition system_ext with size 266698752
BoardConfigLineage.mkhttps://github.com/LineageOS/android_device_google_crosshatch/commit/155109c657c804ca14e4cbb78ddc2caf5bfeda46


Pixel3手機(jī)Android10系統(tǒng)源碼編譯成功


Pixel3手機(jī) Android10系統(tǒng)zip鏡像

在out目錄找到Pixel3手機(jī)Android10系統(tǒng)編譯成功的zip鏡像,然后對(duì)Pixel3手機(jī)進(jìn)行刷機(jī)

Android10系統(tǒng)zip鏡像的刷機(jī)方法,參考如下文章
玩轉(zhuǎn)Android10(二)刷機(jī)操作
Android系統(tǒng)鏡像刷機(jī)方法(一)
Android系統(tǒng)鏡像刷機(jī)方法(二)
Android系統(tǒng)鏡像刷機(jī)方法(三)
免Magisk使用adb命令安裝Edxposed
編譯Windows平臺(tái)adb和fastboot工具
樹莓派4B/2W,燒寫SD卡刷入Android 系統(tǒng)
玩轉(zhuǎn)Android10(二)刷機(jī)操作之fastboot刷機(jī)演示
玩轉(zhuǎn)Android10(二)刷機(jī)操作之Recovery刷機(jī)演示
谷歌Pixel 2手機(jī)刷入官方安卓10工廠鏡像圖文詳細(xì)教程
支持Pixel3手機(jī)刷機(jī)的twrp工具下載地址
https://twrp.me/google/googlepixel3.htmlhttps://eu.dl.twrp.me/blueline/
解鎖Google Pixel3 Bootloader
備注:解鎖bootloader將擦除設(shè)備中的所有數(shù)據(jù),包括保存在設(shè)備內(nèi)部存儲(chǔ)器上的所有媒體,如圖片,視頻,音樂,文檔等。為了避免不必要的麻煩和損失,請(qǐng)務(wù)必先將所有重要文件備份到PC或云存儲(chǔ),然后再執(zhí)行此操作
(1).打開手機(jī)設(shè)置-關(guān)于手機(jī)-點(diǎn)擊版本號(hào)7次,以打開“開發(fā)者選項(xiàng)”。
(2).返回到設(shè)置,打開 開發(fā)者選項(xiàng)-打開USB 調(diào)試,打開“OEM解鎖”。出于安全考慮,這可能會(huì)要求你輸入鎖屏PIN/密碼。
(3).向下滾動(dòng),直到看到“USB調(diào)試”選項(xiàng)并啟用。





adb devicesadb reboot bootloaderfastboot devicesfastboot flashing unlockfastbootreboot
進(jìn)入recovery模式后就顯示no command
adb reboot recovery
問題原因:
recovery mode是官方的Recovery,沒有刷入永久Twrp的Recovery
解決方法:
當(dāng)未安裝twrp,直接進(jìn)入recovery會(huì)出現(xiàn)的界面,需要長(zhǎng)按電源鍵強(qiáng)制關(guān)機(jī),如圖所示:




支持google Pixel3手機(jī)的twrp工具安裝成功
fastboot boot twrp-3.6.0_11-0-blueline.img




LineageOS官方鏡像
https://lineageosroms.com/blueline/

把云服務(wù)器上編譯成功的Android10 Pixel3手機(jī)的zip鏡像拷貝到sdcard,然后使用twrp工具進(jìn)行刷機(jī)
adbpushpixel3_blueline.zip /sdcard/





Pixel3手機(jī)刷Android10系統(tǒng)刷機(jī)成功

google系列機(jī)型,如果無(wú)法連接WIFI,可以參考如下文章
google手機(jī)連接WIFI后總會(huì)提示"無(wú)法連接互聯(lián)網(wǎng)"的解決方法

特別注意:
其他Google機(jī)型或其他手機(jī)廠商的機(jī)型,都可以參考以上方法進(jìn)行Android系統(tǒng)各版本源碼的下載、環(huán)境搭建、系統(tǒng)編譯、刷機(jī)等的通用方法
審核編輯:劉清
-
Android系統(tǒng)
+關(guān)注
關(guān)注
0文章
57瀏覽量
14216 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
975瀏覽量
30714 -
python
+關(guān)注
關(guān)注
58文章
4889瀏覽量
90327
原文標(biāo)題:干貨|云服務(wù)器編譯Android10系統(tǒng)源碼或刷機(jī)或聯(lián)網(wǎng)過程遇到的坑(Google Pixel3手機(jī))
文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
云服務(wù)器有什么優(yōu)勢(shì)?怎么選對(duì)云服務(wù)器?
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】使用云服務(wù)器搭建編譯環(huán)境
云服務(wù)器安全嗎?云服務(wù)器有哪些優(yōu)勢(shì)?
RV1126 適配 Debian10(搭建人臉識(shí)別云服務(wù)器)
云服務(wù)器與物理服務(wù)器的區(qū)別是什么?
怎樣去編譯RK3288平臺(tái)上的Android系統(tǒng)源碼呢
在華為彈性云服務(wù)器上遠(yuǎn)程編譯RK3568的相關(guān)資料介紹
云服務(wù)器可以挖礦嗎_云服務(wù)器怎么挖礦
三星Galaxy S10海外部分用戶收到Android10更新
Redmi K20迎來(lái)基于Android10的MIUI更新
諾基亞7.2可升級(jí)Android10系統(tǒng)
云服務(wù)器的用途及優(yōu)勢(shì)介紹
被譽(yù)為輕量云服務(wù)器“鼻祖”的騰訊云,遇到最硬核對(duì)手
基于Android13的AOSP源碼下載及編譯指南
云服務(wù)器編譯Android10系統(tǒng)源碼遇到的坑介紹
評(píng)論