維持穩定的核心模組介面

為廠商維護穩定的核心模組介面 (KMI) 至關重要 模組。GKI 核心是 內建的二進位格式和供應商可載入的模組皆內建於 。產生的 GKI 核心和供應商模組必須 事實上,這些專案是一起打造而成

一般來說,Linux 社群 談論核心 ABI 的概念 穩定性 做為主線核心的 BERT 模型由於工具鍊、設定 和不斷進化的 Linux 主系列核心 以穩定的 KMI 為主。不過,您可能會在 受到限制的 GKI 環境,並具有這些限制:

  • 只有單一設定 (gki_defconfig) 可用來建構 核心。

  • KMI 只與核心的 Android 版本和 Android 版本相同, 例如 android13-5.10android12-5.10android13-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 核心相容。 強烈建議使用我們提供的建構工具,因為這些工具能夠提供 最佳相容性。

後續步驟