android - 使用 android :exported=false 从 APK 加载服务

标签 android security reflection apk

我想从位于/system/app/LALA 的 APK 加载服务。问题是,我收到以下错误,因为在 APP AndroidManifest 中,服务有 android:exported = false。有什么方法可以加载吗?

Code

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));

Error

Caused by: java.lang.SecurityException: Not allowed to start service Intent { cmp=other.app.package/.path.to.Service } without permission not exported from uid X

[]的

最佳答案

Is there any way to load it?

不,对不起。如果服务不导出,则只能由自己的应用程序在内部使用。

关于android - 使用 android :exported=false 从 APK 加载服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095225/

相关文章:

android - 自定义 View 的不同单元格大小网格

java - 一个类的方法没有被另一个类调用

security - 对于具有个人身份信息的电子商务企业的网页长度为 "time out"的建议或行业标准?

security - 我如何通过简单地将cookie从计算机复制到另一个来防止 session 劫持?

ruby-on-rails - 是否有attr_readonly的类似白名单的逆函数?

java - 如何让ListView定位到某个元素下?

C# 向 .net 枚举添加额外值

c# - 为什么通用类型定义实现的接口(interface)会丢失类型信息?

java - 如何在 Java 中使用反射实例化内部类?

java - 通知没有发出声音或振动?