【问题标题】:Do I need to protect my Android app from being copied?我是否需要保护我的 Android 应用程序不被复制?
【发布时间】:2016-10-26 23:09:25
【问题描述】:

我是否需要保护我的 Android 应用(从 Google Play 商店下载)不被复制?我正在关注那些说相互矛盾的文件的链接。

如果我使用 Google Play 开发者控制台帮助搜索“应用加密”,它会显示'Google Play Licensing Service' 网页结束:

请注意,从 Android OS 的 JellyBean 版本开始,所有 默认情况下,付费和免费应用程序都是加密的,因此, 不需要任何额外的保护来防止未经授权的复制 例如 Google 许可服务器。

'Filters on Google Play' 说:

Google Play 不再支持 开发者控制台 ...

并提供指向“Replacement for Copy Protection”的链接。这链接到“Setting Up for Licensing”,它链接到“Adding Licensing to Your App”,它链接到“Market Licensing Support FAQ”,它显示了“Google Play Licensing Service”网页(上面的文字表明post-Jellybean应用程序是加密)。所以,除非我有误解,否则这似乎是自相矛盾的。

从有关该主题的其他帖子的日期来看,我猜我确实必须使用 Google 市场许可 LVL(许可验证库)来保护自己的应用程序。然而,有迹象表明这不是当前的最佳解决方案(例如,Market Licensing 示例应用程序似乎已过时,关于使用它的最近论坛帖子很少,我找不到关于使用它的 udacity.com 课程)。所以我认为先得到一个明确的答案会有所帮助。

【问题讨论】:

  • 是时候添加链接/URL了。你得到了声誉:)
  • 谢谢!我添加了链接。

标签: android security


【解决方案1】:

首先,不可能 100% 保护您的代码。但是你可以让黑客的工作变得足够艰难。有一些技术可以保护您的代码protect android app。我建议您查看proguard 工具。

ProGuard 是一个免费的 Java 类文件收缩器、优化器、混淆器和预验证器。它检测并删除未使用的类、字段、方法和属性。它优化字节码并删除未使用的指令。它使用简短的无意义名称重命名剩余的类、字段和方法。生成的应用程序和库更小、更快,并且更好地抵御逆向工程。

【讨论】:

  • 这有帮助 - tx,尤其是 protect android app。我同意我正在使用的 proguard。我很想知道后 Jellybean 应用程序加密功能是否仍然有效。也就是说,任何人都可以获取我的 APK 文件并将其作为自己的应用程序重新分发吗? Filters On Google Play 似乎说不再使用加密。 Google Play Licensing Service 表示已使用。还是我误会了?
  • 我的理解是Jellybean之后app加密功能失效了。现在您必须使用 Google Play 许可服务来保护您的应用免于重新分发。
  • 你能告诉我你从哪里得到这些信息吗?我问是因为它似乎与Google Play Licensing Service 网页相矛盾(上面说后 Jellybean 应用程序是加密的)。谢谢。
【解决方案2】:

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

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

【讨论】:

  • 这个网站很有趣,它提供无需购买的应用程序下载。感谢您的反馈。
【解决方案3】:

考虑过对这篇文章的反馈(谢谢),我相信答案是“不”,我不需要保护我的应用不被复制,因为可疑的好处并不能证明这种努力是正当的(原理解释如下)。但是,这个答案是基于我目前正在开发的应用程序,并不适用于所有人。

该应用程序不依赖于服务器组件,因此将独立运行。也就是说,如果有人获得了它的盗版副本,他们将能够运行它。但是,该应用程序的价格会很低。因此,如果有人制作副本并开始非法销售,他们将需要大量出售以赚钱并证明他们的努力和冒险是合理的。他们也可能会选择赠送应用程序的盗版副本,但我猜测此类盗版版本的大多数用户一开始不会为此付费。

如果我集成了 Google Market Licensing LVL,这将使盗版应用变得困难。然而,通过足够的努力,它可以被逆向工程为源代码(即使我使用 Proguard),可以消除 LVL 功能,并重建应用程序。此外,LVL 集成是一项重大的工作(至少对我而言),它可能会在应用程序中引入错误,而且我不相信它是否是一个好的解决方案(市场许可示例应用程序似乎已过时,最近的论坛帖子很少在使用它时,...)。因此,我认为付出的努力和风险不值得。

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

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

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2023-03-12
    • 2014-06-07
    • 2021-03-22
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多