AOSP 소스 공개가 너무 늦어 개발자들이 버그 신고를 위해 라이브러리를 역어셈블함

6 days ago 20

Android 17의 2026년 9월 빌드에서 wcscspn()과 wcspbrk()의 유니코드 처리 오류가 확인됨. 공개 소스와 실제 탑재 코드가 달라 신고자는 배포된 libc.so를 역어셈블해 원인을 분석함 검색 대상 집합이 U+0100 미만 문자 두 개 이상으로만 구성되면, 문자열의 U+0100 이상 문자를 집합에 포함된 것으로 잘못 처리함. 이모지나 한중일 문자 등이 있는 문자열에서 ASCII 구분자를 찾는 코드가 영향을 받음 원인은 256바이트 조회 테이블을 사용하는 검색 경로에 있음. 집합에 속할 수 없는 U+0100 이상 문자를 건너뛰어야 하지만 검색을 중단하며, wcscspn()을 호출하는 wcspbrk()도 같은 오류를 물려받음 Visual Pinball에서는 이모지가 들어간 VBScript 주석 때문에 테이블 로딩이 실패하고, 일부 유니코드 경로를 와일드카드 패턴으로 오인함. 하위 프로젝트에서는 해당 호출을 단순 반복문으로 대체해 우회함 유지보수 참여자는 최신 개발 코드에도 문제가 남아 있는 것으로 보인다고 답하고 테스트 추가와 수정 백포트를 추진하겠다고 밝힘. 기존 테스트의 잘못된 기대값도 발견됐으며, 제공된 논의에는 수정 완료나 배포 결과가 없음 공개 소스와 실제 배포 코드의 차이 공개된 android17-release 소스 android-17.0.0_r1 은 2026년 6월 버전으로, external/llvm-libc의 정상적인 wchar_t 중첩 반복문 구현을 사용함 9월 빌드에 탑재된 구현은 이와 달라, 신고자는 6월과 9월 배포 사이에 회귀가 발생했다고 판단함 실제 원인 분석에는 /apex/com.android.runtime/lib64/bionic/libc.so의 역어셈블 결과를 사용함 유지보수 참여자 enh-google은 분석이 타당하며 최신 개발 코드인 ToT에도 문제가 남아 있는 것으로 보인다고 답함 공개 소스를 확인하라고 안내하려 했지만, android-latest-release에는 4월의 관련 변경조차 반영되지 않은 것으로 보인다고 덧붙임 다른 참여자는 android-latest-release는 매니페스트 브랜치, android17-release는 Git 브랜치라고 구분하고 Android 17 bionic 소스를 안내함 이에 Pixel에서 실제 실행 중이며 안정 버전이 된 지 한 달이 넘은 Android 17 QPR1의 소스는 어디에 있는지 묻는 후속 댓글이 달림 영향을 받는...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵