O Android 8.0 introduziu um kernel modular, dividindo o kernel do dispositivo em um sistema em chip (SoC), resultados específicos do dispositivo e da placa. Essa mudança os fabricantes de dispositivos originais (ODMs, na sigla em inglês) e os fabricantes de equipamentos (OEMs) para trabalhar em árvores isoladas e específicas de quadros para drivers e recursos específicos da placa, permitindo que eles modifiquem o kernel comum da VM, adicionar novos drivers na forma de módulos do kernel etc.
O suporte modular ao kernel no Android inclui o seguinte:
- Suporte de plataforma para desenvolvimento de kernel independente de SoC e OEM/ODM.
O Android 9 e versões mais recentes recomendam criar e
enviando todo o código específico da placa como módulos do kernel nos dispositivos. Confira as consequências disso:
- Todas as plataformas devem oferecer suporte a devicetree ou Avançado interface de configuração e energia (ACPI, na sigla em inglês) para descrever todos e não detectáveis.
- Todas as plataformas baseadas em árvore de dispositivos precisam adicionar nós de dispositivo específicos da placa para a árvore de dispositivos do kernel sobreposições.
- Interface binária do aplicativo (ABI) e interface de programação do aplicativo (API) testes no conjunto de testes de fornecedor (VTS, na sigla em inglês). Esses os testes garantem que um determinado kernel possa executar o projeto do Android Open Source Project AOSP.
- Versão mínima do kernel por versão do Android.
- Suporte para gerar Interface do fornecedor Android (VINTF, na sigla em inglês) objetos do kernel.