禁用调试版本的Android内容提供程序签名权限

aiazj4mn  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(124)

例如,内容提供程序具有主版本的签名权限

  1. <provider
  2. android:name=".com.test.ContentProvider"
  3. android:authorities="com.test.provider"
  4. android:enabled="true"
  5. android:exported="true"
  6. android:permission="com.test.permission" />

字符串
和签名许可

  1. <permission
  2. android:name="com.test.permission"
  3. android:protectionLevel="signature" />


如何禁用调试构建的此权限?尝试将具有相同名称但没有android:permission="com.test.permission"行的内容提供程序添加到AndroidManifest.xml(调试),但没有运气

oiopk7p5

oiopk7p51#

我不太了解ContentProvider权限,但你可以尝试以下选项:

**1/**在调试AndroidManifest.xml时,使用以下声明:

  1. <provider
  2. android:name=".com.test.ContentProvider"
  3. tools:remove="android:permission" />

字符串
这将移除调试生成的合并清单中的权限

**2/**在字符串资源中定义权限。在主strings.xml中定义权限值,在调试strings.xml中留空。

  1. main: <string name="permission_name">com.test.permission</string>
  2. debug: <string name="permission_name"></string>


您的provider标记仅引用基于build的字符串:

  1. <provider
  2. android:name=".com.test.ContentProvider"
  3. android:authorities="com.test.provider"
  4. android:enabled="true"
  5. android:exported="true"
  6. android:permission="@string/permission_name" />


不知道是否需要权限,这些只是通过不同构建自定义配置的一些方法

展开查看全部

相关问题