Java 如果移动设备被盗/丢失,如何保护我的应用程序

Java 如果移动设备被盗/丢失,如何保护我的应用程序,java,android,Java,Android,我正在制作一个安全的应用程序,如果移动设备被盗/丢失或sim卡被更换,该应用程序不应运行。若我以编程方式卸载我的应用程序,它会提示用户是否要卸载它。我想把这件事隐藏起来 还有一件事是在assets/raw文件夹中保存一个文件,当sim卡被更改时,我必须删除该文件,没有该文件我的应用程序将无法运行。但在运行时无法从两个文件夹中删除文件 非常感谢所有建议 我知道密码保护、加密、Pro-Guard、Dex-Guard、保持手机最低功能。伙计们,我必须想办法删除这个应用程序!在那一点上请帮忙 提前谢谢

我正在制作一个安全的应用程序,如果移动设备被盗/丢失或sim卡被更换,该应用程序不应运行。若我以编程方式卸载我的应用程序,它会提示用户是否要卸载它。我想把这件事隐藏起来

还有一件事是在assets/raw文件夹中保存一个文件,当sim卡被更改时,我必须删除该文件,没有该文件我的应用程序将无法运行。但在运行时无法从两个文件夹中删除文件

非常感谢所有建议

我知道密码保护、加密、Pro-Guard、Dex-Guard、保持手机最低功能。伙计们,我必须想办法删除这个应用程序!在那一点上请帮忙


提前谢谢

步骤1:编写要在后台运行的进程

步骤2:当单元启动时,使流程处于活动状态

步骤3:检查互联网连接或平衡

第四步:如果互联网可用,给自己发邮件,比如IMEI、MAC、IP等特定于手机的详细信息,无论你认为重要的是什么

第五步:定位GPS位置将非常有用


步骤7:从应用程序中注册的邮件id接收这些邮件

我不确定这是否正是您所要求的,但它可能会解决您的问题。一般来说,被盗手机的最大问题是数据。如果您担心其他人正在运行您的应用程序,那么身份验证似乎应该解决这个问题。第二个问题是,有人可能会对您的代码进行反编译,以了解可能导致攻击的详细信息。这里有两条建议可以解决这些问题

  • 使用progord来混淆代码。这样,如果设备是根设备并且获得了APK,它就不能被反编译(至少不能转换成易于理解的代码)
  • 如果在设备上的数据库中存储任何数据,请确保对其进行加密。SQLCipher是一个免费的库,它允许您这样做 一个更安全的方法是在一些安卓x86服务器上运行你的应用程序,并且只将用户界面导入手机

    免责声明:我从来没有用过那些家伙,所以我不知道他们有多好。我刚刚在旧金山最新的AnDevCon看到他们的闪电演讲,我只是觉得这是个聪明的想法。
    此解决方案提供的另一个优势是,您员工的个人内容不会与您公司的内容混在一起。事后看来,这是一个古老的解决方案,对个人电脑和远程工作者来说非常有效。

    回答了我听到的一些其他有趣的评论: 有几件事:

  • 我就是那个在安第斯顿发表闪电演讲的人,斯蒂芬·布兰奇克(Stephan Branchyk)提到过,但我不是一个严重的stackoverflow用户,所以我没有回复的特权。对此评论投50票,我可以在线回答:)
  • 不过,我会就此给出我的见解,因此,如果您对安全性有“偏执狂”,并且想从“偏执狂安全供应商”的创始人那里了解更多,您可以继续阅读
  • 否则转到7
  • 理解这一点是非常重要的,因为没有全面的解决方案,所以不要天真。所有的安卓安全最佳实践都很好——但在某种程度上,由于您的操作系统(ROM、MOD等)可能,并且将受到损害。我不想让任何人惊慌失措——但没有完美的解决方案
  • Stephan对Nubo安全设计概念的看法是正确的——如果你违反了条款——你就出局了。如果你没有网络,或者做了一些可疑的事情——好吧——不管发生什么,设备都无法控制。我们的目标是在个人空间满足用户,在远程Android空间满足IT经理。 对我来说,澄清这不是一个远程桌面是非常重要的。它甚至不接近它-我们已经从零开始为Android开发了一个显示协议-用于移动环境。这与远程桌面/X11/VNC/…完全不同。。。用于“PC”
  • 如果你需要一个“完美”的解决方案,你需要一个“受信任”的设备,其中包括硬核硬件支持+安全引导加载程序+块验证链等。如果你有兴趣,你可以从ChromeOS项目中学习,但我想你不愿意走那么远
  • 回答原始答案:这取决于什么电话。如果你愿意 要使用PackageManager,你需要你的应用程序有一个系统 证书,这意味着除非您将其与自己的 设备,或做其他棘手的事情,我不会在这篇文章- 你不能。您可以在清单中使用BIND_DEVICE_ADMIN权限, 基本上,将您的应用程序注册为管理员(类似于MDM等)。然后,用一些更诡计多端的东西,你可以在名义上处理你的问题。您可以将另一个应用程序与该功能捆绑在一起,如果您希望非常安全,只需从应用程序中调用它即可

  • *这篇文章已经太长了,涉及的问题太多了,如果你还有其他问题,请继续提问。我将在2014年之前回复…

    如何保护应用程序的密码,使其不被其他人访问?您看过android的设备管理Api吗?你可以用它来控制设备。在你的皮肤下安装一个射频芯片,程序将只在你的射频id范围内运行。D(这是一个笑话)密码保护已经存在。我们也想保护源代码,我可以使用设备管理api从android中删除我的应用程序吗?是的,我知道Pro Guard。但它只是提高了安全级别。我主要强调的是如何从android设备上删除应用程序。谢谢你的建议我无法理解你的回答与我的问题之间的关系:(我们已经有了这样的架构。用户界面和一些业务逻辑将驻留在桌面上的Android rest上。但是