如何将Android应用程序保护到设备?

时间:2012-03-06 15:17:20

标签: android security

对于在Android设备上安装和运输的工业应用程序,我希望保护该应用程序免遭未经授权的复制到其他设备。我的理解是有很多应用程序(一些在Android设备上运行,一些在桌面PC上运行)可以将应用程序复制为APK文件并将其安装在其他Android设备上。 (其中一些作为备份软件销售)

什么是Android的授权模式?是否依赖于拥有Google帐户或使用Android电子市场? (这些设备没有与之关联的Google帐户,并且使用它们的工业环境通常没有WiFi访问权限)。

如何将我的应用编写为仅在我们安装的设备上运行?

2 个答案:

答案 0 :(得分:4)

当您将应用程序上传到Market时,可以选择启用“复制保护”,其中包含

  

复制保护可能有助于防止从设备复制应用程序。它增加了安装应用程序所需的手机内存量。我们希望尽快弃用复制保护。

  

如果您有付费应用,我们建议您实施Android电子市场许可服务。对于免费应用程序,我们建议您实施自己的复制保护方案。

我认为复制保护不是以任何方式防弹。如果有人确定并拥有您的某个设备,他们可能仍然会从中获取apk(特别是如果他们愿意根设备)。

我认为最好的解决方案将是您自己创建和实施的。该应用程序总共将安装多少台设备?也许您可以为每个设备获取唯一ID,并让应用程序检查以确保其运行的设备具有该列表上的ID。

如果为每个设备获取ID太麻烦了。安装过程是什么?应用程序在安装后首先要做的就是要求输入复杂的密码。如果未输入密码,则应用程序将不执行任何操作。这样你就可以在安装后立即启用它们,并且除非该人员也有密码,否则任何已经发出的apk副本都不会做任何事情。如果应用程序被卸载/重新安装,则需要再次输入密码。

答案 1 :(得分:4)

  

什么是Android的授权模式?

这将取决于您认为“授权模式”是什么以及您在什么情况下提出的问题.APK本身没有“授权模型”,不仅仅是文本文件,肥皂块,砖块,高尔夫球等等。

如果通过“授权模型”表示“我如何验证该应用是从Android电子市场获得的”,则可以使用License Verification Library(LVL)。但是,这似乎与您的用例(“在Android设备上安装和发布的工业应用程序”)无关。

  

如何将我的应用编写为仅在我们安装的设备上运行?

通过滚动您自己的自定义固件,使您的应用成为主屏幕,从固件中删除不必要的其他应用程序等,防止设备用户运行其他任何内容,这可能会限制您的设备的实用程序,无法正常工作如果你想让你的应用程序可用于任意设备等

或者,制定类似于LVL的自己的许可证管理方案,并希望没有人对盗版应用程序感兴趣,有足够的技能来反向设计代码并删除许可证管理。根据您的客户群,您可以通过这种方法获得合理的运气。这与具有许可证密钥等的传统企业软件没有显着不同。因此,为桌面应用程序制作许可证管理的公司完全有可能获得许可证的商业Android解决方案。

“许可证管理方案”可以像“在APK文件中刻录WiFi NIC的MAC地址并在运行时进行比较”一样简单,但同样,这种保护很容易被反向工程和切除。