Ab dem 27. März 2025 empfehlen wir, android-latest-release anstelle von aosp-main zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Sanitizer sind eine Gruppe von dynamischen Analysetools, die Fehler in Programmen zur Laufzeit durch zusätzliche Instrumentierung finden, die vom Compiler eingefügt wurde. Dazu gehört auch die Erkennung von Problemen mit der Speichersicherheit. Android unterstützt die folgenden Sanitizer und empfiehlt deren Verwendung:
Hardware-gestützter AddressSanitizer (HWASan)
HWASan ist der Haupt-Sanitizer zur Erkennung von Problemen mit der Speichersicherheit. Er erfordert ARM64 und kann Folgendes erkennen:
Stack- und Heap-Buffer-Overflow oder -Underflow
Heap-Nutzung nach dem Freigeben
Stack-Nutzung nach Bereich
Stapelnutzung nach Rückgabe
Doppelfrei oder kostenlos in der Wildnis
Address Sanitizer (ASan)
ASan ist ein Tool, das HWASan ähnelt. Es funktioniert auf mehr Plattformen, wird aber unter Android nicht unterstützt.
KernelAddress sanitizer (KASan)
KASan ist das Kernel-Äquivalent der oben genannten Userspace-Tools. Sie verwenden dieselbe Compilerimplementierung. KASan und ASan/HWASan ergänzen sich, da ein Tool auf den Kernel und das andere auf den Userspace angewendet wird.
Wir empfehlen, beide gleichzeitig zu aktivieren, um die Anzahl der Buildkonfigurationen und die Testmatrix zu reduzieren.
UndefinedBehaviorSanitizer (UBSan)
UBSan führt eine Instrumentierung zur Kompilierungszeit durch, um verschiedene Arten von nicht speichersicherem undefiniertem Verhalten zu prüfen. Dazu gehören die Überprüfung von Überlauf bei vorzeichenbehafteten und nicht vorzeichenbehafteten Ganzzahlen (IntSan), Grenzwertprüfungen für Arrays mit statischer Größe (BoundsSan) und viele andere Arten von nicht definiertem Verhalten. IntSan und BoundsSan eignen sich auch als Sicherheitsmaßnahme für die Produktion.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (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."]]