Pixel6a 编译刷机Android14原生系统

408 阅读2分钟

一 下载android-14.0.0_r15源码

VMware安装Ubuntu22.04系统

配置系统环境

# 安装python3
sudo apt install python3
python3 --version
# 安装jdk17
sudo apt install openjdk-17-jdk
java -version
# 更新源
sudo vim /etc/apt/sources.list

更新源的信息如下:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

二 下载pixel6a驱动(需要访问外网)

android-14.0.0_r15版本对应驱动下载链接:

googledownloads.cn/dl/android/…

三 执行sh文件

解压下载的文件:google_devices-bluejay-up1a.231105.003.a1-4687686c.tgz, 将目录中的extract-google_devices-bluejay.sh文件拷贝到源码根目录下面;

然后执行命令: bash extract-google_devices-bluejay.sh

按enter键后一直空格键, 直到出现如下描述:

Type "I ACCEPT" if you agree to the terms of the license:

图片.png

输入"I ACCEPT"后 回车, 源码根目录会生成vendor目录 图片.png

图片.png

四 编译系统

source build/envsetup.sh 
export WITH_DEXPREOPT=false 
lunch aosp_bluejay-userdebug 
make -j4

五 刷机

首先需要解锁设备后才能刷机, 编译完成后在如下目录生成刷机img文件

图片.png

配置ANDROID_PRODUCT_OUT, 即上面生成的img目录

export ANDROID_PRODUCT_OUT=/data/android-14.0.0_r15/out/target/product/bluejay 
echo $ANDROID_PRODUCT_OUT

cd到img目录进行刷机

# 重启到fastboot模式 
adb reboot bootloader 
# 刷入ROM, 注意切到out/target/product/bluejay目录下
fastboot flashall -w

六 Pixel6机型额外需要做的特殊操作

由于pixel6使用自研芯片,加入防降级机制,防止出现变砖,所以刷机时要将bootloader a/b 两个slot槽刷成相同版本bootloader

# 先刷完机,默认是slot-a,此时bootloader版本为bluejay-1.2-9894665
adb reboot bootloader  
# 进入fastboot模式刷slot-b的bootloader, b刷完后版本为bluejay-1.3-10674934 
fastboot --slot=other flash bootloader bootloader.img fastboot reboot
# 接着再次将a的版本也刷为bluejay-1.3-10674934 
fastboot --slot=a flash bootloader bootloader.img

图片.png

图片.png

图片.png 如下图刷机完成 图片.png

最终启动效果图

图片.png

图片.png