2026년부터 트렁크 안정 개발 모델과 일치하고 생태계의 플랫폼 안정성을 보장하기 위해 2분기와 4분기에 AOSP에 소스 코드를 게시합니다. AOSP를 빌드하고 기여하려면 aosp-main 대신 android-latest-release를 사용하는 것이 좋습니다. android-latest-release 매니페스트 브랜치는 항상 AOSP에 푸시된 최신 버전을 참조합니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
새니타이저는 컴파일러에 의해 삽입된 추가 계측을 통해 런타임 시 프로그램의 실수를 찾아내는 동적 분석 도구 그룹입니다. 여기에는 메모리 안전 문제를 감지하는 것이 포함됩니다. Android가 지원하는 다음과 같은 새니타이저를 사용하는 것이 좋습니다.
하드웨어 지원 AddressSanitizer (HWASan)
HWASan은 메모리 안전 문제를 감지하는 기본 새니타이저입니다. ARM64가 필요하며 다음을 감지합니다.
스택 및 힙 버퍼 오버플로우 또는 언더플로우
프리 후 힙 사용
범위를 벗어난 스택 사용
반환 후 스택 사용
더블 프리 또는 와일드 프리
Address Sanitizer (ASan)
ASan은 HWASan과 비슷한 도구입니다. 더 많은 플랫폼에서 작동하지만 Android에서는 지원되지 않습니다.
KernelAddress Sanitizer (KASan)
KASan은 위 사용자 공간 도구의 커널 버전입니다. 동일한 컴파일러 구현을 공유합니다. KASAN과 ASan/HWASan은 한 도구가 커널에 적용되고 다른 도구는 사용자 공간에 적용되므로 상호 보완적입니다.
빌드 구성 수를 줄이고 테스트 매트릭스를 줄이려면 두 가지를 동시에 사용 설정하는 것이 좋습니다.
UndefinedBehavior Sanitizer (UBSan)
UBSan은 컴파일 시간을 계측하여 다양한 유형의(메모리 안전 이외) 정의되지 않은 동작을 검사합니다. 여기에는 부호 있는 정수 및 부호 없는 정수 오버플로 검사(IntSan), 정적 크기 배열의 범위 검사(BoundsSan) 및 많은 다른 유형의 정의되지 않은 동작이 포함됩니다. IntSan 및 BoundsSan은 프로덕션의 보안 완화 역할로 사용 설정하는 데도 적합합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(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-27(UTC)"],[],[]]