RK3568平台 Android13 GKI架构开发方式

一.GKI简介

GKI:Generic Kernel Image 通用内核映像。
Android13 GMS和EDLA认证的一个难点是google强制要求要支持GKI。GKI通用内核映像,是google为了解决内核碎片化的问题,而设计的通过提供统一核心内核并将SoC和板级驱动从核心内核移至可加载模块中。核心内核为驱动模块提供了稳定的内核模块接口,模块驱动和核心内核可以独立进行更新。内核接口可以通过upstream的方式进行扩展。 Soc和板级厂商在驱动开发时需要使用已经定义的内核接口,如果要新加核心内核接口需要提交给google,这个周期会比较长,所以要提前做好开发准备。


二.什么产品需要使用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 社区很难将所需的功能和驱动程序馈送到上游内核中,因此解决碎片化问题并非易事。

四.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的形式内嵌编译

 待更新。。。。。。

相关推荐

  1. rkAndroid12屏幕永不休眠

    2023-12-29 06:58:05       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 06:58:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 06:58:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 06:58:05       82 阅读
  4. Python语言-面向对象

    2023-12-29 06:58:05       91 阅读

热门阅读

  1. springboot/spring cloud 手动控制事务提交

    2023-12-29 06:58:05       64 阅读
  2. uniapp怎么存储用户登录的所有数据?

    2023-12-29 06:58:05       60 阅读
  3. uniapp:富文本回显

    2023-12-29 06:58:05       62 阅读
  4. TypeScript 的基础语法

    2023-12-29 06:58:05       56 阅读
  5. 【大数据】Centos 7安装教程

    2023-12-29 06:58:05       51 阅读
  6. nodejs中间件

    2023-12-29 06:58:05       47 阅读