안드로이드 17의 최신 빌드에서 유니코드 문자열 처리 함수인 `wcscspn()`과 `wcspbrk()`에 심각한 오류가 발견되었습니다. 문제는 구글이 AOSP(Android Open Source Project) 소스 코드를 제때 공개하지 않아, 해당 버그를 발견한 개발자가 직접 배포된 `libc.so` 라이브러리를 역어셈블(disassemble)하여 원인을 분석해야 했다는 점입니다. 이는 오픈소스 생태계의 투명성과 협력 원칙에 위배되는 행태로, 개발자들의 불만을 사고 있습니다.
이번 유니코드 처리 오류는 검색 대상 집합에 U+0100 미만 문자가 두 개 이상 있을 경우, 문자열 내 U+0100 이상(예: 이모지, 한중일 문자)의 문자를 잘못 처리하는 방식으로 발생합니다. 이로 인해 이모지가 포함된 VBScript 주석 때문에 테이블 로딩이 실패하거나, 유니코드 경로를 와일드카드 패턴으로 오인하는 등 실제 애플리케이션에서 기능 장애가 나타나고 있습니다. 특히 Visual Pinball과 같은 앱에서는 이 문제로 인해 이모지 주석이 있는 테이블을 로드하지 못하거나, 유니코드 경로를 와일드카드 패턴으로 잘못 인식하는 오류가 발생하여 하위 프로젝트에서 해당 호출을 단순 반복문으로 대체하는 방식으로 우회해야 했습니다. 구글 유지보수 참여자는 최신 개발 코드에도 문제가 남아 있음을 인정하고, 테스트 추가와 수정 백포트(backport)를 추진하겠다고 밝혔습니다.
이번 사태는 구글의 AOSP 소스 공개 정책에 대한 근본적인 질문을 던지고 있습니다. 공개 소스와 실제 배포 코드 간의 불일치, 그리고 소스 공개 지연은 개발자들이 버그를 신속하게 파악하고 해결하는 데 큰 장애물이 됩니다. 일부에서는 최근 EU의 사이버 복원력법(Cyber Resilience Act)과 같은 규제가 구글이 협력사들에게 업데이트 완료 시간을 더 주기 위해 의도적으로 소스 공개를 늦추는 원인일 수 있다는 가설을 제기하기도 합니다. 이러한 정책은 안드로이드 생태계의 투명성을 저해하고, 개발자 커뮤니티의 참여를 위축시켜 장기적으로 안드로이드 플랫폼의 혁신과 안정성에 부정적인 영향을 미칠 수 있습니다. 구글은 개발자들의 신뢰를 회복하고 안드로이드 생태계의 건강한 발전을 위해 소스 공개 정책에 대한 명확한 입장과 개선 방안을 제시해야 할 것입니다.