Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要保护我的Android应用程序不被复制吗?_Android_Security - Fatal编程技术网

我需要保护我的Android应用程序不被复制吗?

我需要保护我的Android应用程序不被复制吗?,android,security,Android,Security,我需要保护我的Android应用程序(从Google Play Store下载)不被复制吗?我在下面的链接中看到了一些相互矛盾的东西 如果我使用Google Play开发者控制台帮助搜索“app encryption”,它会显示以以下内容结尾的网页: 请注意,从Android操作系统的JellyBean发布开始,所有 付费和免费的应用程序在默认情况下都是加密的,因此, 不需要任何额外的保护来防止未经授权的复制 比如谷歌授权服务器 说: Google Play不再支持中的复制保护功能 开发人员控制

我需要保护我的Android应用程序(从Google Play Store下载)不被复制吗?我在下面的链接中看到了一些相互矛盾的东西

如果我使用Google Play开发者控制台帮助搜索“app encryption”,它会显示以以下内容结尾的网页:

请注意,从Android操作系统的JellyBean发布开始,所有 付费和免费的应用程序在默认情况下都是加密的,因此, 不需要任何额外的保护来防止未经授权的复制 比如谷歌授权服务器

说:

Google Play不再支持中的复制保护功能 开发人员控制台

并提供指向“”的链接。此链接到“”,其中链接到“”,其中链接到“”,显示“”网页(上面的文本表示post Jellybean应用程序已加密)。因此,除非我误解了它,否则这似乎自相矛盾


从关于这个主题的其他帖子的日期来看,我猜我必须使用谷歌市场许可LVL(许可证验证库)来保护我自己的应用程序。然而,有迹象表明,这并不是目前最好的解决方案(例如,市场许可示例应用程序似乎过时了,最近论坛上很少有关于使用它的帖子,我在使用它时找不到udacity.com类)。因此,我认为首先得到一个明确的答案会有所帮助。

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

ProGuard是一个免费的Java类文件收缩器、优化器、模糊器和预验证器。它检测并删除未使用的类、字段、方法和属性。它优化字节码并删除未使用的指令。它使用无意义的短名称重命名其余的类、字段和方法。由此产生的应用程序和库更小、更快,并且对反向工程有更好的强化


如果你的应用程序提供了一种服务,即在线游戏(需要一个服务器),你可以通过一些注册/授权规则来保护你的服务


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

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

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

如果我整合谷歌市场许可LVL,这将使盗版应用程序变得困难。然而,只要付出足够的努力,就可以将其反向工程为源代码(即使我使用Proguard),消除LVL功能,重建应用程序。此外,LVL集成是一项重要的工作(至少对我而言),它有可能将bug引入应用程序,我不相信它是否是一个好的解决方案(市场许可示例应用程序似乎过时了,最近论坛上很少有关于使用它的帖子,…)。因此,我认为付出的努力和冒的风险是不值得的

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


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

是时候添加链接/URL了。你得到了声誉:)谢谢!我添加了链接。这有助于-tx,尤其是。我同意我正在使用的proguard。我很想知道PostJellybean应用程序加密功能是否仍然有效。也就是说,任何人都可以获取我的APK文件并将其作为自己的应用程序重新分发吗?似乎说加密不再使用了。说是用的。还是我误解了?我的理解是,在Jellybean之后,应用程序加密功能处于非活动状态。现在你必须使用Google Play授权服务来保护你的应用程序不被重新分发。你能告诉我你从哪里得到这些信息吗?我这样问是因为它似乎与网页(上面说PostJellybean应用程序是加密的)相矛盾。谢谢。这是一个有趣的网站,它提供应用程序下载而不需要购买。谢谢你的反馈。