Requisitos básicos del núcleo

Android 8.0 y versiones posteriores exigen una versión mínima del kernel y una configuración del kernel, que se verifican mediante Vendor Test Suite (VTS) y actualizaciones inalámbricas (OTA). Los kernels de dispositivos Android deben habilitar la compatibilidad con kernel .config y la opción de leer la configuración del kernel en tiempo de ejecución a través del sistema de archivos procfs .

Soporte de kernel .config

Todos los kernels de dispositivos deben habilitar la totalidad de android-base.cfg , que debe incluir las siguientes opciones de configuración del kernel (o su equivalente en la versión del kernel):

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

Versión del núcleo

Para Android 9, los requisitos mínimos de la versión del kernel de soporte a largo plazo (LTS) son 4.4.107, 4.9.84 y 4.14.42.

  • Todos los SoC producidos en 2018 deben iniciarse con el kernel 4.9.84 o superior.
  • Todos los demás SoC que inicien dispositivos Android con Android 9 deben usar el kernel 4.4.107 o superior.
  • Los núcleos de dispositivos basados ​​en 4.14 deben incluir la versión LTS 4.14.42 o superior.
  • Independientemente de la fecha de lanzamiento, todos los SoC con dispositivos lanzados en Android 8.0 y superior permanecen sujetos a los cambios del kernel necesarios para habilitar Treble.
  • Los dispositivos Android más antiguos que se actualizan a Android 8.0 o superior pueden seguir usando su versión base original del kernel.

Para obtener detalles sobre los kernels LTS, consulte Kernels estables a largo plazo y Kernels comunes de Android.

Soporte de árbol de dispositivos

Si la plataforma no admite la especificación ACPI (Configuración avanzada e interfaz de alimentación) , se debe habilitar la compatibilidad con el árbol de dispositivos en el kernel y los cargadores de arranque deben pasar la descripción del hardware en forma de árbol de dispositivos al kernel. El árbol de dispositivos también debe estar disponible para que Android lo lea y debe poder pasar parámetros específicos del proveedor y de ODM a Android. CONFIG_OF es obligatorio, junto con todas las demás opciones de configuración del kernel CONFIG_OF_* específicas del dispositivo y del subsistema.

Usando DebugFS

La implementación de la interfaz del proveedor no puede depender del sistema de archivos DebugFS para acceder a la información de depuración. Esto se debe a que en Android 7.0–10, se puede habilitar DebugFS , pero las pruebas de VTS se pueden realizar con DebugFS desmontado.

En Android 11, no se puede acceder DebugFS ni montarlo en dispositivos de producción, por lo que los fabricantes de dispositivos deben eliminarlo. Antes de Android 11, dumpstate accedía a las estadísticas de la carpeta desde DebugFS . Debido a que las compilaciones de usuarios que se inician con Android 11 o superior no pueden acceder DebugFS , dumpstate accede a las estadísticas de Binder desde binderfs . Para habilitar Binderfs , habilite la configuración del kernel CONFIG_ANDROID_BINDERFS .

En Android 11, VTS impone estos dos requisitos:

  • CONFIG_DEBUG_FS no está habilitado en la configuración del kernel del dispositivo.
  • DebugFS no aparece en /proc/filesystems .

Depurar FS en Android 11

La siguiente tabla describe cómo se admite cada una de estas tres categorías en Android 11. Tenga en cuenta que lo siguiente solo se aplica a las compilaciones de usuario, ya que DebugFS no se puede montar en compilaciones de usuario. Nunca monte DebugFS en compilaciones de usuarios para dispositivos que se inician con Android 11.

Caso de uso Compilación de depuración de usuario de Android 11
Inicialización única de archivos DebugFS , durante el inicio . Este acceso ocurre sólo una vez durante el arranque. El proveedor init hace esto.
Generación de informes de errores : el dumpstate HAL lee los archivos DebugFS , que pasan a formar parte del informe de errores. Realizado por dumpstate HAL dentro de DumpstateBoard() cuando lo invoca la herramienta dumpstate.
Pruebas y validación específicas del dispositivo raíz y shell de adb