5

我正在尝试实现一个“安全”的广播接收器,它只接收来自特定应用程序的广播。这是因为我想为我的应用程序制作一个插件,通过广播触发动作。由于此操作(部分)是明智的,因此最好检查发件人是否真的是我的应用程序。据我所见,不可能检查发件人包裹?为此定义自定义权限是否安全?如果是,我该怎么做?实现这一目标还有哪些其他可能性?

提前致谢!

4

2 回答 2

16

为此定义自定义权限是否安全?

如果应用程序和插件都是由您编写的,那么自定义权限android:protectionLevel="signature"似乎是您问题的理想解决方案。没有该权限,任何应用程序都无法向您的接收器发送广播,该权限只能由使用相同签名密钥签名的应用程序持有。作为奖励,用户不必在安装时同意许可。

专业提示:<permission>在应用程序和插件中定义元素,因此这两个的安装顺序无关紧要。

请注意,自定义权限在 Android 5.0 之前存在安全漏洞,并且在 Android 5.0+ 上,除非使用相同的签名密钥签名,否则没有两个应用可以定义相同的权限

于 2013-04-12T17:33:52.813 回答
0

在清单中定义自定义权限:

<permission android:name="com.example.myapp.permission.NAME"
    android:protectionLevel="normal" />

在您的接收器上,添加权限属性:

<receiver android:name="MyReceiver" 
    android:permission="com.example.myapp.permission.NAME" />
于 2013-04-12T17:33:58.747 回答