Android:通过 android >=11 中的反射访问非 sdk(制造商提供的库)API

Nit*_*der 7 reflection sdk android android-11

从 Android 11 开始,基于反射的非 sdk(私有)api 调用被阻止。Android 系统会检查反射方法的调用者,如果它的非系统应用程序会以阻止列表/黑名单的错误拒绝。 

"Accessing hidden method Lcom/example/com;->getSomeMethod()Lcom/example/com; (blacklist, reflection, denied)"
Run Code Online (Sandbox Code Playgroud)

在下面的链接中有更多详细信息。

https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces#results-of-keeping-non-sdk

https://www.xda-developers.com/android-11-harden-hidden-api-restriction-meta-reflection/

https://androidreverse.wordpress.com/2020/05/02/android-api-restriction-bypass-for-all-android-versions/

一种绕过方法如下。 https://github.com/ChickenHook/RestrictionBypass

查询:

“隐藏API黑名单仅适用于未列入白名单的用户应用。系统应用、平台签名的应用、配置文件中指定的应用均免除黑名单”

1)以上所有报价仍然适用于 Android 11?OEM 可以通过哪些方式将应用程序列入白名单以像以前一样使用 Reflection?

2)制造商提供的库api是否被视为非sdk api?

  1. 即使不使用 META REFLECTION,反射如何在 android 10(目标 29)中为相同的制造商提供的库工作?

https://www.xda-developers.com/android-development-bypass-hidden-api-restrictions/

谢谢

Dmi*_*ant 1

老问题,但我最近遇到了这个问题,显然可以使用一种称为“双重反射”的方法轻松绕过反射限制,此处概述。