À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les appareils qui démarrent avec Android 12 à l'aide de versions de kernel supérieures à la version 5.4 doivent être livrés avec le kernel GKI. Pour que les partenaires puissent accéder à DebugFS dans les builds userdebug pendant leur développement sur le kernel GKI, la configuration du kernel CONFIG_DEBUG_FS est activée dans la defconfig GKI.
Ne jamais monter DebugFS dans les builds utilisateur pour les appareils lancés sur Android 12.
Les builds userdebug offrent une meilleure couverture de test que les builds utilisateur et sont soumis à de nombreux tests tout au long du cycle de développement. Le plan suivant minimise la différence entre les deux types de builds en ce qui concerne l'accès DebugFS et offre les avantages suivants:
Empêche les builds userdebug de dépendre accidentellement de DebugFS pour de nouvelles fonctionnalités
Assurez-vous que toute fonctionnalité existante qui est endommagée par l'absence de DebugFS est connue dès le début du cycle de développement.
Les accès Debugfs dans les builds userdebug sont classés comme suit:
Initialisations de fichiers DebugFS lors du démarrage de l'appareil, telles qu'un accès en écriture à un fichier dans DebugFS pour activer la collecte de données de débogage.
Génération d'un rapport de bug: le HAL dumpstate lit les fichiers DebugFS lorsque DumpstateBoard() est appelé par dumpstate. Ces informations font partie du rapport de bug.
Tests et validations spécifiques à chaque appareil
Le tableau suivant décrit la prise en charge de chacune de ces trois catégories dans Android 12. Notez que ce qui suit ne s'applique qu'aux builds userdebug, car DebugFS ne peut pas être installé dans les builds utilisateur.
Cas d'utilisation
Build userdebug d'Android 12
Initialisation unique des fichiers DebugFS au démarrage
Cet accès ne se produit qu'une seule fois au démarrage.
Le HAL Dumpstate effectue cette opération lors de l'initialisation du HAL. Pour activer cette fonctionnalité, init associe DebugFS dans les builds userdebug avant l'initialisation du HAL.
Init appelle umount() sur DebugFS une fois le démarrage de l'appareil terminé.
Génération de rapports de bugs: le HAL dumpstate lit les fichiers DebugFS, qui font partie du rapport de bug.
Effectué par le HAL dumpstate dans DumpstateBoard() lorsqu'il est appelé par dumpstate (DumpstateDevice.cpp).
L'outil dumpstate (qui fait partie du framework Android) garantit que DebugFS est installé lors de l'appel.
Tests et validation spécifiques à l'appareil
Adb root et shell. Montez DebugFS à partir de l'interface système adb avec un accès root1.
1Pour monter DebugFS à partir de adb shell avec un accès racine, utilisez la commande suivante:
adb shell mount -t debugfs debugfs /sys/kernel/debug.
Actions requises du partenaire
Les partenaires doivent appliquer les mesures suivantes en fonction de ces modifications sur les appareils Android 12:
N'autorisez pas l'accès à DebugFS au moment de l'exécution. Les exceptions suivantes s'appliquent:
Génération d'un rapport de bug (provenant du HAL dumpstate)
Test et validation (accessibles par adb root et shell : assurez-vous que DebugFS est installé en premier)
Les développeurs peuvent définir la propriété persistante de débogage persist.dbg.keep_debugfs_mounted pour maintenir DebugFs monté lors des redémarrages sur les builds userdebug et eng.
Les tests de conformité GTS garantissent que le système de fichiers DebugFS n'est pas installé dans les builds utilisateur. Les instructions neverallow de Sepolicy garantissent que, sur les appareils lancés sur Android 12 ou version ultérieure, les processus non autorisés ne sont pas autorisés à accéder à DebugFs.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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`."]]