LineageOS Google Pixel3(blueline) Android10系统源码的下载、环境搭建、编译方法
LineageOS的Android系统版本
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的升级
pip install --upgrade pip #python2的版本命令pip3 install --upgrade pip #python3的版本命令
Pixel3手机提取vendor的方法
https://wiki.lineageos.org/devices/blueline/buildhttps://lineageosroms.com/blueline/https://wiki.lineageos.org/extracting_blobs_from_zips
protobuf版本和python不匹配
TypeError: __init__() got an unexpected keyword argument 'serialized_options'
sudo pip install -U protobuf或sudo pip3 uninstall protobufsudo pip3 install -U protobuf
切换Python3的版本到Python3.7,参考如下文章
Ubuntu安装配置切换Python3版本的解决方法
Ubuntu环境Python3版本的更新升级使用方法
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 -H pip3 install -U protobuf
LineageOS Downloads(Pixel3 Android10系统镜像下载地址)
https://download.lineageos.org/https://download.lineageos.org/bluelinehttps://lineageosroms.com/https://lineageosroms.com/blueline/
从LineageOS zip中提取Pixel3手机Android系统版本匹配的vendor(方法1)
https://wiki.lineageos.org/extracting_blobs_from_zips
连接上Google Pixel3手机,其中手机中的Android系统版本号需要跟即将编译的Android系统版本号匹配,然后执行以下命令进行提取vendor(方法2)
cd ~/android/lineage/device/google/blueline ./extract cd ~/android/lineage/vendor/google
备注:提取vendor的方法采用以上方法之一即可
如果遇到编译问题,可以参考,如下文章
Ubuntu虚拟机环境搭建Android系统源码编译环境及问题解决方法
Ubuntu18.04/20.04虚拟机编译Android4/5/6/7/8/9/10/11系统源码的问题解决
Ubuntu20.04系统设置全局的环境变量
sudo vim /etc/profile或sudo vim ~/.bashrc
把以下内容添加到/etc/profile或~/.bashrc中
export USE_CCACHE=1export CCACHE_EXEC=/usr/bin/ccacheccache -M 50Gccache -o compression=true
source后设置才可以生效
source /etc/profile或source ~/.bashrc
编译Android10系统源码(Google Pixel3手机)
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 ./
以上报错的主要原因是空间不足(参考以下方法解决)
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手机Android10系统源码编译成功
Pixel3手机 Android10系统zip镜像
在out目录找到Pixel3手机Android10系统编译成功的zip镜像,然后对Pixel3手机进行刷机
Android10系统zip镜像的刷机方法,参考如下文章
玩转Android10(二)刷机操作
Android系统镜像刷机方法(一)
Android系统镜像刷机方法(二)
Android系统镜像刷机方法(三)
免Magisk使用adb命令安装Edxposed
编译Windows平台adb和fastboot工具
树莓派4B/2W,烧写SD卡刷入Android 系统
玩转Android10(二)刷机操作之fastboot刷机演示
玩转Android10(二)刷机操作之Recovery刷机演示
谷歌Pixel 2手机刷入官方安卓10工厂镜像图文详细教程
支持Pixel3手机刷机的twrp工具下载地址
https://twrp.me/google/googlepixel3.htmlhttps://eu.dl.twrp.me/blueline/
解锁Google Pixel3 Bootloader
备注:解锁bootloader将擦除设备中的所有数据,包括保存在设备内部存储器上的所有媒体,如图片,视频,音乐,文档等。为了避免不必要的麻烦和损失,请务必先将所有重要文件备份到PC或云存储,然后再执行此操作
(1).打开手机设置-关于手机-点击版本号7次,以打开“开发者选项”。
(2).返回到设置,打开 开发者选项-打开USB 调试,打开“OEM解锁”。出于安全考虑,这可能会要求你输入锁屏PIN/密码。
(3).向下滚动,直到看到“USB调试”选项并启用。
adb devicesadb reboot bootloaderfastboot devicesfastboot flashing unlockfastboot reboot
进入recovery模式后就显示no command
adb reboot recovery
问题原因:
recovery mode是官方的Recovery,没有刷入永久Twrp的Recovery
解决方法:
当未安装twrp,直接进入recovery会出现的界面,需要长按电源键强制关机,如图所示:
支持google Pixel3手机的twrp工具安装成功
fastboot boot twrp-3.6.0_11-0-blueline.img
LineageOS官方镜像
https://lineageosroms.com/blueline/
把云服务器上编译成功的Android10 Pixel3手机的zip镜像拷贝到sdcard,然后使用twrp工具进行刷机
adb push pixel3_blueline.zip /sdcard/
Pixel3手机刷Android10系统刷机成功
google系列机型,如果无法连接WIFI,可以参考如下文章
google手机连接WIFI后总会提示"无法连接互联网"的解决方法
特别注意:
其他Google机型或其他手机厂商的机型,都可以参考以上方法进行Android系统各版本源码的下载、环境搭建、系统编译、刷机等的通用方法
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !