通用内核映像 (GKI) 项目  

您所在的位置:网站首页 安卓系统核心代码怎么看的到内存 通用内核映像 (GKI) 项目  

通用内核映像 (GKI) 项目  

2024-07-16 20:34:51| 来源: 网络整理| 查看: 265

产品内核(也称为设备内核或 OEM 内核)是指您的设备上搭载的内核。在 GKI 之前,产品内核衍生自一系列上游内核变更。图 1 显示了内核补充功能如何生成产品内核(OEM/设备内核):

GKI 之前的产品内核结构

图 1. GKI 之前的产品内核结构。

来自 kernel.org 的 Linux 长期支持 (LTS) 内核已使用 Android 专用补丁进行修改,进而生成了 Android 通用内核 (ACK)。 供应商修改了 ACK,以添加对系统芯片 (SoC) 的支持。供应商还可以添加性能或电源优化。生成的内核称为供应商内核。 最后,原始设备制造商 (OEM) 进一步修改了供应商内核,添加了必要的设备驱动程序和自定义项。生成的内核称为产品内核。

所有这些修改都会导致内核代码中有多达 50% 是树外代码,而非来自上游 Linux 内核或 ACK。在 GKI 之前,几乎所有设备都具有自定义内核,而这导致了内核碎片化问题。

碎片化的代价

内核碎片化会对 Android 社区产生若干负面影响。

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

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

很难合并长期支持的更新

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

不过,由于设备内核中所有的自定义修改,很难仅将 LTS 修复合并到设备内核中。

妨碍 Android 平台进行版本升级

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

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

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

上游内核发布与产品发布之间的这种长时间延迟导致 Android 社区很难将所需的功能和驱动程序馈送到上游内核中。

解决碎片化问题:通用内核映像

通用内核映像 (GKI) 项目通过统一核心内核并将 SoC 和板级支持从核心内核移至可加载的供应商模块中,解决了内核碎片化问题。GKI 还为供应商模块提供稳定的内核模块接口 (KMI),因此模块和内核可以独立进行更新。GKI 内核的一些特性包括:

GKI 内核基于 ACK 源代码构建而成。 GKI 内核是每个架构和每个 LTS 版本的单内核二进制文件以及关联的可加载模块(目前只有适用于 android11-5.4 和 android12-5.4 的 arm64)。 GKI 内核已经过关联 ACK 支持的所有 Android 平台版本的测试。在 GKI 内核版本的生命周期内不会发生功能废弃。 GKI 内核为给定 LTS 中的驱动程序提供了稳定版 KMI。 GKI 内核不包含 SoC 专用代码或板级代码。

如需查看 GKI 架构的映像,请参阅内核概览。

GKI 是一项复杂的更改,将从 Android 11 平台版本中的 v5.4 内核开始,分几个阶段逐步推出。

目前存在两个 GKI 阶段:

GKI 1.0 是在 Android 11 中面向搭载 5.4 内核的设备推出的。GKI 1.0 适用于所有附带 5.4 内核的设备,乃至发布时搭载 Android 12 或 Android 13 的设备。 GKI 2.0 是在 Android 12 中面向搭载 5.10 内核的设备推出的,是附带 5.10 或更高版本内核的所有设备的新标准。 GKI 1.0

在 GKI 1.0 中,发布时搭载内核版本 5.4 的设备必须通过 GKI 测试(Android 11 及更高版本的平台版本)。GKI 1.0 的目标包括:

使用 GKI 内核替换产品内核时,避免供应商测试套件 (VTS) 或兼容性测试套件 (CTS) 发生性能下降问题。 减少合作伙伴为了使 AOSP 通用内核保持最新状态而进行的工作。 对于升级到新 Android 版本和发布时搭载新 Android 版本的设备,在内核中加入核心 Android 变更。 不破坏 Android 用户空间。 将硬件专用组件作为可加载模块从核心内核中分离出来。 注意:对于 GKI 1.0,defconfig 文件不包含 GKI 模块。内核映像包含支持内核中框架的配置,即使这些配置可能已作为模块提供也是如此。

如需查看 GKI 1.0 文档,请参阅 GKI 1.0 部分。

GKI 2.0

在 GKI 2.0 中,发布时搭载内核版本 5.10 或更高版本的设备必须附带 GKI 内核(从 Android 12 开始)。已签名的启动映像现已可用,并通过 LTS 和重大 bug 修复定期对其进行更新。由于 KMI 的二进制文件稳定性保持不变,因此您无需更改供应商映像即可安装这些启动映像。GKI 2.0 的目标包括:

在使用 GKI 内核替换产品内核时,不会引入明显的性能或能效降低问题。 使合作伙伴无需供应商参与即可提供内核安全修复和 bug 修复。 降低更新设备主要内核版本(例如,从 v5.10 更新为 2021 LTS 内核)的成本。 通过按照清晰的升级过程更新内核版本,只为每个架构维护一个 GKI 内核二进制文件。 注意:在 GKI 2.0 中,defconfig 文件包含 GKI 模块,因为部分设备上不需要某些框架(因此这些框架应被视为可选的)。

GKI 2.0 代表 Android 内核的最新状态。GKI 1.0 和旧版内核 (



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭