Requisitos principales del kernel

Android 8.0 y las versiones posteriores requieren una versión y kernel mínimos de Compute Engine, que se verifican con el Conjunto de pruebas del proveedor (VTS) y de forma inalámbrica (OTA). Los kernels de dispositivos Android deben habilitar el kernel .config compatibilidad y la opción de leer la configuración del kernel en el entorno de ejecución a través del Sistema de archivos procfs.

Compatibilidad con Kernel .config

Todos los kernels del dispositivo deben habilitar android-base.cfg, que debe incluir lo siguiente Opciones kernel-config (o su equivalente a la versión de kernel):

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

Versión de kernel

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

  • Todos los SoC desarrollados en 2018 deben lanzarse con kernel 4.9.84 o superior
  • Todos los demás SoC que lanzan dispositivos Android que ejecutan Android 9 debes usar el kernel 4.4.107 o una versión posterior.
  • Los kernels de dispositivos basados en la versión 4.14 deben incluir la versión de LTS 4.14.42 o una posterior. lanzamiento.
  • Independientemente de la fecha de lanzamiento, todos los SoCs con dispositivos se lanzan en Android 8.0 y versiones posteriores están sujetas a los cambios del kernel necesarios para habilitar Treble.
  • Los dispositivos Android más antiguos que se actualicen a Android 8.0 o versiones posteriores pueden continuar usar su versión original de kernel base.

Para obtener detalles sobre los kernels LTS, consulta Largo plazo kernels estables y Núcleos comunes de Android

Compatibilidad con Devicetree

Si la plataforma no admite la especificación de Interfaz avanzada y configuración avanzada (ACPI), La compatibilidad con devicetree en el kernel debe estar habilitada y los bootloaders deben pasar el de hardware en la forma de un árbol de dispositivos en el kernel. El árbol de dispositivos también debe estar disponible para lectura de Android y debe ser capaz de pasar y parámetros específicos de ODM para Android. El campo CONFIG_OF es obligatorio. junto con todos los demás CONFIG_OF_* específicos de dispositivos y subsistemas opciones de configuración de kernel.

Usa DebugFS

La implementación de la interfaz del proveedor no puede depender de DebugFS. para acceder a la información de depuración. Esto se debe a que, en Android 7.0 a 10, se puede habilitar DebugFS pero las pruebas de VTS podrían realizarse con DebugFS desactivado.

En Android 11, no se puede acceder a DebugFS ni activarlo dispositivos de producción, por lo que los fabricantes de dispositivos deben quitarlo. En versiones anteriores a Android 11, dumpstate accedió a las estadísticas de Binder desde DebugFS. Debido a que las compilaciones de usuario que se lanzan con Android 11 o versiones posteriores no tienen acceso DebugFS, dumpstate accede a las estadísticas de Binder desde binderfs Para habilitar Binderfs, habilita el kernel config CONFIG_ANDROID_BINDERFS.

En Android 11, VTS aplica 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 cada una de estas tres categorías compatible con Android 11. Ten en cuenta que El siguiente código solo se aplica a compilaciones userdebug, ya que DebugFS no puede ser activa en compilaciones de usuarios. Nunca actives DebugFS en compilaciones de usuario para dispositivos que se lanzarán en Android 11.

Caso de uso Compilación userdebug de Android 11
Inicialización única de archivos DebugFS durante el inicio. Este acceso sucede una sola vez durante el tiempo de inicio. El init del proveedor hace esto.
Generación de informes de errores: La HAL de estado de volcado lee: Archivos DebugFS, que forman parte del informe de errores Lo realiza la HAL de estado de volcado dentro de DumpstateBoard() cuando se invoca. la herramienta dumpstate.
Pruebas y validación específicas del dispositivo Shell y raíz de adb