为了避免盗版,在应用中添加“应用内计费”而不是在 Play 商店中将其作为付费应用发布会更好吗?

Posted

技术标签:

【中文标题】为了避免盗版,在应用中添加“应用内计费”而不是在 Play 商店中将其作为付费应用发布会更好吗?【英文标题】:Is it better to add "in-app billing" in an app instead of publishing it as a paid app in Play Store for avoiding piracy? 【发布时间】:2021-02-23 05:32:10 【问题描述】:

我在 *** 上阅读了一些关于如何防止应用在从 Google Play 商店 下载后被共享的问题的答案。如:

添加 Google Play 许可: How to secure an android app against sharing apps like ShareIT & more?

添加 Google Play 许可和应用内结算: How to prevent android app being downloaded outside google play

在某些地方,我还看到Google Play Licensing 可以被一些第三方软件破解或设备root。此类视频的 youtube 链接: How To Remove License Verification From All Android Apps

但是,该视频是三年前上传的,所以我不知道它是否会在 2020 年生效,或者可能有其他新的方式。

那么,发布具有应用内结算/购买的应用以避免盗版是更好的选择,还是它也有一些缺点?

【问题讨论】:

人们非常不愿意安装付费应用。如果他们可以先免费试用,您将获得更多安装。 @LluisFelisart 这与安装数量无关,而与盗版有关。我的问题是关于我的应用程序被盗版。另外,我将拥有付费应用的免费/精简版,因此人们可以选择先试用免费版。 我添加了答案 【参考方案1】:

与任何类型的数字文档一样,验证其真实性的最安全系统是验证签名。

签名是添加到文档中的一系列字节,这些字节使用私钥生成,然后可以使用公钥进行验证。

许可证和谷歌应用内购买都有一个签名,但很少有程序员验证它,而是认为验证谷歌服务器上的令牌(唯一标识符)就足够了,因为黑客有可能复制虚假购买使用相同的有效令牌(一次购买,多次使用)

另一方面,如果没有只有 Google 知道的私钥,就不可能生成有效的签名。

但是像 freedom 这样的一些黑客应用会改变 Android 安全库,所以它总是允许任何签名验证,这就是为什么 Google 建议在外部服务器上验证签名的原因,这里是一个例子怎么办https://***.com/a/48531877/7690376

您必须验证签名并且必须在外部服务器上进行,这样您的应用几乎不可能承认虚假购买或许可。

【讨论】:

以上是关于为了避免盗版,在应用中添加“应用内计费”而不是在 Play 商店中将其作为付费应用发布会更好吗?的主要内容,如果未能解决你的问题,请参考以下文章

测试应用内计费:“发​​布者无法购买此项目”

如何将aidl文件添加到Android工作室(来自应用内计费示例)

通过应用内计费查看付费应用版本

测试应用内计费

Android 应用内计费响应列表为空

添加具有特定标签的子模块而不是在一个命令中分支