A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
I dispositivi lanciati con Android 12 che utilizzano versioni del kernel superiori alla v5.4 devono essere forniti con il kernel GKI. Affinché i partner possano accedere a DebugFS nelle build userdebug durante lo sviluppo sul kernel GKI, la configurazione del kernel CONFIG_DEBUG_FS è attivata nel defconfig GKI.
Non montare mai DebugFS nelle build utente per i dispositivi avviati su Android 12.
Le build userdebug hanno una copertura dei test migliore rispetto alle build user e vengono sottoposte a test approfonditi durante il ciclo di sviluppo. Il seguente piano riduce al minimo la differenza tra i due tipi di build in termini di accesso a DebugFS e offre i seguenti vantaggi:
Impedisce alle build userdebug di dipendere accidentalmente da DebugFS
per le nuove funzionalità
Garantisce che qualsiasi funzionalità esistente non funzionante a causa della mancanza di DebugFS sia nota nelle prime fasi del ciclo di sviluppo
Gli accessi a debugfs nelle build userdebug sono classificati come segue:
Inizializzazione dei file DebugFS durante l'avvio del dispositivo, ad esempio un accesso in scrittura a un file in DebugFS per attivare la raccolta dei dati di debug.
Generazione di segnalazioni di bug: l'HAL dumpstate legge i file DebugFS quando DumpstateBoard() viene invocato da dumpstate. Queste informazioni fanno parte della segnalazione di bug.
Test e convalida specifici del dispositivo.
La tabella seguente descrive il supporto di ciascuna di queste tre categorie in Android 12. Tieni presente che quanto segue si applica solo alle build userdebug, poiché DebugFS non può essere montato nelle build user.
Caso d'uso
Build userdebug di Android 12
Inizializzazioni una tantum dei file DebugFS durante l'avvio.
Questo accesso si verifica una sola volta durante il boot.
L'HAL Dumpstate esegue questa operazione durante l'inizializzazione dell'HAL. Per attivare la stessa operazione,
init monta DebugFS nelle build userdebug prima dell'inizializzazione dell'HAL.
Init chiama umount() su DebugFS al termine dell'avvio del dispositivo.
Generare report di bug: l'HAL dumpstate legge i file DebugFS, che diventano parte del report di bug.
Eseguito dall'HAL dumpstate entro DumpstateBoard() quando viene chiamato da dumpstate
(DumpstateDevice.cpp).
Lo strumento dumpstate (parte del framework Android) assicura che DebugFS
venga montato durante l'invocazione.
Test e convalida specifici per il dispositivo
Adb root e shell. Monta DebugFS dalla shell adb con accesso root1.
1 Per montare DebugFS da adb shell con accesso root, utilizza questo comando:
adb shell mount -t debugfs debugfs /sys/kernel/debug.
Azioni richieste dal partner
In base a queste modifiche, i partner devono implementare quanto segue sui dispositivi Android 12:
Non consentire l'accesso a DebugFS durante l'esecuzione. Si applicano le seguenti eccezioni:
Generazione di segnalazioni di bug (proveniente dall'HAL dumpstate)
Test e convalida (accessibili da adb root e shell
- assicurati di montare prima DebugFS)
Gli sviluppatori possono impostare la proprietà persistente di debug
persist.dbg.keep_debugfs_mounted per mantenere DebugFs montato durante i riavvii nelle build userdebug ed eng.
I test di conformità GTS assicurano che il file system DebugFS non sia montato nelle build utente. Le istruzioni neverallow Sepolicy assicurano che nei dispositivi avviati su Android 12 o versioni successive, le procedure non autorizzate non abbiano accesso a DebugFs.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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`."]]