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 |