当前位置: 首页 > web >正文

【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-kernelandroid-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

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

http://www.xdnf.cn/news/3506.html

相关文章:

  • MCP 探索:微软 Microsoft MarkItDown MCP ,可把 Word、Excel 等转换成 MarkDown 格式
  • GAMES202-高质量实时渲染(Assignment 2)
  • 正则表达式与文本三剑客grep、sed、awk
  • 【无需docker】mac本地部署dify
  • 从文本到向量:揭秘词向量转换的奥秘与实践
  • C++负载均衡远程调用学习之QPS性能测试
  • 溯因推理思维——AI与思维模型【92】
  • AimRT从入门到精通 - 03Channel发布者和订阅者
  • 18. LangChain分布式任务调度:大规模应用的性能优化
  • 【git】获取特定分支和所有分支
  • 【东枫科技】AMD / Xilinx Alveo™ V80计算加速器卡
  • 文章五《卷积神经网络(CNN)与图像处理》
  • Java大师成长计划之第10天:锁与原子操作
  • AimRT从入门到精通 - 04RPC客户端和服务器
  • 沥青路面裂缝的目标检测与图像分类任务
  • 【Hive入门】Hive性能调优:小文件问题与动态分区合并策略详解
  • React pros比较机制
  • 模拟开发授权平台
  • 【嵌入式Linux】基于ARM-Linux的zero2平台的智慧楼宇管理系统项目
  • 中小企业MES系统数据库设计
  • Spring MVC @RequestHeader 注解怎么用?
  • VMware提供的三种网络连接模式
  • Android WebView加载h5打开麦克风与摄像头的权限问题
  • Haskell Drracket OCaml Prolog 逻辑式编程函数式编程代写代做
  • 从 Eclipse Papyrus / XText 转向.NET —— SCADE MBD技术的演化
  • aab转apk
  • DeepSeek玄学指令大全
  • 【电脑维修】MERCURY水星无线网卡导致 Windows 网络适配器无法连接的一种情况
  • T575729 正经数组
  • IDA pro接入千问大模型