开发平台基本信息
芯片: MSM8953_64
版本: Android 10
kernel: msm-4.9
问题描述
Android系统在设计的时候,越来越往安全方面靠拢,在低版本的Android系统中,可以轻轻松松获取特殊权限;而在高版本的Android系统中,权限要求越来越严格,root、selinux、su等等都变得越来越难搞定;反射也是同样的,低版本的Android系统,应用可以通过反射调取一些系统接口,以获得系统信息或者操控系统功能,像以太网、WIFI、蓝牙等等;但是,在Android10中,有些反射会调用失败,查了对应的接口与Android7.1的并没有区别,但是就是报找不到对应的方法。暴力的解决方案就是直接去掉系统对反射的限制,这样应用就能够继续调用反射使用系统API。
解决方法
diff --git a/art/runtime/hidden_api.cc b/art/runtime/hidden_api.cc
index 388ed33..4486d4e 100644
--- a/art/runtime/hidden_api.cc
+++ b/art/runtime/hidden_api.cc
@@ -485,7 +485,7 @@ bool ShouldDenyAccessToMemberImpl(T* member, ApiList api_list, AccessMethod acce
}
}
- return deny_access;
+ return false;
}