【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

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

相关推荐
千里马学框架17 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台17 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone17 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc18 小时前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo20 小时前
Kotlin 协程中的 Job 结构化并发与取消
android
sun00770020 小时前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼21 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone1 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen1 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone1 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui