首页 文章

如何保护/检测Android设备上的数据库还原?

提问于
浏览
3

我有一个Android应用程序,它以一种常见的方式将数据保存到sqlite数据库 . 当用户使用应用程序时,数据会发生变化等 . 到目前为止没问题...

但是当用户使用一些备份软件(如Titanium Backup或其他)时,备份应用程序,他可以将数据恢复到旧状态 . 我需要保护应用程序的方法或检测恢复并处理它 .

简单的工作流程:

  • 安装APP

  • 使用APP

  • 到达APP数据库的STATE1

  • 备份APP(使用任何备份/恢复应用程序,设备可以root)

  • 使用APP

  • 到达APP数据库的STATE2

  • 将APP(或仅数据)恢复到STATE1 - 这是我在下次执行APP时需要拒绝或检测的点 .

到目前为止,我使用了访问时检测和比较,但它通过不同的设备和ROM似乎真的不可靠 .

谢谢 .

1 回答

  • 2

    为此,您需要将某些状态保存在设备上,或者至少在 data 目录之外 . 最简单的方法可能是将DB文件的指纹保存在外部存储(SD卡)的某个'hidden'目录中 . 或者,如果您的应用程序具有Web登录等,则为每个用户存储指纹 .

    在任何情况下,用户都可以完全控制设备,因此您无法阻止此100% . 您的应用程序需要优雅地处理数据库中的任何更改,或者只有在检测到致命的不一致时才会失败 .

相关问题