A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os dispositivos lançados com o Android 12 usando versões
do kernel mais recentes que a v5.4 precisam ser enviados com o kernel do GKI. Para que
os parceiros possam acessar DebugFS em builds de userdebug durante o desenvolvimento no kernel
do GKI, a configuração do kernel CONFIG_DEBUG_FS é ativada no defconfig do GKI.
Nunca monte DebugFS em builds de usuário para dispositivos
lançados no Android 12.
Os builds do userdebug têm uma cobertura de teste melhor do que os builds do usuário e são
testados extensivamente durante o ciclo de desenvolvimento. O plano a seguir minimiza a
diferença entre os dois tipos de build em relação ao acesso DebugFS e
oferece estes benefícios:
Evita que builds de userdebug dependam acidentalmente de DebugFS
para novas funcionalidades.
Garante que qualquer funcionalidade existente que seja interrompida pela falta do DebugFS
seja conhecida no início do ciclo de desenvolvimento
Os acessos de DebugFS em builds de userdebug são categorizados da seguinte
forma:
Inicializações de arquivos DebugFS durante a inicialização do dispositivo, como
acesso de gravação a um arquivo em DebugFS para ativar a coleta de dados de depuração.
Geração de bugreport: o HAL de dumpstate lê arquivos DebugFS quando
DumpstateBoard() é invocado por dumpstate. Essas
informações fazem parte do relatório de bug.
Testes e validação específicos do dispositivo.
A tabela a seguir descreve como cada uma dessas três categorias tem
suporte no Android 12. O
seguinte só se aplica a builds userdebug, já que DebugFS não pode ser
montado 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 a inicialização.
O HAL Dumpstate executa isso durante a inicialização do HAL. Para ativar isso,
init monta DebugFS em builds de userdebug antes que o HAL seja inicializado.
Init chama umount() em DebugFS quando
a inicialização do dispositivo é concluída.
Geração de relatórios de bugs: o HAL de dumpstate lê
arquivos DebugFS, que se tornam parte do relatório de bugs.
Feito por dumpstate HAL em DumpstateBoard() quando invocado por dumpstate
(DumpstateDevice.cpp).
A ferramenta dumpstate (parte do framework do Android) garante que o DebugFS
seja montado durante a invocação.
Testes e validação específicos do dispositivo
Raiz e shell do adb. Monte DebugFS no shell do adb com
acesso raiz1.
1Para montar DebugFS em adb shell com
acesso raiz, use este comando:
adb shell mount -t debugfs debugfs /sys/kernel/debug.
Ações necessárias do parceiro
Os parceiros precisam implementar o seguinte com base nessas mudanças nos
dispositivos Android 12:
Fazer com que todas as inicializações de tempo de inicialização de nós DebugFS ocorram
durante a inicialização do HAL de dumpstate. Para conferir um exemplo de como fazer isso, consulte
DNM:
Example for boot time initialization of DebugFS files.
Não permita o acesso a DebugFS durante a execução. As seguintes exceções
se aplicam:
Geração de relatórios de bugs (vem do HAL de dumpstate)
Teste e validação (acessível por adb root e shell
- verifique se o DebugFS foi montado primeiro)
Os desenvolvedores podem definir a propriedade persistente de depuração
persist.dbg.keep_debugfs_mounted para manter DebugFs montado em
reinicializações em builds de userdebug e eng.
Os testes de compliance do GTS garantem que o sistema de arquivos DebugFS não seja
montado em builds do usuário. As declarações neverallow da Sepolicy garantem que, em dispositivos
que são iniciados no Android 12 ou mais recente, processos não autorizados não tenham
acesso a DebugFs.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Use DebugFS in Android 12\n\nDevices that launch with Android 12 using kernel\nversions higher than v5.4 are required to ship with the GKI kernel. So that\npartners can access `DebugFS` in userdebug builds while they develop on the GKI\nkernel, the kernel config `CONFIG_DEBUG_FS` is enabled in the GKI defconfig.\n**Never mount `DebugFS` in user builds** for devices\nlaunching on Android 12.\n\n\nUserdebug builds have better test coverage than user builds and get heavily\ntested throughout the development cycle. The following plan minimizes the\ndifference between the two build types with respect to `DebugFS` access, and\nprovides these benefits:\n\n- Prevents userdebug builds from accidentally depending on `DebugFS` for new functionality\n- Ensures that any existing functionality that's broken by the lack of DebugFS is known early in the development cycle\n\n\nDebugfs accesses **in userdebug builds** are categorized as\nfollows:\n\n1. `DebugFS` file initializations during device boot, such as a write access to a file in `DebugFS` to turn on debug data collection.\n2. Bugreport generation: The dumpstate HAL reads `DebugFS` files when `DumpstateBoard()` is invoked by `dumpstate`. This information becomes part of the bug report.\n3. Device-specific testing and validation.\n\nThe following table describes how each of these three categories is\nsupported in Android 12. Note that the\nfollowing only applies to userdebug builds since `DebugFS` can't be\nmounted in user builds.\n\n| Use case | Android 12 userdebug build |\n|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **One-time `DebugFS` files initialization, during startup** . This access **happens only once** during boot time. | Dumpstate HAL performs this during HAL initialization. To enable the same, init mounts `DebugFS` in userdebug builds before the HAL initializes. `Init` calls `umount()` on `DebugFS` when the device has completed booting. |\n| **Bugreport generation** : The dumpstate HAL reads `DebugFS` files, which become part of the bug report. | Done by dumpstate HAL within `DumpstateBoard()` when invoked by dumpstate ([DumpstateDevice.cpp](https://cs.android.com/android/platform/superproject/+/android-latest-release:device/google/trout/hal/dumpstate/1.1/DumpstateDevice.cpp)). The dumpstate tool (part of the Android framework) ensures that `DebugFS` mounts during the invocation. |\n| **Device-specific testing and validation** | Adb root and shell. Mount `DebugFS` from the adb shell with root access^1^. |\n\n\n^1^To mount `DebugFS` from `adb shell` with\nroot access, use this command:\n\n`adb shell mount -t debugfs debugfs /sys/kernel/debug`.\n| **Note:**\n|\n| - **Android 12: There aren't any new APIs for accessing the\n| dumpstate HAL**.\n| - **Android 12: New clients don't have access** to the dumpstate HAL.\n| - Only the dumpstate HAL process and vendor-modprobe tool can access `DebugFS` for Android 12 launching devices, since the kernel modules it loads might create `DebugFS` files.\n\nRequired partner actions\n------------------------\n\n\nPartners must enact the following based on these changes in\nAndroid 12 devices:\n\n- Make all boot time initializations of `DebugFS` nodes happen during the dumpstate HAL initialization. For an example of how to do this, see [DNM:\n Example for boot time initialization of `DebugFS` files](https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1426054).\n- **Don't allow `DebugFS` access during runtime. The following exceptions\n apply:**\n - Bugreport generation (comes from the dumpstate HAL)\n - Testing and validation (accessible by `adb root` and `shell` - ensure that DebugFS is mounted first)\n\nDevelopers can set the debug persistent property\n`persist.dbg.keep_debugfs_mounted` to keep `DebugFs` mounted across\nreboots on userdebug and eng builds.\n\nGTS compliance tests ensure that the `DebugFS` filesystem isn't\nmounted in user builds. Sepolicy `neverallow` statements ensure that in devices\nlaunching on Android 12 or higher, unauthorized processes aren't provided\naccess to `DebugFs`."]]