核心內核要求

Android 8.0 及更高版本要求最低內核版本和內核配置,這些都通過供應商測試套件 (VTS) 和無線 (OTA) 更新進行驗證。 Android 設備內核必須啟用內核.config支持以及在運行時通過procfs文件系統讀取內核配置的選項。

內核 .config 支持

所有設備內核都必須啟用整個android-base.cfg ,其中必須包括以下內核配置選項(或其內核版本等效項):

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

內核版本

對於 Android 9,最低長期支持 (LTS) 內核版本要求為 4.4.107、4.9.84 和 4.14.42。

  • 2018 年生產的所有 SoC 必須使用內核 4.9.84 或更高版本啟動。
  • 啟動運行 Android 9 的 Android 設備的所有其他 SoC 必須使用內核 4.4.107 或更高版本。
  • 基於 4.14 的設備內核必須包含 4.14.42 或更高版本的 LTS。
  • 無論發布日期如何,所有在 Android 8.0 及更高版本上啟動設備的 SoC 仍受啟用 Treble 所需的內核更改的影響。
  • 升級到 Android 8.0 或更高版本的舊 Android 設備可以繼續使用其原始基本內核版本。

有關 LTS 內核的詳細信息,請參閱長期穩定內核Android 通用內核

設備樹支持

如果平台不支持高級配置和電源接口 (ACPI)規範,則必須啟用內核中的設備樹支持,並且引導加載程序必須將設備樹形式的硬件描述傳遞給內核。設備樹還必須可供 Android 讀取,並且必須能夠將供應商和 ODM 特定的參數傳遞給 Android。 CONFIG_OF是強制性的,以及所有其他特定於設備和子系統的CONFIG_OF_*內核配置選項。

使用 DebugFS

供應商接口的實現不能依賴DebugFS文件系統來訪問調試信息。這是因為在 Android 7.0–10 中,可以啟用DebugFS ,但 VTS 測試可能會在DebugFS卸載的情況下完成。

在 Android 11 中,無法在生產設備上訪問或掛載DebugFS ,因此設備製造商必須將其移除。在 Android 11 之前, dumpstate DebugFS binder 統計信息。由於使用 Android 11 或更高版本啟動的用戶構建無法訪問DebugFS ,因此 dumpstate 會從dumpstate訪問 binder 統計binderfs 。要啟用Binderfs ,請啟用內核配置CONFIG_ANDROID_BINDERFS

在 Android 11 中,VTS 強制執行以下兩個要求:

  • CONFIG_DEBUG_FS未在設備的內核配置中啟用。
  • DebugFS未在/proc/filesystems下列出。

Android 11 中的 DebugFS

下表描述了 Android 11 如何支持這三個類別。請注意,以下內容僅適用於 userdebug 構建,因為DebugFS無法在用戶構建中掛載。切勿在 Android 11 上啟動的設備的用戶構建中安裝DebugFS

用例Android 11 用戶調試版本
啟動期間一次性DebugFS文件初始化。此訪問僅在引導期間發生一次供應商 init 執行此操作。
錯誤報告生成:轉儲狀態 HAL 讀取DebugFS文件,這些文件成為錯誤報告的一部分。當由 dumpstate 工具調用時,由DumpstateBoard()中的 dumpstate HAL 完成。
特定於設備的測試和驗證adb root 和 shell