Principais requisitos do kernel

O Android 8.0 e versões mais recentes exigem uma versão mínima do kernel e do kernel do cliente, que são verificadas pelo Conjunto de testes de fornecedor (VTS, na sigla em inglês) e via OTA (OTA). Os kernels do dispositivo Android precisam ativar o kernel .config e a opção de ler a configuração do kernel no ambiente de execução por meio do procfs.

Suporte a .config do kernel

Todos os kernels do dispositivo devem ativar todo o android-base.cfg, que precisa incluir o seguinte Opções kernel-config (ou a versão equivalente do kernel):

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

Versão do kernel

Para o Android 9, o Suporte de longo prazo (LTS) mínimo os requisitos de versão do kernel são 4.4.107, 4.9.84 e 4.14.42.

  • Todos os SoCs produzidos em 2018 precisam ser lançados com kernel 4.9.84 ou superior.
  • Todos os outros SoCs que estão lançando dispositivos com o Android 9 precisa usar o kernel 4.4.107 ou superior.
  • Os kernels de dispositivo baseados na versão 4.14 precisam incluir o LTS 4.14.42 ou superior lançamento.
  • Independentemente da data de lançamento, todos os SoCs com dispositivos são lançados no Android 8.0 e superiores permanecem sujeitos às alterações do kernel necessárias para ativar o Treble.
  • Dispositivos Android mais antigos que fizerem upgrade para o Android 8.0 ou versões mais recentes podem continuar com: usam a versão original do kernel de base.

Para mais detalhes sobre kernels de LTS, consulte Longo prazo kernels estáveis e Kernels comuns do Android

Suporte a Devicetree

Se a plataforma não for compatível com a especificação Advanced Configuration and Power Interface (ACPI), o suporte a devicetree no kernel deve ser ativado e os carregadores de inicialização devem passar o descrição de hardware na forma de uma árvore de dispositivos para o kernel. A árvore de dispositivos também deve estar disponível para o Android ler e deve ser capaz de passar dados e parâmetros específicos de ODM para o Android. CONFIG_OF é obrigatório, com todas as outras CONFIG_OF_* específicas do dispositivo e do subsistema opções de configuração do kernel.

Usar o DebugFS

A implementação da interface do fornecedor não pode depender do DebugFS para acessar informações de depuração. Isso porque, nas versões 7.0 a 10 do Android, a DebugFS pode ser ativada, mas o teste VTS pode ser feito com DebugFS desconectados.

No Android 11, o DebugFS não pode ser acessado ou montado em dispositivos de produção, portanto, os fabricantes precisam removê-los. Antes do Android 11, dumpstate acessou as estatísticas de vinculação de DebugFS. Porque os builds do usuário lançados com o Android 11 ou mais recente não podem acessar DebugFS, dumpstate acessa estatísticas de binder de binderfs Para ativar Binderfs, ative o kernel configuração CONFIG_ANDROID_BINDERFS.

No Android 11, o VTS aplica estes dois requisitos:

  • CONFIG_DEBUG_FS não está ativado 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 é com suporte no Android 11. Observe que o a seguir só se aplica a builds userdebug, já que DebugFS não pode ser montados em builds do usuário. Nunca montar DebugFS em builds do usuário para dispositivos lançamento no Android 11.

Caso de uso Build userdebug do Android 11
Inicialização única de arquivos DebugFS durante a inicialização. Esse acesso acontece apenas uma vez durante o tempo de inicialização. O init do fornecedor faz isso.
Geração de relatórios de bugs: a HAL de dumpstate lê. Arquivos DebugFS, que se tornam parte do relatório do bug. Feito pela HAL de dumpstate dentro de DumpstateBoard() quando invocado. pela ferramenta dumpstate.
Teste e validação específicos do dispositivo Raiz Adb e shell