当前位置:   article > 正文

Android 内核概览_安卓内核

安卓内核

https://source.android.com/docs/core/architecture/kernel?hl=zh-cn

Android 内核基于上游 Linux 长期支持 (LTS) 内核。在 Google,LTS 内核会与 Android 专用补丁结合,形成所谓的“Android 通用内核 (ACK)”。

较新的 ACK(版本 5.4 及更高版本)也称为 GKI 内核,因为它们支持将与硬件无关的通用核心内核代码和与硬件无关的 GKI 模块分离开来。 GKI 内核会与包含系统芯片 (SoC) 和板级代码的硬件专用供应商模块进行交互。GKI 内核与供应商模块之间的交互通过内核模块接口 (KMI) 来实现,该接口由标识供应商模块所需的函数和全局数据的符号列表组成。图 1 显示了 GKI 内核和供应商模块架构: 

图 1. GKI 内核和供应商模块架构

注意:GKI 内核、GKI 模块和供应商模块架构是我们多年来一直致力于开展的通用内核映像 (GKI) 项目的成果。如需了解此项目及其发展阶段,请参阅通用内核映像 (GKI) 项目

内核术语表

本部分包含整个内核文档中使用的术语。

内核类型

Android 通用内核 (ACK)

ACK 是长期支持 (LTS) 内核的下游,包含与 Android 社区相关但尚未合并到 Linux Mainline 或 LTS 内核的补丁。较新的 ACK(版本 5.4 及更高版本)也称为 GKI 内核,因为它们支持将与硬件无关的通用内核代码和与硬件无关的 GKI 模块分离开来。

Android 开源项目 (AOSP) 内核

请参阅 Android 通用内核

功能内核

确保实现平台版本功能的内核。例如,在 Android 12 中,两个功能内核为 android12-5.4 和 android12-5.10。Android 12 功能无法向后移植到 4.19 内核,功能集与在发布时搭载 R 4.19 并升级到 S 的设备类似。

通用核心内核

在所有设备上通用的 GKI 内核部分。

通用内核映像 (GKI) 内核

任何较新的(5.4 及更高版本)ACK 内核(目前仅限 aarch64)。此内核包含两个部分:代码在所有设备上通用的 GKI 核心内核,以及由 Google 开发的可在设备上(如适用)动态加载的 GKI 内核模块。

内核模块接口 (KMI) 内核

请参阅 GKI 内核

启动内核

对于启动指定 Android 平台版本的设备有效的内核。例如,在 Android 12 中,有效的启动内核为 4.19、5.4 和 5.10。

长期支持 (LTS) 内核

受支持 2 到 6 年的 Linux 内核。LTS 内核每年发布一次,是 Google 每个 ACK 的基础。

分支类型

ACK KMI 内核分支

构建 GKI 内核的分支。例如,android12-5.10 和 android13-5.15。

Android-mainline

Android 功能的主要开发分支。当上游声明新的 LTS 内核时,相应的新 GKI 内核就会从 android-mainline 分支出来。

Linux Mainline

上游 Linux 内核(包括 LTS 内核)的主要开发分支。

其他术语

经过认证的启动映像

以二进制文件形式 (boot.img) 分发并刷写到设备上的内核。此映像经过认证,因为它包含嵌入式证书,因此 Google 可以验证确认设备搭载的内核经过 Google 认证。

可动态加载的内核模块 (DLKM)

可以在设备启动过程中根据设备需求动态加载的模块。GKI 和供应商模块都是 DLKM。DLKM 以 .ko 形式发布,可以是驱动程序,也可以提供其他内核功能。

GKI 项目

一种 Google 项目,通过将通用核心内核功能从特定于供应商的 SoC 和板级支持分离为可加载模块,解决了内核碎片化问题。

通用内核映像 (GKI)

经过 Google 认证的启动映像,包含基于 ACK 源代码树构建的 GKI 内核,适合刷写到 Android 设备的启动分区。

KMI

GKI 内核与供应商模块之间的接口,使供应商模块能够独立于 GKI 内核进行更新。此接口包括已根据合作伙伴符号列表标识为供应商/OEM 依赖项的内核函数和全局数据。

GKI 内核模块

由 Google 构建的动态可加载模块,可在适用时在设备上动态加载。这些模块使用 GKI 内核构建,并与 GKI 一起作为 system_dlkm 映像提供。GKI 内核模块由 Google 使用内核构建时密钥对进行签名,并且仅与其构建时采用的通用核心内核兼容。GKI 内核模块是一种 DLKM

供应商模块

由合作伙伴开发的硬件专用模块,包含 SoC 和设备专用功能。供应商模块是一种可动态加载的内核模块。

后续操作

  • 如果您是 Android 内核开发新手,不妨先阅读以下内容:
  • 如果您是 GKI 内核开发新手,请先阅读 GKI 开发
  • 如果您使用的是 4.19 或更早版本的内核,并且要查找相关文档,请参阅旧版内核 (<=4.19) 概览部分。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/311743
推荐阅读
相关标签
  

闽ICP备14008679号