O Android 8.0 introduziu um kernel modular, dividindo o kernel do dispositivo em um sistema no chip (SoC), dispositivo e produtos específicos da placa. Essa mudança possibilitou que fabricantes de dispositivos originais (ODMs) e fabricantes de equipamentos originais (OEMs) trabalhassem em árvores isoladas específicas da placa para recursos e drivers específicos da placa, permitindo-lhes substituir configurações comuns do kernel, adicionar novos drivers no formulário de módulos do kernel, etc.
O suporte modular ao kernel no Android inclui o seguinte:
- Suporte de plataforma para desenvolvimento independente de kernel SoC e OEM/ODM. O Android 9 e versões posteriores recomendam criar e enviar todo o código específico da placa como módulos do kernel nos dispositivos. Como resultado:
- Todas as plataformas devem suportar devicetree ou Advanced Configuration and Power Interface (ACPI) para descrever todos os dispositivos não detectáveis.
- Todas as plataformas baseadas em devicetree devem adicionar nós de dispositivos específicos da placa ao devicetree do kernel como sobreposições .
- Testes de interface binária de aplicativo (ABI)/interface de programação de aplicativo (API) no Vendor Test Suite (VTS) . Esses testes garantem que um determinado kernel possa executar a estrutura do Android Open Source Project (AOSP).
- Versão mínima do kernel por versão do Android.
- Suporte para geração de objetos de kernel da Android Vendor Interface (VINTF) .