Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Sanitaryzery to grupa dynamicznych narzędzi do analizy, które wykrywają błędy w programach w czasie wykonywania za pomocą dodatkowego instrumentowania wstawionego przez kompilator. Obejmuje to wykrywanie problemów z bezpieczeństwem pamięci. Android obsługuje i zdecydowanie zaleca używanie tych środków do dezynfekcji:
AdresSanitizer wspomagany przez sprzęt (HWASan)
HWASan to główny oczyszczacz, który wykrywa problemy z bezpieczeństwem pamięci. Wymaga systemu ARM64 i może wykrywać:
przepełnienie lub niewykorzystanie bufora stosu i kupy
Użycie sterty po zwalnianiu
Użycie stosu po zakresie
Użycie stosu po powrocie
podwójne wolne lub dzikie wolne,
Sanitaryzator adresów (ASan)
ASan to narzędzie podobne do HWASan. Działa na większej liczbie platform, ale nie jest obsługiwany na Androidzie.
KernelAddressSanitizer (KASan)
KASan to odpowiednik narzędzi w przestrzeni użytkownika w jądrze. Ma ona tę samą implementację kompilatora. KASan i ASan/HWASan uzupełniają się, ponieważ jedno narzędzie dotyczy jądra, a drugie przestrzeni użytkownika.
Zalecamy włączenie obu opcji jednocześnie, aby zmniejszyć liczbę konfiguracji kompilacji i matrycy testów.
Sanitaryzator UndefinedBehavior (UBSan)
UBSan wykonuje instrumentację w czasie kompilacji, aby sprawdzić różne typy niezdefiniowanego zachowania (nie związanego z zabezpieczeniami pamięci). Obejmuje to sprawdzanie przepełnienia podpisanych i niepodpisanych liczb całkowitych (IntSan), sprawdzanie granic dla tablic o statycznym rozmiarze (BoundsSan) oraz wiele innych typów niezdefiniowanego zachowania. IntSan i BoundsSan nadają się też do włączenia w produkcji jako środek zapobiegający naruszeniom bezpieczeństwa.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]