Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release вместо aosp-main для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Санитайзеры — это группа инструментов динамического анализа, которые находят ошибки в программах во время выполнения с помощью дополнительных инструментов, вставленных компилятором. Это включает в себя обнаружение проблем с безопасностью памяти . Android поддерживает и настоятельно рекомендует использовать следующие дезинфицирующие средства:
Аппаратный адрессанитайзер (HWASan)
HWAsan — это основное дезинфицирующее средство, обеспечивающее обнаружение проблем с безопасностью памяти. Он требует ARM64 и может обнаружить:
Переполнение или опустошение буфера стека и кучи
Куча использования после бесплатного
Использование стека после области видимости
Использование стека после возврата
Двойное бесплатное или дикое бесплатное
Дезинфицирующее средство для адресов (ASan)
ASan — это инструмент, похожий на HWASan. Он работает на других платформах, но не поддерживается на Android.
Дезинфицирующее средство KernelAddress (КАСан)
KASan — это аналог ядра описанных выше инструментов пользовательского пространства. Он использует ту же реализацию компилятора. KASan и ASan/HWASan дополняют друг друга, поскольку один инструмент применяется к ядру, а другой — к пользовательскому пространству. Мы рекомендуем включить оба варианта одновременно, чтобы уменьшить количество конфигураций сборки и уменьшить матрицу тестирования.
Дезинфицирующее средство UndefineBehavior (UBSan)
UBSan выполняет инструментирование во время компиляции для проверки различных типов неопределенного поведения (небезопасного для памяти). Сюда входит проверка переполнения знаковых и беззнаковых целых чисел (IntSan), проверка границ массивов статического размера (BoundsSan) и множество других типов неопределенного поведения. IntSan и BoundsSan также подходят для включения в производство в качестве меры по снижению безопасности.
Контент и образцы кода на этой странице предоставлены по лицензиям. 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,["# Sanitizers\n\n| **Note:** This page talks about sanitizers for Android platform development. For sanitizers for app development, refer to the [NDK documentation](https://developer.android.com/ndk/guides/memory-debug).\n\nThe sanitizers are a group of dynamic analysis tools that find mistakes in\nprograms at runtime through additional instrumentation that was inserted by the\ncompiler. This includes detecting\n[memory safety](/docs/security/test/memory-safety) issues. Android supports\nand strongly recommends usage of the following sanitizers:\n\nHardware-assisted AddressSanitizer (HWASan)\n-------------------------------------------\n\n[HWASan](/docs/security/test/hwasan) is the main sanitizer to provide detection\nfor memory safety problems. It requires ARM64 and can detect:\n\n- Stack and heap buffer overflow or underflow\n- Heap use after free\n- Stack use after scope\n- Stack use after return\n- Double free or wild free\n\nAddress sanitizer (ASan)\n------------------------\n\n[ASan](/docs/security/test/asan) is a tool similar to HWASan. It works on more\nplatforms, but is unsupported on Android.\n\nKernelAddress sanitizer (KASan)\n-------------------------------\n\n[KASan](/docs/security/test/kasan) is the kernel counterpart of the userspace\ntools above. It shares the same compiler implementation. KASan and ASan/HWASan\nare complementary as one tool applies to the kernel and another to userspace.\nWe recommend enabling both at the same time to reduce the number of build\nconfigurations and to reduce the testing matrix.\n\nUndefinedBehavior sanitizer (UBSan)\n-----------------------------------\n\n[UBSan](/docs/security/test/ubsan) performs compile-time instrumentation to\ncheck for various types of (non memory-safety) undefined behavior. This includes\nsigned and unsigned integer overflow checking (IntSan), bounds checks for\nstatically-sized arrays (BoundsSan), and lots of other types of undefined\nbehavior. IntSan and BoundsSan are also suitable for enabling in production as a\nsecurity mitigation."]]