Android 11 zaostrzy ukryte ograniczenia API i usunie metarefleksję

W Androidzie 9 Pie wprowadzono ukryte ograniczenia API, a teraz Android 11 zaostrzy te ograniczenia, aby usunąć obejście metaodbicia.

Dla tych, którzy nie wiedzą, Google wprowadził dość irytującą zmianę w Androidzie 9 Pie, która dotyczy entuzjastów programistów, którzy chcą przesuwać granice tego, co jest możliwe w Androidzie. Mówię oczywiście o dodaniu ukrytej czarnej listy API. Mając na celu promowanie stabilności aplikacji, Google zablokował dostęp do większości ukrytych interfejsów API – interfejsów API, które istnieją w środowisku Androida, ale nie są udokumentowane w zestawie SDK systemu Android. Dostęp do tych interfejsów API można było uzyskać poprzez odbicie aż do Androida 9 Pie, a obecnie nadal można uzyskać do nich dostęp za pomocą obejścia metaodbicia.

Jeśli nie masz pojęcia, o czym mówię, prawdopodobnie powinieneś przeczytaj artykuł, który napisałem kilka miesięcy temu na ten temat. Wyjaśni wszystko, co musisz wiedzieć o metaodbiciu i jego działaniu. Niestety wygląda na to, że Google zauważyło to obejście (ups). W ramach nowego zobowiązania wobec AOSP firma Google wprowadziła kod „wzmacniający” ukryte kontrole API Androida. Zasadniczo oznacza to, że meta refleksja nie będzie już działać.

Oczywiście nie będzie to miało wpływu na wszystkie aplikacje. Podobnie jak w przypadku oryginalnej czarnej listy interfejsów API, będzie to miało wpływ tylko na aplikacje przeznaczone dla systemu Android 11 (poziom interfejsu API 30) lub nowszego. Nadal możesz kierować na poziom API 29 lub niższy i używać metaodbicia. Ze Sklepem Play stopniowo zwiększając minimalne docelowe wymagania SDKJednak nie będzie to skuteczne rozwiązanie przez długi czas.

W tej chwili nie znam żadnych obejść dla aplikacji przeznaczonych dla interfejsu API 30. Do Androida 11 jeszcze jednak daleko, więc jest duża szansa, że ​​ktoś znajdzie sposób na przywrócenie dostępu. W międzyczasie, jeśli używasz ukrytych interfejsów API, możesz chcieć złożyć wniosek o ich upublicznienie w Androidzie 11. Jeśli jesteś dobry w analizowaniu C++ i Java i chcesz spróbować „naprawić” tę małą czarną listę, spójrz na odpowiednie zatwierdzenie.