Android 8.0 introdujo un kernel modular, que dividió el kernel del dispositivo en un sistema en chip (SoC), un dispositivo y entregas específicas para la placa. Este cambio hizo posible que los fabricantes de dispositivos originales (ODM) y los que los fabricantes de equipos (OEMs) trabajen en árboles aislados y específicos de la junta funciones y controladores específicos de la placa, lo que les permite anular el kernel común de configuración, agregar nuevos controladores en forma de módulos de kernel, etcétera.
La compatibilidad con kernel modular en Android incluye lo siguiente:
- Compatibilidad con plataformas para el desarrollo independiente de SoC y kernels de OEM/ODM.
Android 9 y las versiones posteriores recomiendan compilar y
envía todo el código específico de la placa como módulos de kernel en dispositivos. Estos fueron algunos de los resultados:
- Todas las plataformas deben admitir devicetree o Avanzado Interfaz de Configuración y Alimentación (ACPI) para describir todas dispositivos no detectables.
- Todas las plataformas basadas en devicetree deben agregar nodos de dispositivos específicos de la placa al devicetree del kernel como superposiciones.
- Interfaz binaria de aplicación (ABI) y interfaz de programación de aplicaciones (API) pruebas en el Conjunto de pruebas de proveedores (VTS). Estos y las pruebas garantizan que un kernel pueda ejecutar el Proyecto de código abierto de Android (AOSP).
- Versión mínima de kernel según la versión de Android.
- Asistencia para generar Interfaz de proveedores de Android (VINTF) de kernel.