2016-09-23 45 views
16

我是否需要保护我的Android应用(从Google Play商店下载)不被复制?我正在跟踪指出相互矛盾的文件的链接。我是否需要保护我的Android应用程序不被复制?

如果我搜索“应用程序加密”使用谷歌Play开发者控制台的帮助,它让我看到'Google Play Licensing Service'网页从而结束:

请注意,开始了Android OS的豆形软糖发布,所有 应用,支付并且是免费的,因此默认情况下会进行加密,因此, 不需要任何额外的保护,以防止未经授权复制 (如Google授权服务器)。

'Filters on Google Play'说:

谷歌Play不再支援在 开发者控制台中的复制保护功能......

,并提供了一个链接到 'Replacement for Copy Protection'。此链接“Setting Up for Licensing”,可链接到“Adding Licensing to Your App”,其链接到“Market Licensing Support FAQ”,它显示“Google Play Licensing Service”网页(与这表明后杰利贝恩应用被加密上述文本)。所以,除非我误解了它,这似乎与本身相矛盾。

根据关于此主题的其他帖子日期来判断,我猜我必须使用Google Market Licensing LVL(许可证验证库)来做我自己的应用程序保护。但是,有迹象表明,这不是目前最好的解决方案(例如,Market Licensing示例应用程序显示为过期,很少有最近关于使用它的论坛帖子,没有udacity.com类可以找到它使用它)。所以我认为这将有助于首先得到明确的答案。

+0

现在该添加链接/ URL。你有声望:) –

+0

谢谢!我添加了链接。 – JohnA

回答

3

首先,它是不可能的,以保护您的代码100%。但是你可以让黑客的工作足够强大。有一些技巧可以保护你的代码protect android app。我建议你看看proguard工具。

ProGuard是一个免费的Java类文件收缩器,优化器,混淆器和预校验器。它检测并删除未使用的类,字段,方法和属性。它优化字节码并删除未使用的指令。它使用短无意义的名称重命名剩余的类,字段和方法。由此产生的应用程序和库更小,速度更快,而且对逆向工程的要求更高。

+0

这有助于 - tx,特别是[保护android应用](http://mobilenext.net/protect-android-app-app-pirates/)。我同意我正在使用的proguard。 我会非常有兴趣知道后Jellybean应用加密功能是否仍然有效。也就是说,任何人都可以获取我的APK文件并将其重新分配为他们自己的应用程序? [Google Play上的过滤器](https://developer.android.com/google/play/filters.html)似乎表示不再使用加密。 [Google Play授权服务](https://support.google.com/googleplay/android-developer/answer/186113?hl=en-GB)表示已使用此功能。或者我误解了? – JohnA

+0

我的理解是,在Jellybean之后,应用程序加密功能处于非活动状态。现在您必须使用Google Play授权服务来保护您的应用免遭再分配。 –

+0

你能告诉我你从哪里得到这些信息吗?我问,因为它似乎与[Google Play许可服务](https://support.google.com/googleplay/android-developer/answer/186113?hl=en-GB)网页(其中说明了后Jellybean应用程序被加密)。谢谢。 – JohnA

1

如果您的APP提供的是一种服务,即在线游戏(需要服务器),您可以通过一些注册/授权规则来保护您的服务。

或者,如果您的应用程序是一个工具,单机游戏,它实际上是很难保护。有一些网站提供的服务允许用户直接从GooglePlay下载APK文件,并且不需要任何购买......任何人都可以通过允许从非GooglePlay源安装APP来安装这些APK。在这种情况下,您确实需要一些方法来保护您的APP不被复制。

+0

这是有趣的网站,提供应用程序下载而无需购买。感谢您的反馈。 – JohnA

0

审议反馈到这个职位(谢谢),我相信答案是“不”,我并不需要保护我的应用程序被复制为可疑的好处是没有理由的努力(理解释如下)。然而,这个答案是基于我目前正在开发的应用程序,并不适用于所有。

该应用程序不依赖于服务器组件,因此将独立运行。也就是说,如果有人得到了它的海盗副本,他们将能够运行它。但是,该应用的价格很低。因此,如果有人制作了一个副本并开始非法销售,他们需要出售大量的钱才能赚到钱,并证明他们的努力是正确的,并有被冒险的风险。他们也可能会选择放弃应用程序的海盗副本,但我猜测这种海盗版本的大多数用户首先不会付钱。

如果我整合了Google Market Licensing LVL,这将会很难盗用应用程序。然而,如果付出足够的努力,它可以被逆向设计为源代码(即使在使用Proguard的情况下),LVL功能可以被消除,并且应用程序被重建。此外,LVL整合是一项重大的努力(至少对我而言),它可能会在应用程序中引入错误,并且我不确定它是否是一个好的解决方案(市场许可示例应用程序显示为过期,很少有最近的论坛帖子使用它,...)。因此,我不认为这种努力和风险是值得的。

如果应用程序的销售价格很高,我的答案可能会有所不同,我会考虑其他选项。例如,Google Market Licensing LVL可以集成,但这并不能完全消除盗版风险,除非Android确实提供了安全的应用程序加密。应用程序加密对我来说似乎是一个很大的挑战(例如,考虑到它需要在某个时间点解密才能运行它),这可能解释了为什么应用程序加密后的Jellybean应用程序被删除(如果它被删除)。我还可以将功能转移到服务器端 - 这对我来说似乎是最安全的策略,但开发起来会很昂贵,并且需要对服务器端进行管理和维护。

这很可能是我没有考虑过的方面。如果您不同意我的回答,或者有其他想法,请发表评论。

相关问题