À 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.
GWP-ASan et KFENCE
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
GWP-ASan et KFENCE sont des outils de détection de la mémoire probabiliste pour l'espace utilisateur et le noyau, respectivement. Lorsqu'elle est activée, un petit nombre d'allocations sont protégées par des pages de mémoire supplémentaires qui entourent la mémoire allouée.
Cela permet de détecter les débordements de mémoire tampon et les utilisations après libération à un coût négligeable en termes de performances. Même avec un faible taux d'échantillonnage pour les allocations protégées, lorsqu'elles sont déployées à grande échelle, elles peuvent détecter efficacement les bugs de sécurité de la mémoire.
Depuis leur introduction, ces outils ont permis d'identifier de nombreux bugs de plate-forme et se sont révélés être un outil précieux pour améliorer la stabilité et la sécurité.
Nous encourageons les fournisseurs à les activer et à surveiller de près les bugs détectés sur les appareils des utilisateurs finaux.
Les développeurs doivent vérifier la présence de plantages en consultant /data/tombstones
, logcat
ou en surveillant le pipeline DropboxManager
du fournisseur pour détecter les bugs de l'utilisateur final.
Pour en savoir plus, consultez notre documentation sur le débogage du code natif Android.
Déboguer le code natif de la plate-forme Androidarrow_forward
GWP-ASan pour détecter les bugs de sécurité de la mémoire dans l'espace utilisateur
GWP-ASan a été introduit dans Android 11 pour les allocations de tas dans l'espace utilisateur. Lorsque GWP-ASan détecte un bug, il enregistre un rapport d'erreur avec Cause: [GWP-ASan]:
et met fin au processus. Les rapports de bugs contiennent des informations supplémentaires sur l'allocation et la désallocation, ce qui permet d'identifier plus facilement l'origine du problème.
GWP-ASan est activé de manière aléatoire au démarrage pour 1% des processus ou applications système, ainsi que pour les applications qui définissent android:gwpAsanMode
dans leur fichier AndroidManifest.xml
.
GWP-ASanarrow_forward
KFENCE pour détecter les bugs de sécurité de la mémoire du noyau
Android 12 a introduit KFENCE pour les allocations de tas de noyau. Lorsque KFENCE détecte un bug, il enregistre un rapport d'erreur à partir de BUG: KFENCE,
, désactive les pages de protection et poursuit l'exécution.
Cela permet d'activer un mécanisme de détection des bugs du noyau qui a un impact minimal sur l'expérience utilisateur.
Pour en savoir plus sur KFENCE, consultez la documentation disponible sur https://www.kernel.org.
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,["# GWP-ASan and KFENCE are probabilistic memory detection tools for userspace\nand the kernel, respectively. When enabled, a small number of allocations are\nguarded with additional memory pages that surround the allocated memory.\nThis allows detecting buffer overflows and use-after-frees at a negligible\nperformance overhead. Even with a small sample rate for the guarded allocations,\nwhen deployed at scale they can effectively detect memory safety bugs.\nSince their introduction these tools have helped identify numerous platform\nbugs and have proved to be a valuable tool for improving stability and security.\nWe encourage vendors to enable them and to closely monitor the bugs detected on\nend user devices.\n\n\nDevelopers should check the presence of crashes by checking\n`/data/tombstones`, `logcat` or by monitoring the vendor\n[DropboxManager](https://developer.android.com/reference/android/os/DropBoxManager)\npipeline for end user bugs.\n\n\nFor more information see our docs on debugging Android native\ncode.\n[Debugging Native Android Platform Codearrow_forward](/docs/core/tests/debug)\n\nGWP-ASan for detecting userspace memory safety bugs\n---------------------------------------------------\n\n\nGWP-ASan was introduced in Android 11 for userspace\nheap allocations. When GWP-ASan detects a bug, it records a crash report with\n`Cause: [GWP-ASan]:` and terminates the process. The bug reports\ncontain additional allocation and deallocation information that make it easier\nto identify the root cause.\n\n\nGWP-ASan is randomly enabled, at start-up, for 1% of system processes or\napps and for applications that set the `android:gwpAsanMode` in their\n`AndroidManifest.xml` file.\n[GWP-ASanarrow_forward](https://developer.android.com/ndk/guides/gwp-asan)\n\nKFENCE for detecting kernel memory safety bugs\n----------------------------------------------\n\n\nAndroid 12 introduced KFENCE for kernel heap\nallocations. When KFENCE detects a bug, it records a crash report starting\nwith `BUG: KFENCE,` disables the guard pages and continues execution.\nThis enables a kernel bug detection mechanism that minimally impacts the user\nexperience.\n\n\nTo learn more about KFENCE see the documentation available at [https://www.kernel.org](https://www.kernel.org/doc/html/latest/dev-tools/kfence.html)"]]