我是否需要保护我的Android应用不被复制?

时间:2016-09-23 05:52:49

标签: android security

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

如果我搜索" app encryption"使用Google Play Developer Console帮助,它会显示'Google Play Licensing Service'结束的网页:

  

请注意,从JellyBean发布的Android OS开始,全部   付费和免费的应用程序默认是加密的,因此,   不要求任何额外保护,以防止未经授权的复制   例如Google Licensing Server。

'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'网页(上面的文字表明后Jellybean应用程序已加密)。所以,除非我误解它,否则这似乎是自相矛盾的。

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

3 个答案:

答案 0 :(得分:3)

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

  

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

如果我整合Google Market Licensing LVL,这会让盗版很难实现。但是,只要付出足够的努力,就可以对源代码进行逆向工程(即使我使用Proguard),也可以消除LVL功能,并重新构建应用程序。此外,LVL集成是一项重大工作(至少对我而言),它有可能将错误引入应用程序,我不相信它是否是一个很好的解决方案(市场许可示例应用程序出现过时,最近几篇论坛帖子使用它,...)。因此,我不认为努力和风险是值得的。

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

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