Dispositivos lançados com o Android 12 usando o kernel
as versões mais recentes que a v5.4 precisam ser enviadas com o kernel de GKI. Assim,
os parceiros podem acessar DebugFS
em builds userdebug durante o desenvolvimento na GKI.
a configuração CONFIG_DEBUG_FS
do kernel é ativada no defconfig de GKI.
Nunca montar DebugFS
em builds do usuário para dispositivos
lançamento no Android 12.
Os builds Userdebug têm uma cobertura de teste melhor do que os builds de usuário e obtêm uma
e testada durante todo o ciclo de desenvolvimento. O plano a seguir minimiza o
diferença entre os dois tipos de build em relação ao acesso a DebugFS
oferece estes benefícios:
- Evita que os builds do userdebug dependam acidentalmente de
DebugFS
. para conhecer novas funcionalidades - Garante que qualquer funcionalidade existente seja corrompida pela falta do DebugFS é conhecida no início do ciclo de desenvolvimento
Os acessos de Debugfs em builds userdebug são categorizados como da seguinte forma:
- inicializações de arquivo
DebugFS
durante a inicialização do dispositivo, como acesso de gravação a um arquivo emDebugFS
para ativar a coleta de dados de depuração. - Geração de relatórios de bugs: a HAL de dumpstate lê arquivos
DebugFS
quandoDumpstateBoard()
é invocado pordumpstate
. Isso se torna parte do relatório do bug. - Teste e validação específicos do dispositivo.
A tabela a seguir descreve como cada uma dessas três categorias é
com suporte no Android 12. Observe que o
a seguir só se aplica a builds userdebug, já que DebugFS
não pode ser
montados em builds do usuário.
Caso de uso | Build userdebug do Android 12 |
---|---|
Inicialização única de arquivos DebugFS durante a inicialização.
Esse acesso acontece apenas uma vez durante o tempo de inicialização.
|
A HAL Dumpstate faz isso durante a inicialização da HAL. Para ativar os mesmos,
O init monta DebugFS em builds userdebug antes da inicialização da HAL.
Init chama umount() em DebugFS quando
que o dispositivo tenha concluído a inicialização.
|
Geração de relatórios de bugs: a HAL de dumpstate lê.
Arquivos DebugFS , que se tornam parte do relatório do bug.
|
Concluído pela HAL de dumpstate dentro de DumpstateBoard() quando invocada pelo dumpstate
(DumpstateDevice.cpp).
A ferramenta dumpstate, parte do framework do Android, garante que DebugFS .
é ativado durante a invocação.
|
Teste e validação específicos do dispositivo | Raiz Adb e shell. Ative DebugFS pelo shell do adb com
acesso raiz1.
|
1Para montar DebugFS
de adb shell
com
acesso root, use este comando:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
Ações necessárias do parceiro
Os parceiros precisam tomar as seguintes medidas com base nessas mudanças em Dispositivos Android 12:
- Fazer com que todas as inicializações do tempo de inicialização dos nós
DebugFS
aconteçam durante a inicialização da HAL de dumpstate. Para ver um exemplo de como fazer isso, consulte Não relevante: Exemplo de inicialização do tempo de inicialização de arquivosDebugFS
. - Não permitir o acesso do
DebugFS
durante o tempo de execução. As seguintes exceções aplicar:- Geração de relatórios de bugs (vem da HAL dumpstate)
- Teste e validação (acessível por
adb root
eshell
) - verifique se o DebugFS foi ativado primeiro)
Os desenvolvedores podem definir a propriedade de depuração permanente
persist.dbg.keep_debugfs_mounted
para manter o DebugFs
montado na
é reinicializado em builds userdebug e eng.
Os testes de conformidade com o GTS garantem que o sistema de arquivos DebugFS
não esteja
montados em builds do usuário. As instruções neverallow
de política garantem que, nos dispositivos,
for lançado no Android 12 ou versões mais recentes, processos não autorizados não são fornecidos
acesso a DebugFs
.