GKI(通用内核映像,Generic Kernel Image) 是 Google 从 Android 11 开始推行的一项重大的内核架构改革。
简单来说,它的核心目标是解决 Android 内核的碎片化问题,并让内核更新变得更像 iOS 那样由 Google 统一维护,而不是依赖手机厂商(OEM/ODM)去适配。
为了让你彻底理解,我将从"它解决了什么问题"、"它是如何工作的"以及"它的版本演进"三个维度来详细拆解。
1. 为什么要搞 GKI?(背景:碎片化)
在 GKI 出现之前,Android 内核是高度碎片化的:
- 各自为政: Google 提供内核基础(AOSP),但高通、联发科(MTK)、三星等芯片厂商需要添加自己的驱动,手机厂商(如小米、三星)又需要添加自己的板级支持包(BSP)。
- 后果: 这导致 Google 无法直接给旧手机推送内核级更新(如安全补丁、新功能),必须等芯片厂商和手机厂商层层适配。这不仅慢,还导致很多旧手机无法获得长期维护。
2. GKI 的核心原理:分而治之
GKI 的核心思想是**"分层"**。它将内核拆分为两个部分,通过一个稳定的接口(KMI)将它们连接起来:
🧱 A. 通用内核(Google 维护)
- 内容: 包含 Google 维护的上游 Linux 内核代码(ACK)、Android 通用代码、以及 Google 提供的通用内核模块(GKI Modules)。
- 职责: 负责核心的系统功能、安全性、以及提供一个稳定的接口。
- 更新方式: Google 可以直接通过 OTA 或 Play 服务更新这部分,无需手机厂商参与。
🔌 B. 供应商模块(芯片/厂商维护)
- 内容: 包含芯片厂商(SoC,如高通、MTK)的驱动程序和板级支持包(BSP)。
- 职责: 负责让内核能驱动具体的硬件(如特定的电源管理芯片、传感器)。
- 更新方式: 这部分由芯片厂商或手机厂商维护,通常固化在 Vendor 分区中。
3. 关键技术概念
在 GKI 的体系中,有几个非常重要的术语,你需要了解:
- KMI(内核模块接口):
- 这是 GKI 的基石。它定义了"通用内核"和"供应商模块"之间的二进制接口。
- 稳定性: 只要 KMI 版本一致,不同版本的内核和模块就可以互相兼容。这允许 Google 更新内核(修复漏洞、提升性能),而不需要厂商重新编译他们的驱动模块。
- 模块化(.ko 文件):
- 在旧内核中,很多功能是直接编译进内核镜像(zImage)的。GKI 强制要求将大部分功能(包括通用功能和供应商功能)编译成独立的
.ko模块文件。 - 好处: 便于独立加载、卸载和更新。
- 在旧内核中,很多功能是直接编译进内核镜像(zImage)的。GKI 强制要求将大部分功能(包括通用功能和供应商功能)编译成独立的
4. GKI 的版本演进
GKI 并不是一蹴而就的,它分为两个主要阶段:
表格
| 特性 | GKI 1.0 | GKI 2.0 |
|---|---|---|
| 引入时间 | Android 11 (Kernel 5.4) | Android 12 (Kernel 5.10) |
| 内核来源 | 基于 Android 通用内核 (ACK) | 基于上游 Linux LTS 内核 |
| 接口标准 | 引入 KMI 概念 | KMI 更加严格和标准化 |
| 兼容性 | 主要是架构上的尝试 | 成为后续所有 Android 版本的标准 |
| 现状 | 逐渐被取代 | 现代 Android 设备(Android 12+)的标配 |
5. 对用户和开发者的影响
- 对普通用户:
- 更安全: Google 可以更快地推送内核级别的安全补丁,无需等待厂商定制。
- 更长的维护周期: 手机可以获得更长时间的系统更新支持。
- 对刷机玩家/开发者:
- Boot 镜像变化: GKI 对 Boot 镜像结构进行了调整。
- 旧版:
boot.img包含内核 + Ramdisk。 - 新版 (Android 13+):
boot.img仅包含内核,Ramdisk 被移到了单独的init_boot.img中。
- 旧版:
- Root 难度: 由于内核统一,Magisk 等工具的修补逻辑发生了变化,通常需要修补
init_boot而不是boot。 - KMI 兼容性: 刷入第三方内核时,必须确保 KMI 版本匹配,否则会导致手机无法开机(黑屏)。
- Boot 镜像变化: GKI 对 Boot 镜像结构进行了调整。
📌 总结
GKI(通用内核映像) 就是 Google 为了集权而推出的标准。
它把内核分为"Google 管的通用部分"和"厂商管的硬件驱动部分"。通过这种解耦,Google 成功将 Android 内核从"碎片化"的泥潭中拉了出来,实现了类似 iOS 的统一内核维护模式,让 Android 系统更安全、更新更及时。