Android 17 9월 빌드 libc의 wcscspn과 wcspbrk가 U+0100 이상 문자를 잘못 일치로 처리, AOSP 소스 공개 지연 논란도 함께 불거짐
- wcscspn()과 wcspbrk()가 Android 17 9월 빌드(CP3A.260905.009)에서 U+0100 이상 문자를 구분 집합에 없어도 일치로 처리함
- 2글자 이상이고 모두 U+0100 미만인 집합에서만 발생하며, U+0100 이상 코드포인트 1,111,808개가 전부 잘못된 결과를 냄
- libc.so의 스캔 루프가 0x100 이상 문자를 만나면 멈추도록 되어 있고, wcspbrk()는 이 루프를 그대로 써서 같은 버그를 물려받음
- Visual Pinball의 libwinevbs는 주석 속 이모지 때문에 테이블 로딩에 실패하고, FileSystem.MoveFolder는 U+0100 이상 경로를 와일드카드로 오인함
- Pixel 7과 Pixel 8a는 영향을 받았고 Nothing Phone 2는 정상이며, 공개된 android-17.0.0_r1 소스의 구현은 올바름
Hacker News opinions
구글이 소스를 안 풀어도 AI 시대에는 별 소용 없음. 어차피 바이너리 디스어셈블해서 다 뜯어보는 세상이라서.
포크하자는 말이 나오는데 안드로이드는 너무 커서 포크해도 금방 뒤처짐. 아마존도 구글 속도를 못 따라가는 판이라 현실성 낮아 보임.
삼성이나 샤오미가 자체 포크를 만들 수도 있겠지만, 그 회사들이 사용자를 존중해온 기록을 보면 좀 씁쓸한 시나리오임.
나는 e/OS 폰 쓰는데 대안은 이미 있음. 문제는 채택이 안 된다는 거임.
구글이 애플보다는 나은 편이라고 봄. 픽셀은 부트로더 잠금 해제되고 소스도 나오는데, 애플은 iOS 소스 안 풀고 구형 기기도 잠금 해제 막아서 벽돌로 만들었음.
유럽 사이버 레질리언스 법(Regulation (EU) 2024/2847) 때문이라는 추측이 있음. 공개 패치는 바로 배포해야 해서 소스 공개 시점이 업데이트 시작점으로 잡히고, 그래서 OEM이 공개를 늦춘다는 얘기임.
법 조항에 보면 소스 공개 후 4개월 안에 업데이트를 제공해야 한다고 적혀 있음. 이게 맞으면 그냥 규제 위반 소지 아님? 규제 당국에 알려야 할 문제인 듯.
근데 삼성은 One UI 9을 이미 Android 17 기반으로 롤아웃했음. 시계가 이미 돌아갔다는 얘기인데, 내 생각엔 OEM 커스텀 레이어 기준으로 봐야 맞고 AOSP 공개 여부랑은 무관할 듯.