通过android:exported=false从APK加载服务



我想从APK加载一个服务,它位于/system/app/LALA。问题是,我得到下面的错误,因为在APP AndroidManifest中,服务有android:exported = false。有办法装吗?

String packagePath = "other.app.package";    
String apkName = null;
try {
    apkName = getPackageManager().getApplicationInfo(packagePath, 0).sourceDir;
} catch (Exception e) {
    e.printStackTrace();
}
PathClassLoader cLoader = new PathClassLoader(apkName, ClassLoader.getSystemClassLoader());
Context otherAppContext = createPackageContext(appPackage, CONTEXT_IGNORE_SECURITY | CONTEXT_INCLUDE_CODE);    
String servicePath = packagePath + ".path.to.Service";
Class<?> Service = null;
try {
    Service = Class.forName(servicePath, true, cLoader);
} catch (Exception e) {
    e.printStackTrace();
}    
otherAppContext.startService(new Intent(otherAppContext, Service));

错误

肇因:java.lang.SecurityException: Not allowed to start service意图{cmp=other.app.package/.path.to。没有权限的Service}未从uid X导出

[]的

有加载的方法吗?

没有,抱歉。如果服务没有导出,它只能在自己的应用程序内部使用。

相关内容

  • 没有找到相关文章

最新更新