Android 11은 숨겨진 API 제한을 강화하고 메타 반사를 제거합니다.

Android 9 Pie에는 숨겨진 API 제한 사항이 도입되었으며 이제 Android 11에서는 이러한 제한 사항을 강화하여 메타 반사 우회를 제거합니다.

잘 모르는 사람들을 위해 Google은 Android에서 가능한 것의 경계를 넓히려는 열성적인 개발자와 관련하여 Android 9 Pie에 다소 성가신 변경 사항을 도입했습니다. 물론 저는 숨겨진 API 블랙리스트 추가에 대해 이야기하고 있습니다. 애플리케이션 안정성을 높이기 위해 Google은 대부분의 숨겨진 API(Android 프레임워크에는 존재하지만 Android SDK에는 문서화되지 않은 API)에 대한 액세스를 차단했습니다. 이러한 API는 Android 9 Pie까지 리플렉션을 통해 액세스할 수 있었으며 현재는 메타 리플렉션 해결 방법을 사용하여 계속 액세스할 수 있습니다.

내가 무슨 말을 하는지 전혀 모른다면 아마도 내가 쓴 글을 읽어봐 몇 달 전에 이 주제에 대해. 메타 리플렉션과 작동 방식에 대해 알아야 할 모든 것을 설명합니다. 불행하게도 Google이 이 해결 방법을 알아차린 것 같습니다. AOSP에 대한 새로운 커밋에서 Google은 Android의 숨겨진 API 검사를 '강화'하는 코드를 도입했습니다. 이는 기본적으로 메타 리플렉션이 더 이상 작동하지 않음을 의미합니다.

물론 이것이 모든 앱에 영향을 미치는 것은 아닙니다. 원래 API 블랙리스트와 마찬가지로 Android 11(API 레벨 30) 이상을 대상으로 하는 앱만 영향을 받습니다. 여전히 API 레벨 29 이하를 대상으로 하고 메타 리플렉션을 사용할 수 있습니다. 플레이스토어와 함께 최소 대상 SDK 요구 사항이 점차 증가하고 있습니다.하지만 이는 오랫동안 유효한 해결 방법이 아닙니다.

현재로서는 API 30을 대상으로 하는 앱에 대한 해결 방법을 모릅니다. 하지만 Android 11은 아직 갈 길이 멀기 때문에 누군가가 액세스 권한을 복원할 방법을 찾을 가능성이 높습니다. 그동안 숨겨진 API를 사용하고 있다면 다음을 수행할 수 있습니다. 공개해 달라고 요청하세요 안드로이드 11에서. C++ 및 Java 분석에 능숙하고 이 작은 블랙리스트 상황을 "수정"하고 싶다면, 관련 커밋을 살펴보세요.