O Android 11 fortalecerá as restrições ocultas da API e removerá a meta-reflexão

O Android 9 Pie introduziu restrições ocultas de API e agora o Android 11 irá endurecer essas restrições para remover o desvio de meta-reflexão.

Para aqueles que não sabem, o Google introduziu uma mudança bastante irritante no Android 9 Pie que preocupa os desenvolvedores entusiastas que buscam ultrapassar os limites do que é possível no Android. Estou falando, é claro, sobre a adição da lista negra de APIs ocultas. Com a intenção de promover a estabilidade do aplicativo, o Google bloqueou o acesso à maioria das APIs ocultas – APIs que existem na estrutura do Android, mas não estão documentadas no Android SDK. Essas APIs podiam ser acessadas por meio de reflexão até o Android 9 Pie e, atualmente, ainda podem ser acessadas usando a solução alternativa de meta-reflexão.

Se você não tem ideia do que estou falando, provavelmente deveria leia o artigo que escrevi há alguns meses sobre este assunto. Explicará tudo o que você precisa saber sobre meta-reflexão e como ela funciona. Infelizmente, parece que o Google percebeu essa solução alternativa (ops). Em um novo compromisso com o AOSP, o Google introduziu um código para “fortalecer” as verificações ocultas da API do Android. Basicamente, isso significa que a meta-reflexão não funcionará mais.

Claro, isso não afetará todos os aplicativos. Assim como na lista negra de APIs original, apenas aplicativos direcionados ao Android 11 (API de nível 30) ou posterior serão afetados. Você ainda pode direcionar a API de nível 29 ou inferior e usar meta-reflexão. Com a Play Store aumentando progressivamente os requisitos mínimos do SDK de destino, porém, esta não será uma solução alternativa válida por muito tempo.

No momento, não conheço nenhuma solução alternativa para aplicativos direcionados à API 30. Porém, o Android 11 ainda está muito distante, então há uma boa chance de que alguém encontre uma maneira de restaurar o acesso. Enquanto isso, se você estiver usando APIs ocultas, você pode querer registrar uma solicitação para que eles sejam tornados públicos no Android 11. Se você é bom em analisar C++ e Java e deseja tentar "consertar" essa pequena situação de lista negra, dê uma olhada no commit relevante.