Android 8.0 и более поздних версий требуют наличия минимальной версии ядра и конфигурации ядра, которые проверяются Vendor Test Suite (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.
- Все SoC, выпущенные в 2018 году, должны запускаться с ядром 4.9.84 или выше.
- Все остальные SoC, запускающие устройства Android под управлением Android 9, должны использовать ядро 4.4.107 или выше.
- Ядра устройств на основе версии 4.14 должны включать версию LTS 4.14.42 или более позднюю версию.
- Независимо от даты запуска, все SoC с устройствами, выпущенными на базе Android 8.0 и более поздних версий, по-прежнему подлежат изменениям ядра, необходимым для включения Treble.
- Старые устройства Android, обновляющиеся до Android 8.0 или выше, могут продолжать использовать исходную базовую версию ядра.
Подробную информацию о ядрах LTS см. в разделах «Долгосрочные стабильные ядра» и «Общие ядра Android».
Поддержка дерева устройств
Если платформа не поддерживает спецификацию Advanced Configuration and Power Interface (ACPI) , необходимо включить поддержку дерева устройств в ядре, а загрузчики должны передать ядру описание оборудования в форме дерева устройств. Дерево устройств также должно быть доступно для чтения Android, и оно должно иметь возможность передавать в Android параметры, специфичные для поставщика и ODM. CONFIG_OF
является обязательным, наряду со всеми другими параметрами конфигурации ядра CONFIG_OF_*
специфичными для устройства и подсистемы.
Используйте отладочную файловую систему
Реализация интерфейса поставщика не может полагаться на файловую систему DebugFS
для доступа к отладочной информации. Это связано с тем, что в Android 7.0–10 можно включить DebugFS
, но тестирование VTS может выполняться с отключенной DebugFS
.
В Android 11 доступ к DebugFS
и ее установка на производственных устройствах недоступны, поэтому производители устройств должны удалить ее. До Android 11 dumpstate
получал доступ к статистике связывателей из DebugFS
. Поскольку пользовательские сборки, запускаемые с Android 11 или более поздней версии, не имеют доступа к DebugFS
, dumpstate
получает доступ к статистике связывателей binderfs
. Чтобы включить Binderfs
, включите конфигурацию ядра CONFIG_ANDROID_BINDERFS
.
В Android 11 VTS обеспечивает соблюдение этих двух требований:
-
CONFIG_DEBUG_FS
не включен в конфигурации ядра устройства. -
DebugFS
не указан в/proc/filesystems
.
DebugFS в Android 11
В следующей таблице описано, как каждая из этих трех категорий поддерживается в Android 11. Обратите внимание, что следующее применимо только к сборкам пользовательской отладки, поскольку DebugFS
не может быть смонтирован в пользовательских сборках. Никогда не монтируйте DebugFS
в пользовательские сборки для устройств, запускаемых на Android 11.
Вариант использования | Сборка пользовательской отладки Android 11 |
---|---|
Одноразовая инициализация файлов DebugFS во время запуска . Этот доступ происходит только один раз во время загрузки. | Это делает поставщик init. |
Генерация отчета об ошибке : HAL-файл дампа считывает файлы DebugFS , которые становятся частью отчета об ошибке. | Выполняется с помощью HAL dumpstate внутри DumpstateBoard() при вызове инструмента dumpstate. |
Тестирование и проверка для конкретного устройства | Адб корень и оболочка |