Android 核心基於上游Linux 長期支援 (LTS) 核心。在 Google,LTS 核心與 Android 特定補丁結合,形成所謂的Android 通用核心 (ACK) 。
較新的 ACK(版本 5.4 及更高版本)也稱為GKI 核心。 GKI 核心支援將與硬體無關的通用核心核心程式碼和GKI 模組與特定於硬體的供應商模組分開。
GKI 核心與包含系統單晶片 (SoC) 和主機板特定程式碼的特定硬體的供應商模組進行互動。 GKI 核心和供應商模組之間的交互由內核模組介面 (KMI)實現,該介面由標識供應商模組所需的功能和全域資料的符號列表組成。圖 1 顯示了 GKI 核心和供應商模組架構:

內核術語表
本節包含整個核心文件中使用的術語。
內核類型
- Android 通用核心 (ACK)
- LTS 核心下游的內核,包含 Android 社群感興趣的補丁,但尚未合併到 Linux 主線或長期支援 (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 主線
- Android 功能的主要開發分支。當上游聲明新的LTS 核心時,對應的新GKI 核心將從 android-mainline 分支出來。
- Linux 主線
- 上游 Linux 核心(包括 LTS 核心)的主要開發分支。
其他條款
- 經過認證的啟動映像
- 核心以二進位形式 (
boot.img
) 交付並刷新到裝置上。該映像經過認證,因為它包含嵌入式證書,因此 Google 可以驗證該裝置是否配備了經過 Google 認證的核心。 - 動態可載入核心模組 (DLKM)
- 可以根據設備的需要在設備啟動期間動態載入的模組。 GKI 和供應商模組都是 DLKM 類型。 DLKM 以
.ko
形式發布,可以是驅動程序,也可以提供其他核心功能。 - GKI項目
- Google 專案透過將通用核心核心功能與供應商特定的 SoC 和主機板支援分離為可載入模組來解決核心碎片問題。
- 通用核心映像 (GKI)
- 經 Google 認證的啟動映像,包含從ACK來源樹建置的GKI 內核,適合閃存到 Android 裝置的啟動分割區。
- 科米
- GKI 核心和供應商模組之間的接口,允許供應商模組獨立於 GKI 核心進行更新。此介面由核心函數和全域資料組成,這些函數和全域資料已使用每個合作夥伴的符號列表識別為供應商/OEM 依賴項。
- GKI模組
- 由 Google 建構的核心模組,可以在適用的情況下動態載入到裝置上。這些模組作為GKI 內核的工件構建,並作為
system_dlkm_staging_archive.tar.gz
存檔與 GKI 一起交付。 GKI 模組由 Google 使用核心建置時金鑰對進行簽名,並且僅與建置它們的 GKI 核心相容。 - 供應商模組
- 由合作夥伴開發的特定硬體的模組,包含 SoC 和特定於設備的功能。供應商模組是一種可動態載入的核心模組。
下一步是什麼?
- 如果您是 Android 核心開發新手,您可能需要從閱讀以下內容開始:
- 長期穩定內核- 饋入 ACK 的上游 LTS 內核的背景。
- Android 通用核心- ACK 背景。
- 如果您不熟悉 GKI 核心開發,請先閱讀GKI 開發。
- 如果您使用的是 4.19 或更早版本的核心並正在尋找相關文檔,請參閱先前的核心 (<=4.19) 概述部分。