如何将对ContentProvider的访问权限仅限于我的应用程序?

时间:2014-04-24 23:51:01

标签: android android-contentprovider android-contentresolver

我想导出一个ContentProvider以供另一个MY应用程序使用。如何阻止其他应用访问它?如果我使用android:permission属性,那么第三方应用只能将该权限应用于他们的应用吗?我真的需要锁定对我的应用的访问权限。

提前致谢...

1 个答案:

答案 0 :(得分:9)

  

如果我使用android:permission属性,那么第三方应用只能将该权限应用于他们的应用吗?

好吧,您可以使用signature级自定义权限(android:protectionLevel="signature")。然后,持有权限的应用程序和应用程序通过权限进行自我辩护必须使用相同的签名密钥进行签名。

Android中存在一个错误/限制,即使攻击者未通过您的签名密钥签名,也可以允许在您的应用之前安装的攻击者持有此权限。我在this report中更详细地介绍了这一点(因为它的SO答案有点复杂)并且a PermissionUtils class可以帮助您检测到这种情况。