【android Framework 探究】pixel 5 内核编译

相关文章:
【android Framework 探究】android 13 aosp编译全记录

【android Framework 探究】android 13 aosp 全记录 - 烧录

一,环境

主机 -> Ubuntu 18.04.6 LTS

内存 -> 16GB

手机 -> pixel 5 代号redfin。kernel代号redbull

二,代码拉取

这里需要注意:

  • 之前文章下载的aosp源代码是不包含kernel部分的,只有打包好的二进制镜像,重新编译需要单独拉取。
  • kernel代码不用git clone,那样会缺少预编译文件和必要的编译工具,使用repo拉取
  • 代码优先从google源拉取,因为我开始从中科大源拉取的代码始终编译不过去,提示各种错误(一直各种怀疑环境有问题),困扰了很久,解决无果,最后搭梯子从google获取基本顺利的编译成功。

拉取代码

先搞清楚pixel 5 kernel的分支,参考官方文档: 构建 Pixel 内核,虽然官方支持的piex 5,最新支持android 14,它显示的分支是:

设备 AOSP 树中的二进制文件路径 仓库分支
Pixel 5 (redfin) device/google/redbull-kernel android-msm-redbull-4.19-android14-qpr3

但是我上次编译的版本是android 13,这样就能和我的源码匹配上,所以我找下对应的分支名,从这里查看:kernel manifest

我要的分支是:android-msm-redbull-4.19-android13-qpr2,所以我的指令是:

repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-redbull-4.19-android13-qpr2

repo sync -j4

网络不好可能需要多次执行sync,最后下载成功!

编译

编译之前,首先看下手机kernerl的信息,把代码切换到对应的tag点:连接手机,执行adb shell cat /proc/version

Linux version 4.19.239-g248fa42a73b2-ab9062766 (build-user@build-host) (Android (7284624, based on r416183b) clang version 12.0.5 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), LLD 12.0.5 (/buildbot/src/android/llvm-toolchain/out/llvm-project/lld c935d99d7cf2016289302412d708641d52d2f7ee)) #1 SMP PREEMPT Wed Sep 14 05:22:28 UTC 2022

对应的commit就是248fa42a73b2

复制代码
cd  private/msm-google
git checkout 248fa42a73b2

进入目录check下,其中build_redbull.sh是编译入口,各种预编译已经在这个文件提前引用好了。

复制代码
├── build
├── build.config -> private/msm-google/build.config.redbull.no-cfi
├── build_redbull-gki.sh -> private/msm-google/build_redbull-gki.sh
├── build_redbull.sh -> private/msm-google/build_redbull.sh
├── build_sm7250.sh -> private/msm-google/build_sm7250.sh
├── build_sm8250.sh -> private/msm-google/build_sm8250.sh
├── out
├── prebuilts
├── prebuilts-master
├── private
└── tools

执行

./build_redbull.sh

成功会输出:

复制代码
Files copied to /aosp-kernel-redbull/out/android-msm-pixel-4.19/dist
aosp-kernel-redbull/prebuilts/boot-artifacts/ramdisks/vendor_ramdisk-barbet.img is LZ4 compressed
boot image created at aosp-kernel-redbull/out/android-msm-pixel-4.19/dist/boot.img
Signing the boot.img...
vendor boot image created at aosp-kernel-redbull/out/android-msm-pixel-4.19/dist/vendor_boot.img

遇到的问题:

soong_zip: command not found

解决方法:找到aosp里面的soong_zip路径,设置环境变量

export PATH=$PATH:/xxx/aosp/prebuilts/build-tools/linux-x86/bin

烧录

烧录之前提前准备好恢复手段,一旦重启失败,及时恢复。两种方法:

1,提前下载原生系统刷机包

2,如果你已经下载并编译过aosp代码,可以在子目录out/target/product/redfin找到

怎么刷这篇文章都有讲:【android Framework 探究】android 13 aosp 全记录 - 烧录

现在开始烧录

  • cd out/android-msm-pixel-4.19/dist
  • fastboot flash boot boot.img
  • fastboot flash vendor_boot vendor_boot.img
  • fastboot reboot

重启成功,至此可以自己在内核代码增加日志进行探索了!

相关推荐
pengyu20 小时前
【Kotlin 协程修仙录 · 筑基境 · 后阶】 | 调度器的艺术:Dispatchers 四大护法与 withContext 性能密码
android·kotlin
uElY ITER20 小时前
MySQL 中如何进行 SQL 调优
android·sql·mysql
xxjj998a20 小时前
Laravel3.x:奠定现代PHP框架的重要里程碑
android·开发语言·php
Yang-Never21 小时前
Git -> Git Worktree 工作树
android·开发语言·git·android studio
xingpanvip21 小时前
星盘接口开发文档:日运语料接口指南
android·开发语言·前端·css·php·lua
计算机安禾21 小时前
【Linux从入门到精通】第42篇:深入理解Linux内存管理
android·linux·运维
XD74297163621 小时前
科技早报晚报|2026年5月1日:本地优先文档、安卓离线 IDE 与双击即用密码库,今天最值得跟进的 3 个机会
android·ide·科技·科技新闻·开发者工具·本地优先
计算机安禾1 天前
【Linux从入门到精通】第40篇:LAMP/LNMP环境一键部署脚本实战
android·linux·adb
speop1 天前
Reasoning kingdom chapter13
android·java·python
xxjj998a1 天前
Laravel9.x新特性全面解析
android