能否为 Pixel7A 编译 6.1 版本的 Android 内核,以及目前 AndroidKernel 仓库的相关问题

111 天前
 SmaliYu

前两天编译了 Pixel7A 最新的的 AOSP(AP2A.240705),里面 prebuild 预置了 5.10.198 版本的 Android Kernel 。我想试试 6.1 版本的内核,但是文档里只提供了 android-gs-lynx-5.10-android14-qpr3 分支源码,编译出来的也是 5.10.198 版本。

看到最近的 Android 大版本中使用了 GKI 镜像,这个 GKI 在整体开发流程上不是特别清楚。我个人的理解是,以后的纯 kernel 代码基本就交给 Google 这边维护了,芯片厂和代工厂通过 GKI 抽象出来的 KMI 进行适配和开发,这些和 kernel 解耦的代码,放到 vendor_boot.img 。不知道以上对 GKI 的理解有没有问题。

不过我还是想提出一些我的问题:

  1. 我应该如何让我的 Pixel7A 运行上 6.1 的内核?
  2. 现在 google 内核仓库里有很多 common-开头的分支,比如 common-android14-6.1 ,这种 common 分支是用来做什么的,我用 Kleaf 构建完,得到了 boot.img ,但是 fastboot boot boot.img 启动不了,这是为什么?
  3. 按照 google 预置的和开源出来的 Pixel7A ( 5.10.198 )版本的,里面有两份 kernel 源码,一份放在 aosp 文件夹,一份放在 private/gs-google 目录下,为什么要搞两份代码?这两份代码均可以编译,而且确实是相互独立的两份(已经打 log 测试)
BUILD_CONFIG=aosp/build.config.gki.aarch64 build/build.sh

BUILD_CONFIG=private/gs-google/build.config.gki.aarch64 build/build.sh
677 次点击
所在节点    问与答
5 条回复
pagxir
110 天前
你的有适配 6.1 的设备树。不同版本的 kernel 设备树不尽相同,这个是 arm 不如 x86 的地方
SmaliYu
110 天前
@pagxir 能不能详细说下关于 Pixel7a 设备树相关的信息,我去看看
FranzKafka95
110 天前
common 分支是基础镜像,是给各个 ODM 厂商适配时的 base ,一般 ODM 厂商/Vendor 厂商会基于这个 base 去适配设备,如果你要更新最新版本的内核,涉及到的绝对不是设备树( DTS/DTB )这一点,很多 Driver 相关的修改可能也会涉及。
SmaliYu
110 天前
@FranzKafka95 就是简单来说,我基本上无法自己为设备更新内核,即使是相对开放的 Pixel7a
FranzKafka95
110 天前
@SmaliYu 如果你能拿到之前的设备树信息,配合改改,驱动也没什么大的变化还是有可能的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1062429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX