В Android 9 Pie были введены скрытые ограничения API, а теперь в Android 11 эти ограничения будут ужесточены и удален обход мета-отражения.
Для тех из вас, кто не в курсе, Google представил довольно неприятное изменение в Android 9 Pie, которое беспокоит разработчиков-энтузиастов, стремящихся расширить границы возможностей Android. Я говорю, конечно, о добавлении скрытого черного списка API. Стремясь повысить стабильность приложений, Google заблокировал доступ к большинству скрытых API — API, которые существуют в платформе Android, но недокументированы в Android SDK. Доступ к этим API можно было получить через отражение до Android 9 Pie, и в настоящее время к ним все еще можно получить доступ с помощью обходного пути мета-отражения.
Если вы понятия не имеете, о чем я говорю, вам, вероятно, следует прочитай статью, которую я написал несколько месяцев назад на эту тему. Он объяснит все, что вам нужно знать о мета-отражении и о том, как оно работает. К сожалению, похоже, что Google заметил это обходное решение (упс). В новом коммите к AOSP Google представил код для «усиления» скрытых проверок API Android. По сути, это означает, что мета-отражение больше не будет работать.
Конечно, это повлияет не на все приложения. Как и в случае с исходным черным списком API, это затронет только приложения, предназначенные для Android 11 (уровень API 30) или новее. Вы по-прежнему можете настроить таргетинг на уровень API 29 или ниже и использовать мета-отражение. С помощью Play Store постепенное увеличение минимальных требований к целевому SDK, однако это решение не будет действительным в течение длительного времени.
В настоящее время я не знаю никаких обходных путей для приложений, ориентированных на API 30. Однако до выхода Android 11 еще далеко, поэтому есть большая вероятность, что кто-то найдет способ восстановить доступ. Между тем, если вы используете скрытые API, возможно, вам захочется подать заявку на их обнародование в Андроид 11. Если вы хорошо разбираетесь в анализе C++ и Java и хотите попытаться «исправить» эту маленькую ситуацию с черным списком, взгляните на соответствующий коммит.