内核全景:GKI、模块与驱动边界
2026/8/9大约 2 分钟内核Android 14内核GKI驱动
内核全景:GKI、模块与驱动边界
Android 14 设备通常由 GKI 内核与 vendor 模块共同组成,二者通过稳定 KMI 协作。内核不仅 承载驱动,还提供调度、内存、Binder IPC 和安全机制,Framework 最终都依赖这些接口。
GKI 与 vendor 模块由 KMI 连接
| 常见误解 | 正确理解 |
|---|---|
| 所有 Android 内核一样 | 有 GKI 内核 + vendor 模块的拆分,版本与配置各异 |
| 内核就是“驱动集合” | 内核提供调度、内存、IPC、安全等基础能力,驱动只是部分 |
| 换内核不改驱动 | GKI 下驱动以模块存在,需与内核 KMI 兼容 |
核心结论
- GKI 把内核与 vendor 模块分离,KMI 保证兼容。
- 启动镜像(boot/vendor_boot)包含内核、设备树与 ramdisk。
- 内核负责调度、内存、IPC、文件系统与安全基础。
- Binder 驱动是 Android 专属的内核组件。
- 排查内核问题先分清“GKI 内核层”还是“vendor 模块层”。
内核组成主链
逐步解释:
- 镜像:boot/vendor_boot 承载内核与模块。
- GKI:统一内核核心。
- 模块:厂商驱动独立提供。
- 设备树:描述硬件。
- 能力:调度、内存、IPC、安全由内核提供。
常用在哪些地方
按排查频率排列:
- 内核版本与 GKI 兼容:模块加载失败。
- 启动失败:内核 panic、设备树问题。
- 性能:调度与内存。
- 安全:SELinux、seccomp、dm-verity。
- Binder 异常:驱动层问题。
验证与排障
环境:开发设备或模拟器;部分命令需要 root。
adb shell uname -a
adb shell cat /proc/version
adb shell getprop ro.build.version.base_os
adb shell su 0 dmesg | head -50先确认内核版本与 GKI 信息,再看 dmesg。模块/驱动问题先分清 GKI 层与 vendor 层。
源码入口
| 文件 | 关键位置 | 作用 |
|---|---|---|
| GKI 内核 | kernel/ | 内核核心 |
| vendor 模块 | 厂商树 | 驱动 |
| 设备树 | DTB | 硬件描述 |
drivers/android/ | Binder 驱动 | IPC |
公共路径:内核源码树与 drivers/android/。行号以 r75 检索为准。
从 Android 专用 IPC 驱动开始,见 Binder 驱动深读。