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

Для 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 должны включать версию 4.14.42 или выше LTS.
  • Независимо от даты запуска, все SoC с устройствами, запускаемыми на Android 8.0 и выше, подлежат изменениям ядра, необходимым для включения Treble.
  • Старые устройства Android, обновляющиеся до Android 8.0 или более поздней версии, могут продолжать использовать свою исходную базовую версию ядра.

Дополнительные сведения о ядрах LTS см. в разделе Долгосрочные стабильные ядра и общие ядра Android .

Поддержка дерева устройств

Если платформа не поддерживает спецификацию Advanced Configuration and Power Interface (ACPI) , поддержка дерева устройств в ядре должна быть включена, а загрузчики должны передавать описание оборудования в виде дерева устройств в ядро. Дерево устройств также должно быть доступно для Android для чтения, и оно должно иметь возможность передавать параметры поставщика и ODM в Android. 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. Обратите внимание, что следующее относится только к сборкам userdebug, поскольку DebugFS не может быть смонтирован в пользовательских сборках. Никогда не монтируйте DebugFS в пользовательских сборках для устройств, запускаемых на Android 11.

Вариант использования Сборка пользовательской отладки Android 11
Одноразовая инициализация файлов DebugFS во время запуска . Этот доступ происходит только один раз во время загрузки. Vendor init делает это.
Генерация отчета об ошибке : HAL дампа состояния считывает файлы DebugFS , которые становятся частью отчета об ошибке. Выполняется с помощью HAL дампа состояния в DumpstateBoard() при вызове инструмента дампа состояния.
Тестирование и проверка конкретных устройств Адб корень и оболочка