Android 8.0 introdujo un kernel modular, dividiendo el kernel del dispositivo en entregables específicos de sistema en chip (SoC), dispositivo y placa. Este cambio hizo posible que los fabricantes de dispositivos originales (ODM) y los fabricantes de equipos originales (OEM) trabajaran en árboles aislados y específicos de la placa para funciones y controladores específicos de la placa, lo que les permitió anular configuraciones comunes del kernel y agregar nuevos controladores en el formulario de módulos del kernel, etc.
La compatibilidad con el kernel modular en Android incluye lo siguiente:
- Soporte de plataforma para desarrollo independiente de núcleos SoC y OEM/ODM. Android 9 y versiones posteriores recomiendan crear y enviar todo el código específico de la placa como módulos del kernel en los dispositivos. Como resultado:
- Todas las plataformas deben admitir el árbol de dispositivos o la interfaz de alimentación y configuración avanzada (ACPI) para describir todos los dispositivos no detectables.
- Todas las plataformas basadas en árbol de dispositivos deben agregar nodos de dispositivos específicos de la placa al árbol de dispositivos del núcleo como superposiciones .
- Pruebas de interfaz binaria de aplicaciones (ABI)/interfaz de programación de aplicaciones (API) en Vendor Test Suite (VTS) . Estas pruebas garantizan que un kernel determinado pueda ejecutar el marco del Proyecto de código abierto de Android (AOSP).
- Versión mínima del kernel por versión de Android.
- Soporte para generar objetos del kernel de Android Vendor Interface (VINTF) .