O Android 8.0 e superior exigem uma versão e configuração de kernel mínimas, que são verificadas pelas atualizações Vendor Test Suite (VTS) e over-the-air (OTA). Os kernels de dispositivos Android devem habilitar o suporte ao kernel .config
e a opção de ler a configuração do kernel em tempo de execução por meio do sistema de arquivos procfs
.
Suporte a .config do kernel
Todos os kernels do dispositivo devem habilitar a totalidade do android-base.cfg , que deve incluir as seguintes opções de configuração do kernel (ou seu equivalente na versão do kernel):
CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y
Versão do kernel
Para o Android 9, os requisitos mínimos de versão do kernel LTS (Long Term Support) são 4.4.107, 4.9.84 e 4.14.42.
- Todos os SoCs produzidos em 2018 devem ser lançados com kernel 4.9.84 ou superior.
- Todos os outros SoCs que executam dispositivos Android com Android 9 devem usar o kernel 4.4.107 ou superior.
- Os kernels de dispositivos baseados em 4.14 devem incluir a versão LTS 4.14.42 ou superior.
- Independentemente da data de lançamento, todos os SoCs com lançamentos de dispositivos no Android 8.0 e superior permanecem sujeitos às alterações de kernel necessárias para habilitar o Treble.
- Dispositivos Android mais antigos atualizados para o Android 8.0 ou superior podem continuar a usar sua versão original do kernel base.
Para obter detalhes sobre kernels LTS, consulte kernels estáveis de longo prazo e kernels comuns do Android
Suporte à árvore de dispositivos
Se a plataforma não suportar a especificação ACPI (Advanced Configuration and Power Interface) , o suporte a devicetree no kernel deve ser habilitado e os carregadores de inicialização devem passar a descrição do hardware na forma de uma devicetree para o kernel. A devicetree também deve estar disponível para leitura do Android e deve ser capaz de passar parâmetros específicos do fornecedor e do ODM para o Android. CONFIG_OF
é obrigatório, juntamente com todas as outras opções de configuração do kernel CONFIG_OF_*
específicas de dispositivo e subsistema.
Usando o DebugFS
A implementação da interface do fornecedor não pode depender do sistema de arquivos DebugFS
para acessar informações de depuração. Isso porque no Android 7.0–10, DebugFS
pode ser ativado, mas o teste VTS pode ser feito com DebugFS
desmontado.
No Android 11, DebugFS
não pode ser acessado ou montado em dispositivos de produção, portanto, os fabricantes de dispositivos devem removê-lo. Antes do Android 11, o dumpstate
acessava as estatísticas do binder do DebugFS
. Como as compilações do usuário iniciadas com o Android 11 ou superior não podem acessar o DebugFS
, o dumpstate
acessa as estatísticas do binderfs
. Para habilitar o Binderfs
, habilite a configuração do kernel CONFIG_ANDROID_BINDERFS
.
No Android 11, o VTS aplica estes dois requisitos:
-
CONFIG_DEBUG_FS
não está habilitado na configuração do kernel do dispositivo. -
DebugFS
não está listado em/proc/filesystems
.
DebugFS no Android 11
A tabela a seguir descreve como cada uma dessas três categorias é compatível com o Android 11. Observe que o seguinte se aplica apenas a compilações de userdebug, pois DebugFS
não pode ser montado em compilações de usuário. Nunca monte o DebugFS
nas compilações do usuário para dispositivos iniciados no Android 11.
Caso de uso | Compilação de depuração do usuário do Android 11 |
---|---|
Inicialização única de arquivos DebugFS , durante a inicialização . Este acesso acontece apenas uma vez durante o boot. | O init do fornecedor faz isso. |
Geração de relatório de bug: O dumpstate HAL lê arquivos DebugFS , que se tornam parte do relatório de bug. | Feito por dumpstate HAL dentro de DumpstateBoard() quando invocado pela ferramenta dumpstate. |
Teste e validação específicos do dispositivo | ADB raiz e shell |