pixel6 aosp14编译 升级内核

pixel6 aosp14编译 升级内核
BritneyAOSP14编译
环境配置
Repo
1 | curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo |
Git
1 | sudo apt install git |
Platform tools
建议使用比较新的,旧的可能不支持一些命令
Repo拉取aosp源码
1 | repo init -u http://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-14.0.0_r34 |
拉取需要的耗时很久,直到出现repo sync has finished successfully代表成功拉取
解压驱动
先在source.android.com中找到你拉取aosp版本对应的build id
我拉取的是android-14.0.0_r34,在Nexus 和 Pixel 设备的驱动程序二进制文件 | Google Play services | Google for Developers中找到对应build id的驱动文件
解压,复制其中的sh文件到aosp源码根目录下,执行
读完License后输入I ACCEPT回车
编译AOSP
设置环境
在源码根目录下执行
1 | source build/envsetup.sh |
选择构建目标
与之前的版本不同,aosp14使用lunch选择构建目标的规则变成了
1 | lunch aosp_$device-$buildID-$version |
device为设备代号
buildID取build id的前4位
version可取user userdebug eng
对应我编译的版本即是
1 | lunch aosp_oriole-ap1a-userdebug |
开始编译
aosp编译对内存资源的消耗巨大!
我在编译时最多消耗了约40G的内存,并且编译时建议使用纯命令行模式或者使用ssh连接,图形界面在低内存时极易崩溃
如果内存不足,请增加swap的大小以保证编译的正常进行
1 | m |
编译时间取决于编译设备的性能,虚拟机可能要跑非常久,建议睡觉的时候跑
刷入编译好的aosp
编译好的文件在out/target/product/oriole目录下
1 | adb reboot bootloader |
如果不识别设备请更换数据线为usb3.0
将内核升级到6.1
前提
必须是特定的build,这里的build只显示支持的最新版本
构建 Pixel 内核 | Android Open Source Project
上面编译的AP1A.240505.004正好是一个特定的版本
Repo拉取kernel源码
1 | repo init --depth=1 --u https://android.googlesource.com/kernel/manifest -b android14-gs-pixel-6.1 |
更新供应商 ramdisk
这个直接参照官网操作即可
构建 Pixel 内核 | Android Open Source Project
pixel6 的路径是 prebuilts/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img
编译内核
对于5.15及以上的内核的build.sh
脚本已替换为 Kleaf 的新内核构建系统
1 | tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist |
刷入内核
编译后的文件在out/slider/dist目录下
1 | adb reboot bootloader |
加入SUKISU
参照github.com的workflow
注意!目前SUKISU的kernel_patch在pixel6的6.1内核无法运行(至少对我来说是这样),可以编译完成后先fastboot boot一下测试是否可用
重新编译刷入即可
如果要使用内核模块,则需要重新编译gki内核刷入后再提取boot使用apatch修补(这里使用SukiSU的kernel_patch虽然可以开机,但是在一些情况下会导致kernel panic直接死机)
1 | repo init --depth=1 --u https://android.googlesource.com/kernel/manifest -b common-android14-6.1-2025-06 |
参考文档:
Pixel 6Pro AOSP源码在Docker内编译全过程
构建 Pixel 内核 | Android Open Source Project
GitHub - MiRinFork/GKI_SukiSU_SUSFS: 使用 SukiSU 和 SUSFS 的 GKI 内核
Guide compile kernel Raviole from sources ! [ 5.10 & 6.1 & mainline ]