当您在 Android 项目中导入第三方 API(数据包依赖注入、生成的库、源代码等)时,您会假设它们的行为与宣传的一样。大多数时候代码不是开源的,它被混淆或只是编译。
有没有办法控制这些 API 对网络、联系人、视频和音频、位置等重要系统资源的访问?
最好的方法是为proxy
他们提供系统资源。这将有以下好处:
- 可以通过在代理中提供模拟数据来执行测试
- 如果不需要,您的应用程序不必提供 API 所需的所有权限,并且代理将通过模拟授予的权限允许 API 不会因为权限而中断
- 过滤在本地收集的关于用户的可能数据并发送到 API 主存储库,用于广告或恶意意图
由于用户定义的活动和服务无法控制第三方 API 的服务,甚至无法阻止它们直接调用任何 Android 公共接口,因此我无法找到如何实现这样的解决方案。
该解决方案不需要 root 访问权限,因为您不希望在您自己的应用程序边界之外拥有此控件。
这个问题的内容与几个问题相关联,这些问题解决了这个广泛问题的特殊性(内容提供者的日志数据、网络请求——这让我在研究这个问题的答案时想到了这个问题)
注意:简短的回答是否定的,但一个人可以有足够的创造力(也许去本地级别的黑客可能会解决这个问题 - idk)