「產品核心」又稱為裝置核心或原始設備製造商 (OEM) 核心 收集的裝置核心指標在加入 GKI 之前 產品核心是 。圖 1 顯示核心方法 附加內容會產生產品核心 (OEM/裝置核心):
圖 1. 之前建構 GKI 產品核心。
- 已修改 kernel.org 的 Linux 長期支援 (LTS) 核心 造成 Android 常見核心 (ACK) 影響的 Android 專用修補程式。
- 廠商修改了 ACK 內容,但該供應商為晶片系統新增支援的服務供應商 (SoC)。供應商也可能會增加效能或電源最佳化設定。 產生的核心稱為供應商核心。
- 最後,原始設備製造商 (OEM) 進一步修改供應商核心,並加入其他 並視需要調整裝置驅動程式和客製化設定。產生的核心 稱為產品核心
以上所有修改可能使 50% 來自 核心程式碼是外部程式碼,而非上游 Linux 核心或 ACK。 在採用 GKI 之前,幾乎每部裝置都有一個可產生核心的自訂核心 分割。
分散的成本
核心片段化對 Android 社群有幾項負面影響。
安全性更新非常耗費人力
安全性修補程式列於 Android 安全性公告 (ASB) 必須向後移植至每個裝置核心不過,由於核心的關係 分散,將安全性修正項目傳播到 各種 Android 裝置
難以合併長期支援的更新
長期支援 (LTS) 版本包含安全性修正和其他項目 修正重大錯誤經證實能支援最新的 LTS 版本 以最有效率的方式提供安全性修正項目在 Pixel 裝置上 發現 ASB 中報告的 90% 核心安全性問題 。
不過,只要裝置核心中的所有自訂修改項目 則難以將 LTS 修正項目合併至裝置核心。
禁止 Android 平台版本升級
片段化導致難以使用需要核心的新 Android 功能 將變更新增至欄位中的裝置Android 架構程式碼必須假設 可支援多達五個核心版本,而且核心版本維持不變 (Android 10 是專為新的平台版本而設計) 支援 3.18、4.4、4.9、4.14 和 4.19 核心,在某些情況下則不支援 增強了 2017 年 Android 8 以來的新功能)。
難以將核心變更傳回上游 Linux
考量到核心的所有變更,大多數的旗艦裝置都會出貨
核心版本必須是至少 18 個月。舉例來說,
4.14 核心的發行者
2017 年 11 月的 kernel.org
,
首款搭載 4.14 個核心的 Android 手機,於 2019 年春季出貨。
上游核心發布與產品之間的延遲時間過長 以便 Android 社群在上游提供所需的功能和驅動程式 核心。
修正片段:通用核心映像檔
一般核心映像檔 (GKI) 專案可按照 統合核心核心,並將 SoC 和輔助板支援移出核心核心 並上傳至可載入的供應商模組GKI 也提供穩定的核心模組 供應商模組的介面 (KMI),以便更新模組和核心 以便獨立作業GKI 核心有以下幾個特性:
- GKI 核心是以 ACK 來源建立而成。
- GKI 核心是單一核心二進位檔,加上相關聯的可載入模組
每個 LTS 版本 (目前僅限
android11-5.4
的 arm64) 和android12-5.4
)。 - GKI 核心經過測試,所有 Android 平台版本 支援 相關的 ACK。GKI 生命週期內不會淘汰任何功能 核心版本
- GKI 核心會向特定 LTS 中的驅動程式公開穩定的 KMI。
- GKI 核心不包含 SoC 專屬程式碼或主機板專屬程式碼。
如需 GKI 架構的圖片,請參考 核心總覽。
GKI 是一種複雜變更,會先從 Android 11 平台中的 5.4 版核心。
GKI 分成兩個階段:
- GKI 1.0 是在 Android 11 中推出,適用於搭載 5.4 核心。GKI 1.0 適用於所有搭載 5.4 個核心的裝置 搭載 Android 12 或 Android 的裝置 13.
- GKI 2.0 是在 Android 12 中推出,適用於搭載 5.10 核心,且為所有搭載 5.10 或 5.10 版或以下機型的裝置 後續核心
1.0 喬治亞州
在 GKI 1.0 中,以核心版本 5.4 啟動的裝置必須通過 GKI 測試 (Android 11 以上版本平台版本)。GKI 1.0 目標包括:
- 避免供應商測試套件 (VTS) 中的迴歸問題或 Compatibility Test Suite (CTS) 將產品核心替換為 GKI 核心
- 透過 Android 開放原始碼計畫減少合作夥伴對核心保持最新狀態 常見核心
- 針對裝置升級和啟動的裝置納入核心 Android 核心變更 新的 Android 版本
- 請勿破壞 Android 使用者空間。
- 將硬體專屬元件與核心核心分開,做為可載入的模組。
如需 GKI 1.0 說明文件,請參閱 GKI 1.0 部分。
2.0 加利福尼亞州
在 GKI 2.0 中,搭載核心版本 5.10 或以上版本的裝置必須隨附於 GKI 核心 (從 Android 12 開始)。已簽署的開機程序 並定期提供映像檔,並定期更新 LTS 及重大錯誤修正項目。 KMI 負責維持二進位檔穩定性,因此您可以安裝 不必變更供應商映像檔GKI 2.0 目標包括 包括:
- 更換裝置時,請勿造成重大效能或電源迴歸現象 和 GKI 核心建立產品核心
- 讓合作夥伴無需廠商即可提供核心安全性修正項目及錯誤修正 的參與。
- 降低裝置主要核心版本的更新費用 (例如 從 5.10 版到 2021 年 LTS 核心)。
- 透過更新核心來維護每個架構的單一 GKI 核心二進位檔 並明確說明昇級程序
GKI 2.0 代表 Android 核心的最新狀態。Kernel GKI 以外的說明文件 1.0 和 先前的核心 (<= 4.19)。 子節反映了 GKI 2.0 架構。