一 下载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:
输入"I ACCEPT"后 回车, 源码根目录会生成vendor目录
四 编译系统
source build/envsetup.sh
export WITH_DEXPREOPT=false
lunch aosp_bluejay-userdebug
make -j4
五 刷机
首先需要解锁设备后才能刷机, 编译完成后在如下目录生成刷机img文件
配置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
如下图刷机完成