AOSP 소스 지연, 개발자들이 라이브러리 역분석

원제: AOSP Source Releases Are So Late Developers Disassemble Libraries to Report Bugs

왜 중요한가

AOSP 소스 공개 지연이 개발자 생태계 신뢰를 저하시키고, 오픈소스 원칙과의 괴리를 심화시키고 있다.

2026년 10월 12일, 개발자 francisdb가 Android 17 NDK 버그 트래커에 이슈 #2260을 등록했다. Android 17 September 빌드(CP3A.260905.009)에서 wcscspn()/wcspbrk() 함수가 U+0100 이상의 wchar_t 문자를 무조건 일치 항목으로 처리하는 버그가 Pixel 7, Pixel 8a 등에서 확인됐다.

문제의 핵심은 함수 동작 오류다. U+0100 이상의 문자(이모지, CJK, 키릴, 그리스 문자 등)가 포함된 와이드 문자열을 ASCII 구분자로 스캔할 때, wcscspn()과 wcspbrk()가 해당 문자를 거부 집합에 없음에도 일치로 판단해 즉시 멈춘다. wcsspn(), wcschr(), wcsrchr() 등 다른 함수는 정상 동작한다.

더 큰 문제는 버그 원인 추적 과정에서 드러났다. 공개된 android17-release 소스(android-17.0.0_r1, 2026년 6월)에는 external/llvm-libc 기반의 정상 구현이 포함돼 있다. 그러나 9월 빌드에 탑재된 코드는 이와 다르며, 소스는 아직 공개되지 않았다. 결국 제보자는 배포된 바이너리를 직접 역어셈블해 실제 실행 코드를 파악한 뒤 버그를 특정할 수밖에 없었다.

역어셈블 결과, 9월 빌드의 wcscspn()은 SIMD 최적화 경로를 사용하는 것으로 추정되며, 이 경로에서 0x100 이상 문자 처리 로직이 잘못 구현된 것으로 보인다. Nothing Phone 2(Android 16, 2026년 8월 패치)에서는 해당 버그가 재현되지 않아, 회귀 시점은 6월~9월 사이로 좁혀진다.

이 사례는 단순 버그 리포트를 넘어 AOSP 소스 공개 지연 문제를 다시 수면 위로 끌어올렸다. 개발자들이 최신 빌드에 대한 소스 없이 바이너리 역분석에 의존해야 하는 구조적 문제가 고스란히 드러난 셈이다.

출처

github.com — 원문 읽기 →