是否可以将内容提供商设为只读?我知道这个问题很少被问到,但根据所有这些问题(例如this)我必须写自己的自定义写入权限。
<permission android:name="com.test.WRITE_DATABASE" android:protectionLevel="normal" />
<permission android:name="com.test.READ_DATABASE" android:protectionLevel="normal" />
//...
<provider
android:authorities="xxx"
android:name="xxx"
android:exported="true"
android:readPermission="com.test.READ_DATABASE"
android:writePermission="com.test.WRITE_DATABASE" />
但黑客可以反编译我的应用程序并查看清单文件,然后他就可以轻松编写自己的应用程序:
<uses-permission android:name="com.test.WRITE_DATABASE" />
所以它几乎无用...... 我有几个应用程序在我的主要应用程序中使用一个内容提供程序。只有此应用程序应具有写入权限 - 其他应该只读取此数据库。任何想法如何解决这个问题?
答案 0 :(得分:1)
请参阅此处有关权限的文档:https://developer.android.com/guide/topics/manifest/permission-element.html
您的问题的答案是权限的android:protectionLevel
属性。您可以将其设置为signature
,以便只有使用相同密钥签名的应用程序才能请求此权限。