我是否需要保护我的Android应用(从Google Play商店下载)不被复制?我跟踪了指出相互矛盾的文件的链接。
如果我搜索" app encryption"使用Google Play Developer Console帮助,它会显示'Google Play Licensing Service'结束的网页:
请注意,从JellyBean发布的Android OS开始,全部 付费和免费的应用程序默认是加密的,因此, 不要求任何额外保护,以防止未经授权的复制 例如Google Licensing Server。
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类)。所以我认为首先得到一个明确的答案会有所帮助。
答案 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应用程序加密被删除(如果它被删除)。我还可以将功能转移到服务器端 - 这对我来说似乎是最安全的策略,虽然开发成本很高,并且需要服务器端进行管理和维护。
我可能没有考虑过这方面的问题。如果您不同意我的回答,或者有其他想法,请发表评论。