增加系统白名单,允许普通APP调用Android系统内部隐藏方法

普通APP通过反射,访问系统内部方法时,出现NoSuchMethodError错误,定位到

/frameworks/base/core/java/android/content/pm/ApplicationInfo.java

isAllowedToUseHiddenApis()方法:

java 复制代码
   private boolean isAllowedToUseHiddenApis() {
        if (isSignedWithPlatformKey()) {
            return true;
        } else if (isSystemApp() || isUpdatedSystemApp()) {
            return usesNonSdkApi() || isPackageWhitelistedForHiddenApis();
        } else {
            return false;
        }
    }

允许访问内部方法的APP有两种:

1、系统签名APP

2、SYSTEM APP或PRIVATE APP

修改isAllowedToUseHiddenApis方法:

java 复制代码
private boolean isAllowedToUseHiddenApis() {
        if (isSignedWithPlatformKey()) {
            return true;
        } else if (isSystemApp() || isUpdatedSystemApp()) {
            return usesNonSdkApi() || isPackageWhitelistedForHiddenApis();
        } else {
            //return false;
            return isPackageWhitelistedForHiddenApis();
        }
    }

isPackageWhitelistedForHiddenApis为自带方法,读取系统配置文件中白名单配置。

系统启动时,/frameworks/base/core/java/com/android/server/SystemConfig.java的readPermissionsFromXml方法读取配置文件:

/frameworks/base/data/etc/hiddenapi-package-whitelist.xml

java 复制代码
<?xml version="1.0" encoding="utf-8"?>
<config>
....................
 <hidden-api-whitelisted-app package="your package name" />
</config>

在配置文件末尾增加APP的包名,允许此包名的APP调用内部方法。

相关推荐
警醒与鞭策4 小时前
【无标题】
android·unity·性能优化·游戏引擎·perforce
传奇开心果编程6 小时前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
李游Leo8 小时前
《HarmonyOS 7 精准碰一碰跨设备协作开发实战》07:异常恢复、状态机与CrossDrop工程收尾【鸿蒙心迹】
android·harmonyos
方白羽11 小时前
Android APK安全防护
android·安全·apk
小黄人软件11 小时前
AndroidStudio老项目 macOS运行BlueTooth蓝牙串口助手(Android+Studio源码).rar
android·macos
00后程序员张11 小时前
苹果App Store上架指南:费用、原理与步骤详解
android·ios·小程序·https·uni-app·iphone·webview
天神哥哥啊11 小时前
cocos联调注意事项-安卓
android
TDengine (老段)12 小时前
TDengine TSDB 实战排障四(升级与兼容)
android·java·大数据·数据库·物联网·时序数据库·tdengine
蓝速科技12 小时前
政务自助终端信创选型与无人值守落地方案
android·大数据·数据库·人工智能·科技·技术分享·政务
硫酸锌0113 小时前
在手机上运行Python增量备份手机数据到PC电脑
android·windows·python