O Android 8.0 e superior exigem uma versão mínima do kernel e uma configuração do kernel, que são verificadas pelo Vendor Test Suite (VTS) e pelas atualizações over-the-air (OTA). Os kernels de dispositivos Android devem ativar 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 ao kernel .config
Todos os kernels de dispositivos devem ativar todo o android-base.cfg , que deve incluir as seguintes opções de configuração do kernel (ou sua versão equivalente do kernel):
CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y
Versão do kernel
Para o Android 9, os requisitos mínimos da versão do kernel do Long Term Support (LTS) 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 4.14.42 ou superior do LTS.
- Independentemente da data de lançamento, todos os SoCs com lançamento de dispositivos no Android 8.0 e superior permanecem sujeitos às alterações de kernel necessárias para ativar o Treble.
- Dispositivos Android mais antigos atualizados para Android 8.0 ou superior podem continuar a usar sua versão base original do kernel.
Para obter detalhes sobre kernels LTS, consulte Kernels estáveis de longo prazo e Android Common Kernels
Suporte à árvore de dispositivos
Se a plataforma não suportar a especificação Advanced Configuration and Power Interface (ACPI) , o suporte a devicetree no kernel deverá ser habilitado e os bootloaders deverão passar a descrição do hardware na forma de uma devicetree para o kernel. O 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 do dispositivo e do subsistema.
Usando DebugFS
A implementação da interface do fornecedor não pode contar com o sistema de arquivos DebugFS
para acessar informações de depuração. Isso ocorre 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, dumpstate
acessava as estatísticas do binder do DebugFS
. Como as compilações do usuário lançadas com Android 11 ou superior não podem acessar DebugFS
, dumpstate
acessa estatísticas de binder de binderfs
. Para habilitar Binderfs
, habilite a configuração do kernel CONFIG_ANDROID_BINDERFS
.
No Android 11, o VTS impõe 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 DebugFS
em compilações de usuário para dispositivos lançados no Android 11.
Caso de uso | Compilação de depuração de usuário do Android 11 |
---|---|
Inicialização única de arquivos DebugFS , durante a inicialização . Esse acesso acontece apenas uma vez durante a inicialização. | A inicialização do fornecedor faz isso. |
Geração de bugreport : O dumpstate HAL lê arquivos DebugFS , que se tornam parte do relatório de bug. | Feito por dumpstate HAL dentro DumpstateBoard() quando invocado pela ferramenta dumpstate. |
Teste e validação específicos do dispositivo | Raiz e shell do Adb |