在 Android 开发中限制第三方软件模块的权限

Limiting permissions for 3rd party software modules in Android Development

我们如何限制第 3 方广告软件和其他库的权限?

我不希望第 3 方广告软件访问相机,尤其是数据库数据。

是否有可能将第 3 方模块(例如统一或广告模块)与我们正在开发的应用程序完全隔离?

我们可以配置基于 activity 或基于模块的权限吗?

如果您在应用程序中包含库,则存在隐式信任。他们通常几乎可以访问您的应用程序所做的一切。

但是,如果您 look at your merged manifest 发现某个库添加了您不希望您的应用拥有的权限/服务/接收器等,您可以非常轻松地删除它们。

一个常见的用例与您的相似,一些图书馆可能会要求诸如麦克风之类的功能来提供您不需要该图书馆拥有的功能。

这里是如何从 manifest documentation 的库中删除权限的示例:

<permission android:name="permissionOne"
    tools:node="remove"
    tools:selector="com.example.lib1">

如果您想从您的应用中完全删除权限,只需删除 selector:

<permission android:name="permissionOne"
    tools:node="remove">

当然,如果您要删除库期望拥有的部分清单,它可能会停止工作(尽管我没有亲身经历过)。