gpt4 book ai didi

android - 应用内结算接收者权限

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:11 24 4
gpt4 key购买 nike

背景

我知道 Dungeons list 中的receiver(应用内结算示例,对于那些不知道的人)不不包含权限 元素,但 Lint 警告我:“导出的接收器不需要许可 (...) 没有这个,任何应用程序都可以使用这个接收器”

如果我没有理解错的话,一个应用程序可能会用虚假数据欺骗我(可能是在精心设计的系统中,不确定),可能会冒充 Play 应用程序并提供虚假的账单记录。

问题

  1. 是吗?这对普通消费类 Android 设备有何影响?

  2. 我应该在其中写入什么以期望正常行为?我认为这允许我的接收器仅接收来自合法 Play 应用程序的广播。是 com.android.vending.BILLING 吗?在这种情况下,我认为欺骗系统可能会声明这一点。这导致 3:

  3. 我是否还应该与众所周知的 Google 公共(public)签名进行比较,以避免系统被欺骗?

评论

我知道其中一些对某些人来说似乎太多了,但我正在考虑这里的理论。 :-)

另外,我没有使用 list 定义的接收器,所以我从来没有太注意它们。就是说,如果我说得不对,请纠正我。是的,我之前和刚才确实阅读了文档。

谢谢。

最佳答案

交易数据使用与您的开发者帐户绑定(bind)的唯一 key 进行签名。如果你正确地验证了这些,没有人可以欺骗交易。

至于为什么没有定义权限,签名权限系统在Android中的工作方式是这样的:你说'这个广播只能由使用与发送者相同的 key 签名的应用程序接收'。很明显,您的应用使用与 Google Play 应用不同的 key 进行签名,因此无法使用基于签名的权限,并且必须公开。

从技术上讲,您可以检查谁发送了广播,获取该 UID 的包名称并与已知的 Google Play 包进行比较。随着新版本的发布,它们往往会发生变化,并且在某些设备(最显着的是 Honeycomb 设备)上有所不同,因此这可能无法很好地扩展并给您误报。

关于android - 应用内结算接收者权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com