為廠商維護穩定的核心模組介面 (KMI) 至關重要 模組。GKI 核心是 內建的二進位格式和供應商可載入的模組皆內建於 。產生的 GKI 核心和供應商模組必須 事實上,這些專案是一起打造而成
一般來說,Linux 社群 談論核心 ABI 的概念 穩定性 做為主線核心的 BERT 模型由於工具鍊、設定 和不斷進化的 Linux 主系列核心 以穩定的 KMI 為主。不過,您可能會在 受到限制的 GKI 環境,並具有這些限制:
只有單一設定 (
gki_defconfig
) 可用來建構 核心。KMI 只與核心的 Android 版本和 Android 版本相同, 例如
android13-5.10
、android12-5.10
或android13-5.15
android-mainline
不會維持 KMI 穩定性。
只有 Android 開放原始碼計畫提供且針對 相應的分支版本則用於建構核心和模組。
只有符合符號清單中指定之模組可使用的符號, 會監控穩定性並考慮採用 KMI 符號。
- 由此可知,供應商模組只能使用 KMI 符號。這個 限制會在非 KMI 符號 這通常代表交易 不會十分要求關聯語意
KMI 分支版本凍結後,仍可進行變更,但無法中斷 KMI。 這些變更包括:
- 設定變更
- 核心程式碼變更
- 工具鍊變更 (包括更新)
運用密封的建構程序和 LLVM 工具鍊
密封建構程序會在以下位置使用 repo
資訊清單,確保 KMI 保持穩定
kernel/manifest
會完整說明建構環境。舉例來說,
android13-5.15
的資訊清單
包括工具鍊、建構指令碼,以及建構
通用核心映像檔 (GKI) 核心。相應的 build.config
設定
檔案,例如 GKI 建構設定 build.config.gki.aarch64
確保隨附的工具正確使用,以產生一致的版本
也就是預測結果
使用密封建構程序也能確保
無論 Google 是產生任何參照樹狀結構 (例如
abi_gki_aarch64.xml
敬上
為 android13-5.15
),或在包含供應商的本機樹狀結構中產生。
模組。
建立及比較 ABI 說明的工具
核心模組介面 (KMI) 的 KMI 值也會當做存放區的一部分
資訊清單描述所有內容
用於建構 GKI 核心的工具鍊必須與 也就是用於建構供應商模組的工具鍊。自 Android 手機起 10,所有 Android 核心都必須建構 使用 LLVM 工具鍊來建立應用程式透過 GKI,LLVM 工具鍊可用於建構產品 核心和供應商模組必須產生與 LLVM 工具鍊相同的 ABI Android 開放原始碼計畫和合作夥伴必須確保 KMI 與 GKI 核心相容。 強烈建議使用我們提供的建構工具,因為這些工具能夠提供 最佳相容性。
後續步驟
想瞭解如何使用密封的建構程序建構核心 LLVM 工具鍊,請參考 建構核心。
如要瞭解如何監控 ABI 及修正問題,請參閱 Android 核心 ABI Monitoring