保护 Android 应用程序免遭盗版
我正在 Android 中创建一个应用程序。我希望一旦我的应用程序安装在一台设备上,用户就无法复制“.apk”并在其他设备上运行它。请帮帮我。提前致谢。 :)
I am creating an application in Android. I want that once my application is installed on one device, user should not be able to copy the ".apk" and run it on other device. Please help me out. Thanks in advance. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我即将给出的答案不是您想听到的答案,但请仔细阅读,因为我将证明这个答案的合理性,并为您提供一个可以在您的应用程序中使用的替代模型。
一般来说,您不应该寻找一种绝对成功地保护您的应用程序免遭盗版的方法。如果有足够的兴趣,坚定的盗版者将能够在某个时候取消保护,并分发修改后的应用程序。
即使像 Apple iPhone 这样相对封闭的设备也存在越狱设备的盗版问题,并且坚定的攻击者在某些时候能够打开您的应用程序。我举一个进一步的例子来说明保护软件的困难:Microsoft Windows。如果微软和苹果尽管拥有所有的资源和专业知识都无法有效地解决这个问题,你真的认为你能做到吗?
相反,我鼓励您以使用依赖于您控制的服务器的软件功能的方式对应用程序进行编程。这样,你就掌握了王国的钥匙。当人们进行购买时,要求他们提供将他们与服务器联系起来的登录名/密码。
例如,如果您正在编写游戏程序,请以游戏社区功能为基础,通过您作为开发者/发行商控制的服务器与其他玩家进行交互。
对此模型稍加修改,客户就可以免费访问该应用程序,但功能有限,然后在购买时获得完整功能。从这个角度来看,盗版不再是一个问题,事实上,甚至盗版应用程序的动机也消失了。最后,像这样的基于服务的模型可能是比依靠一些技术魔法徒劳地试图保护您的应用程序免受窥探更好的解决方案。
The answer I'm about to give is not the answer you want to hear, but please read through, as I will justify this answer and give you an alternative model you might be able to use in your application.
In general, you should not look for a single method that will be absolutely successful in protecting your application from being pirated. A determined pirate will, at some point, be able to remove the protection, and distribute the modified application if there's enough interest in it.
Even relatively closed devices like the Apple iPhone have piracy problems with jail broken devices, and a determined attacker will, at some point, be able to open your app. I give you as a further example of the difficulty of protecting software: Microsoft Windows. If Microsoft and Apple, with all of their resources and expertise are unable to solve this problem in an effective manner, do you really think you'll be able to?
Instead, I would encourage you to program your app in such a way that you're using software features that rely on servers you control. That way, you're holding the keys to the kingdom. When people make a purchase, ask them for a login/password that ties them to the server.
For example, if you're programming a game, make a good portion of the game community features based, where you interact with other players through servers which you, as the developer/distributor, control.
A slight modification of this model allows the customer to access the application for free, but with a limited amount of functionality, then gain full functionality when they purchase. In that light, piracy ceases to be a problem, and indeed, even the motivation to pirate your app vanishes. In the end, a service based model like this is probably a better solution than relying on some technically wizardry in a vain attempt to protect your app from prying eyes.
如果您计划通过 Android 电子市场分发您的应用,请使用 Android 电子市场许可。
Android Market Publisher 中还有一个复制保护选项,但它已被弃用,Google 建议改用许可。
如果您不通过 Android Market 分发应用程序,我建议您查看 Android Market 许可源代码并使用您自己的服务器实现类似的系统。
If you plan to distribute your app through the Android Market, use Android Market Licensing.
There's also a copy-protection option in the Android Market Publisher, but it has been deprecated and Google recommends to use licensing instead.
If you're not distributing the app through the Android Market, I'd recommend looking at the Android Market Licensing source code and implement a similar system with your own server.
查看android 许可。
Take a look onto android licensing.