Android签名保护和exported="false"

Posted

技术标签:

【中文标题】Android签名保护和exported="false"【英文标题】:Android signature protection and exported="false" 【发布时间】:2017-09-25 09:06:09 【问题描述】:

我希望我的 ContentProvider 仅在我的应用程序中可用, 为此,我将 ContentProvider 的 exported 属性设置为 false

android:exported="false"

这很好用,只要其他应用程序尝试访问 ContentProvider,Android 就会抛出 SecurityException

问题: 添加“签名保护权限”作为附加保护是否有意义?

应用由多个进程组成,ContentProvider用于进程间通信,无需与其他应用通信

谢谢

【问题讨论】:

【参考方案1】:

如果您的应用程序的最低级别is lower then 17 :

因为这个属性是在 API 级别 17 中引入的,所以所有设备 运行 API 级别 16 及更低级别的行为就像设置了此属性一样 “真”。

【讨论】:

【参考方案2】:

是的,这是使用您定义的权限保护内容提供者的最安全方式。将其作为签名作为权限,这样只有使用您的证书签名的应用才能获得它。

您也可以参考developer console

【讨论】:

感谢您的回答。我很好奇是否需要它,因为没有与其他应用程序通信的意图?

以上是关于Android签名保护和exported="false"的主要内容,如果未能解决你的问题,请参考以下文章

请解释Android权限保护_签名解释

Android 12 exported自动适配

以编程方式修改 android:exported

AndroidManifest 中android:exported

android:exported 属性详解

Android问题解决方案:Android 打空包后提示没有”android:exported“的属性设置