对于在Android设备上安装和装运的工业应用程序,我希望确保该应用程序不会未经授权复制到其他设备。我的理解是,有许多应用程序(一些在Android设备上运行,一些在台式机上运行)可以将应用程序复制为APK文件,并将其安装在其他Android设备上。(其中一些是作为备份软件销售的)
Android的授权模型是什么?它依赖于拥有一个Google账户还是使用Android Market?(这些设备没有关联的谷歌账号,使用它们的工业环境通常也不能访问WiFi )。
我如何编写我的应用程序来运行在我们安装它的设备上?
发布于 2012-03-06 23:31:12
安卓的授权模型是什么?
这将取决于您认为“授权模型”是什么,以及您在什么上下文中询问。APK本身没有“授权模型”,就像文本文件、肥皂块、砖块、高尔夫球等一样。
如果您所说的“授权模型”指的是“我如何验证应用程序是从Android Market获得的”,那么您可以使用License Verification Library (LVL)来验证。但是,这似乎与您的用例(“在Android设备上安装和发布的工业应用程序”)无关。
如何编写我的应用程序,以便仅在我们安装它的设备上运行?
通过滚动您自己的自定义固件,使您的应用程序成为主屏幕,从固件中删除不必要的其他应用程序等,防止设备用户运行任何其他应用程序。这可能会限制您的设备的实用程序,如果您试图使您的应用程序可用于任意设备,则将无法工作,等等。
或者,制定您自己的许可证管理方案,类似于LVL,并希望对盗版应用程序感兴趣的人有足够的技能对您的代码进行反向工程,并剪掉许可证管理的东西。根据您的客户基础,您可能会有合理的运气使用这种方法。这与具有许可证密钥等的传统企业软件没有显著不同。因此,为桌面应用程序开发许可证管理工具的公司完全有可能拥有商业Android解决方案。
“许可证管理方案”可以像“在WiFi文件中烧录APK的MAC地址,并在运行时进行比较”一样简单,不过,同样,这种保护容易被逆向工程和删除。
发布于 2012-03-06 23:30:16
当您将应用程序上传到Market时,会有一个选项来启用"Copy Protection“,该选项说明
复制保护有助于防止从设备复制应用程序。它增加了安装应用程序所需的手机内存容量。我们预计很快就会弃用版权保护。
和
如果您有付费应用程序,我们建议您实施Android Market许可服务。对于免费应用,我们建议您实施自己的版权保护方案。
不过,我不认为版权保护是防弹的。如果有人下定决心拥有你的一台设备,他们很可能仍然可以获得apk (特别是如果他们愿意从设备中拔出根)。
我想最好的解决方案应该是你自己创建和实现的东西。此应用程序总共安装了多少台设备?也许您可以为每个设备获取唯一的ID,并让应用程序检查以确保运行它的设备的ID在该列表中。
如果为每个设备获取ID太麻烦了。安装过程是什么?也许应用程序在安装后所做的第一件事就是要求输入一个复杂的密码。如果没有输入密码,应用程序将不会执行任何操作。这样一来,你就可以在安装后立即启用它们,而且任何apk的副本都不会做任何事情,除非这个人也有密码。这样做的缺点是,如果应用程序被卸载/重新安装,则需要再次输入密码。
https://stackoverflow.com/questions/9586454
复制相似问题