Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
GWP-ASan и KFENCE
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
GWP-ASan и KFENCE — это инструменты вероятностного обнаружения памяти для пользовательского пространства и ядра соответственно. Если этот параметр включен, небольшое количество выделений защищено дополнительными страницами памяти, окружающими выделенную память. Это позволяет обнаруживать переполнение буфера и использование после освобождения с незначительными затратами на производительность. Даже при небольшой частоте выборки для защищенных выделений при масштабном развертывании они могут эффективно обнаруживать ошибки безопасности памяти. С момента своего появления эти инструменты помогли выявить многочисленные ошибки платформы и оказались ценным инструментом для повышения стабильности и безопасности. Мы рекомендуем поставщикам включать их и внимательно следить за ошибками, обнаруженными на устройствах конечных пользователей.
Разработчикам следует проверять наличие сбоев, проверяя /data/tombstones
, logcat
или отслеживая конвейер DropboxManager
поставщика на наличие ошибок конечных пользователей.
Дополнительную информацию см. в нашей документации по отладке собственного кода Android.
Отладка собственного кода платформы arrow_forward GWP-ASan для обнаружения ошибок безопасности пользовательской памяти
GWP-ASan был представлен в Android 11 для распределения кучи пользовательского пространства. Когда GWP-ASan обнаруживает ошибку, он записывает отчет о сбое с Cause: [GWP-ASan]:
и завершает процесс. Отчеты об ошибках содержат дополнительную информацию о выделении и освобождении, которая упрощает выявление основной причины.
GWP-ASan включается случайным образом при запуске для 1% системных процессов или приложений, а также для приложений, которые устанавливают android:gwpAsanMode
в своем файле AndroidManifest.xml
.
ГВП- arrow_forward KFENCE для обнаружения ошибок безопасности памяти ядра
В Android 12 появился KFENCE для распределения кучи ядра. Когда KFENCE обнаруживает ошибку, он записывает отчет о сбое, начинающийся с BUG: KFENCE,
отключает защитные страницы и продолжает выполнение. Это включает механизм обнаружения ошибок ядра, который минимально влияет на взаимодействие с пользователем.
Чтобы узнать больше о KFENCE, см. документацию, доступную на https://www.kernel.org.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 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)"]]