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

标签 android security

对于在 Android 设备上安装和发布的工业应用程序,我想保护该应用程序免受未经授权的复制到其他设备。我的理解是,有许多应用程序(一些在 Android 设备上运行,一些在台式电脑上运行)可以将应用程序复制为 APK 文件并将它们安装在其他 Android 设备上。 (其中一些作为备份软件销售)

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

如何编写我的应用程序以仅在我们安装它的设备上运行?

最佳答案

What is Android's authorization model?

这将取决于您认为“授权模型”是什么以及您在什么上下文中询问。APK 本身没有“授权模型”,就像文本文件、肥皂 block 、砖 block 、高尔夫球一样等

如果“授权模型”的意思是“我如何验证该应用程序是从 Android Market 获得的”,您可以使用 License Verification Library (LVL) 为此。但是,这似乎与您的用例无关(“在 Android 设备上安装和交付的工业应用程序”)。

How do I write my app to run on just the device we install it on?

通过滚动您自己的自定义固件、将您的应用程序设为主屏幕、从固件中删除不必要的附加应用程序等,防止设备用户运行其他任何东西。这可能会限制您设备的实用性,将无法正常工作如果您试图让您的应用可用于任意设备等。

或者,编写您自己的类似于 LVL 的许可证管理方案,并希望没有人对盗版应用程序感兴趣,他们有足够的技能对您的代码进行逆向工程并删除许可证管理内容。根据您的客户群,您可能会很幸运地使用这种方法。这与带有许可证 key 等的传统企业软件没有太大区别。因此,为桌面应用程序制作许可证管理内容的公司完全有可能拥有可用于许可证的商业 Android 解决方案。

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

关于android - 如何将 Android 应用程序保护到设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9586454/

相关文章:

java - 不使用 onConfigurationChanged() 跟踪方向变化

android - 如何折叠/分组博览会通知

android - 用于在任何移动平台上开发的 3D 引擎

java - 如何知道 Android 应用程序中正在使用哪些库

javascript - 有没有办法在 Ajax 中安全地发送信息?

PHP/MySQL 安全 我可以屏蔽与数据库的连接吗?

node.js - Node - Express 4 csrf

security - 我可以使用 CSP 将请求限制为 https : AND 'self' ?

android - 在 MonoDroid 中隐藏软键盘

java - 功能标记与授权