Android 核心是以上游 Linux 長期支援 (LTS) 核心為基礎。在 Google 中,LTS 核心會與 Android 專屬修補程式結合,形成所謂的 Android 通用核心 (ACK)。
較新的 ACK (5.4 以上版本) 也稱為 GKI 核心。GKI 核心可支援將硬體無關的 通用核心核心程式碼和 GKI 模組與硬體專屬的 供應商模組分開。
GKI 核心會與硬體專屬的供應商模組互動,這些模組包含晶片系統 (SoC) 和板卡專屬程式碼。核心模組介面 (KMI) 可啟用 GKI 核心與供應商模組之間的互動,其中包含符號清單,可識別供應商模組所需的函式和全域資料。圖 1 顯示 GKI 核心和供應商模組架構:
![GKI 架構](https://source.android.google.cn/static/docs/core/architecture/images/generic-kernel-image-architecture.png?authuser=2&hl=zh-tw)
核心詞彙表
本節包含整個核心說明文件中使用的術語。
核心類型
- 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 核心;功能組合會類似於在 Android 11 上搭載 4.19 並升級至 Android 12 的裝置。
- 通用核心核心
- GKI 核心的部分,適用於所有裝置。
- 通用核心映像檔 (GKI) 核心
- 任何較新的 (5.4 以上) ACK 核心 (目前僅限 aarch64)。這個核心包含兩個部分:核心 GKI 核心,其中包含所有裝置共用的程式碼,以及 Google 開發的 GKI 模組,可在適用的裝置上動態載入。
- 核心模組介面 (KMI) 核心
- 請參閱 GKI 核心。
- 啟動核心
- 可用於啟動特定 Android 平台版本裝置的核心。舉例來說,在 Android 12 中,有效的啟動核心為 4.19、5.4 和 5.10。
- 長期支援 (LTS) 核心
- 支援時間為 2 到 6 年的 Linux kernel。LTS 核心每年發布一次,是每個 Google ACK 的基礎。
分支類型
- ACK KMI 核心分支
- 建構 GKI 核心的分支。例如 android12-5.10 和 android13-5.15。
- Android-mainline
- 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 裝置的開機分割區。
- KMI
- GKI 核心與供應商模組之間的介面,可讓供應商模組獨立於 GKI 核心進行更新。這個介面包含使用個別合作夥伴符號清單,已識別為供應商/OEM 依附元件的核心函式和全域資料。
- GKI 模組
- Google 建構的核心模組,可在適用的裝置上動態載入。這些模組會以 GKI 核心的構件形式建構,並與 GKI 一併提供,做為
system_dlkm_staging_archive.tar.gz
封存檔。Google 會使用核心建構時間金鑰組簽署 GKI 模組,且這些模組僅與用來建構的 GKI 核心相容。 - 供應商模組
- 合作夥伴開發的硬體專屬模組,其中包含 SoC 和裝置專屬功能。供應商模組是一種可動態載入的核心模組。
後續步驟
- 如果您是 Android 核心開發新手,建議先閱讀下列內容:
- 長期穩定核心模組 - 上游 LTS 核心模組的背景資訊,這些資訊會提供給 ACK。
- Android 常見核心 - ACK 的背景資訊。
- 如果您是 GKI 核心開發新手,請先閱讀 GKI 開發。