对于那些不知道的人来说,谷歌在安卓9 Pie中引入了一个相当烦人的变化,这涉及到寻求突破安卓可能限制的发烧友开发者。当然,我说的是增加隐藏的API黑名单。为了提高应用程序的稳定性,谷歌屏蔽了对大多数隐藏API的访问,这些API存在于安卓框架中,但没有记录在安卓SDK中。这些API直到Android 9 Pie都可以通过反射访问,目前仍然可以通过元反射变通方法访问。
如果你不知道我在说什么,你可能应该看看我几个月前写的关于这个话题的文章。它将解释您需要了解的关于元反射及其工作原理的所有信息。不幸的是,谷歌似乎注意到了这个解决方案(嘘)。在对AOSP的新承诺中,谷歌引入了“加强”安卓隐藏应用编程接口检查的代码。这基本上意味着元反射将不再起作用。
当然,这不会影响所有应用程序。就像原来的API黑名单一样,只有针对Android 11(API等级30)以上的应用才会受到影响。您仍然可以指定29或更低的API级别,并使用元反射。但是,随着Play商店逐渐提高最低目标SDK要求,这将不是一个长期有效的解决方案。
目前还不知道API 30应用有什么变通办法。不过安卓11还有很长的路要走,很有可能会有人想办法恢复访问权限。同时,如果你正在使用一个隐藏的应用编程接口,你可能需要提交一个请求,让它在安卓11中公开。如果你擅长分析C和Java,想“修复这个小黑名单的情况,看看相关提交。”