RK3568平台 Android13 GKI架构开发方式_玩转android gki(1)

RK3568平台 Android13 GKI架构开发方式_玩转android gki(1)GKI GenericKerne 通用内核映像

大家好,欢迎来到IT知识分享网。

一.GKI简介

二.什么产品需要使用GKI

使用Android13且需要过GMS认证和EDLA认证的产品。

使用Android12 的RK3588和RK3588S的需要过GMS认证和EDLA认证的产品。

不过GMS认证和EDLA认证的产品不强制要求使用GKI。

三.碎片化的代价

1.安全更新需要耗费大量人力:

Android 安全公告 (ASB)“) 中引用的安全补丁程序必须向后移植到每个设备内核中。但是,由于存在内核碎片化问题,向正常使用的 Android 设备传播安全修复的代价非常之高。

2.很难合并长期支持的更新:

长期支持 (LTS) 版本包含安全修复和其他重大问题修复。事实证明,使用最新的 LTS 版本是提供安全修复的最有效方式。我们发现,ASB 报告的内核安全问题中有 90% 都已在保持最新状态的 Pixel 设备上得到修复。

3.妨碍 Android 平台进行版本升级

由于碎片化问题,很难向正常使用的设备添加需要更改内核的 Android 新功能。Android 框架代码必须假设支持的内核版本多达 5 个,并且没有针对新的平台版本进行任何内核更改(Android 10 支持内核版本 3.18、4.4、4.9、4.14 和 4.19;在某些情况下,这些版本自 2017 年 Android 8 发布以来还未添加新功能)。

4.很难将内核更改贡献回上游 Linux

对内核进行完所有更改后,大多数旗舰设备附带的内核版本已经至少存在 18 个月了。例如,kernel.org 于 2017 年 11 月发布了 4.14 版内核,而首批使用 4.14 版内核的 Android 手机于 2019 年春季才发布。

上游内核发布与产品发布之间的这种长时间延迟导致 Android 社区很难将所需的功能和驱动程序馈送到上游内核中,因此解决碎片化问题并非易事。

RK3568平台 Android13 GKI架构开发方式_玩转android gki(1)

四.GKI和非GKI的差别

通用内核boot.img:

GKI 非GKI
由google定期发布boot.img,代码不能自己修改 由RK提供内核源码编译,可以自由修改

驱动模块:

GKI 非GKI
以KO的形式加载,调用的内核接口必需是google发布的boot.img里面包含的 内嵌在boot中,由RK提供内核源码编译,可以自由修改和添加内核接口

kernel代码:

GKI 非GKI
RK发布的kernel源码仅用于编译驱动模块的KO RK发布的kernel源码用于完整的内核和模块驱动的编译,模块以.o的形式内嵌编译

五.Rockchip GKI编译

uboot需要打开AB配置:

~/a2_Android13_sdk/u-boot$ git diff diff --git a/configs/rk3568_defconfig b/configs/rk3568_defconfig index fbd9820acc..e23e  --- a/configs/rk3588_defconfig +++ b/configs/rk3588_defconfig @@ -207,6 +207,7 @@ CONFIG_RSA_N_SIZE=0x200 CONFIG_RSA_E_SIZE=0x10 CONFIG_RSA_C_SIZE=0x20 CONFIG_SHA512=y CONFIG_LZ4=y CONFIG_LZMA=y CONFIG_SPL_GZIP=y @@ -220,3 +221,4 @@ CONFIG_RK_AVB_LIBAVB_USER=y CONFIG_OPTEE_CLIENT=y CONFIG_OPTEE_V2=y CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y +CONFIG_ANDROID_AB=y 
wlq@sys2_206:~/a0_Android13_gki$ tree mkcombinedroot/res/board/ mkcombinedroot/res/board/ ├── px30-mini-evb-ddr3-v11-avb.load ├── rk3326-863-lp3-v10-rkisp1.load ├── rk3326-evb-lp3-v10-avb.load ├── rk3399-evb-ind-lpddr4-android-avb.load ├── rk3399-evb-ind-lpddr4-v13-android-avb.load ├── rk3562-evb1-lp4x-v10.load ├── rk3562-rk817-tablet-v10.load ├── rk3566-evb2-lp4x-v10.load ├── rk3566-rk817-tablet.load ├── rk3568-evb1-ddr4-v10.load ├── rk3588-evb1-lp4-v10.load ├── rk3588-evb7-lp4-v10.load └── rk3588s-tablet-v10.load 

板级的KO load文件里面放的是板级的驱动模块,如:触摸屏、camera、sensor等芯片平台以为的驱动模块,如:

 最后 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。 深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。 因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。 ![img](https://img-blog.csdnimg.cn/img_convert/be757acb68bcc14a44f09af418.png) ![img](https://img-blog.csdnimg.cn/img_convert/aec2d17d2a42b68bfe726d32df59456e.jpeg) ![img](https://img-blog.csdnimg.cn/img_convert/7f42e3dcc2b5720df31f.png) ![img](https://img-blog.csdnimg.cn/img_convert/11054f351dec30f2a0747c3.png) ![img](https://img-blog.csdnimg.cn/img_convert/e0dd77f3ce03b6f1d8d9620d04b3a65a.png) ![img](https://img-blog.csdnimg.cn/img_convert/48f19c34587b68d81bcfa3cba4f4ba7f.png) ![](https://img-blog.csdnimg.cn/img_convert/150cde8f6715cac4efbedcca10.png) 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化! [如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!](https://bbs.csdn.net/topics/) 由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!! 开发知识点,真正体系化! [如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!](https://bbs.csdn.net/topics/) 由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!! 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122033.html

(0)
上一篇 2025-10-19 20:10
下一篇 2025-10-19 20:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信