Android 8.0 y versiones posteriores exigen una versión mínima del kernel y una configuración del kernel, que son verificadas por 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
.
Compatibilidad con .config del núcleo
Todos los kernels de los dispositivos deben habilitar la totalidad de android-base.cfg , que debe incluir las siguientes opciones de configuración del kernel (o su versión del kernel equivalente):
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 lanzarse con 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 lanzamientos de dispositivos en Android 8.0 y superior siguen estando sujetos a los cambios de kernel necesarios para habilitar Treble.
- Los dispositivos Android más antiguos que se actualicen a Android 8.0 o superior pueden continuar 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 es compatible con la especificación de configuración avanzada e interfaz de energía (ACPI) , la compatibilidad con el árbol de dispositivos en el kernel debe estar habilitada y los cargadores de arranque deben pasar la descripción del hardware en forma de un á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 del 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, DebugFS
se puede habilitar, pero las pruebas de VTS se pueden realizar con DebugFS
desmontado.
En Android 11, no se puede acceder a 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 carpetas de DebugFS
. Debido a que las compilaciones de usuario que se inician con Android 11 o superior no pueden acceder a 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
.
DebugFS 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 depuración de usuarios, ya que DebugFS
no se puede montar en las compilaciones de usuarios. Nunca DebugFS
en compilaciones de usuario para dispositivos que se inicien en 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 solo una vez durante el tiempo de 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 es invocado por la herramienta dumpstate. |
Pruebas y validación específicas del dispositivo | Adb root y shell |