Основные требования к ядру

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

Реализация интерфейса поставщика не может полагаться на файловую систему 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.
Тестирование и проверка для конкретного устройства Адб корень и оболочка