【发布时间】:2018-01-02 17:03:16
【问题描述】:
我的主应用程序 A 使用其他应用程序作为插件,比如说 B、C 和 D .我无法控制首先安装哪个应用程序。
如何定义签名级别权限,以便只有主应用 A 可以启动插件应用 B、C 和 D强>?
插件没有用户界面,因此用户无法手动启动它们,但我需要确保只有我的主应用程序可以启动它们。我尝试在插件中定义权限,如下所示:
<permission
android:name="my.custom.permission.START_PLUGIN"
android:protectionLevel="signature"/>
然后在我的主应用程序中:
<uses-permission android:name="my.custom.permission.START_PLUGIN" />
这似乎不是正确的方法。谁能告诉我实现上述目标的正确方法?谢谢。
编辑:我的插件被实现为具有 AIDL 接口的绑定服务。
【问题讨论】:
-
您的插件是如何实现的?作为绑定服务、内容提供者,还是其他?
-
绑定服务。更新问题。
-
所以在您的自定义
Binder#onTransact方法或存根方法实现中使用Binder#getCallingUid() -
我想使用权限来解决这个问题。我会看看你的建议,但我更愿意通过签名级别的权限来解决它。
-
好吧,Android系统应该自己处理这个......但是我似乎找不到正确的方法。
标签: android security permissions