2013-07-01 35 views
3

我有一個適用於Android的應用程序,它以常用的方式將數據保存到sqlite數據庫。當用戶使用該應用程序時,數據被更改等等。到目前爲止沒有問題...如何保護/檢測Android設備上的數據庫恢復?

但是,當用戶使用某些備份軟件(如Titanium Backup或其他)時,請備份應用程序,他可以將數據恢復到舊狀態。我需要通過這種方式來保護應用程序或檢測恢復並處理它。

簡單的工作流程:與APP

  1. 安裝APP
  2. 工作
  3. 纔會在應用中的數據庫STATE1
  4. 備份的APP(與任何備份/恢復應用程序,該設備可以根植)
  5. 使用APP
  6. 到達APP數據庫的STATE2
  7. 將APP(或只是數據)還原到STATE1 - 這是我需要在下次執行APP時拒絕或檢測的一點。

到目前爲止,我玩過Access時間檢測和比較,但它似乎通過不同的設備和ROM非常不可靠。

謝謝。

回答

2

要做到這一點,你需要保存一些狀態離開設備,或至少在data目錄之外。最簡單的方法可能是將DB文件的指紋保存在外部存儲(SD卡)上的某個「隱藏」目錄中。或者如果你的應用程序有Web登錄等存儲每個用戶的指紋。

在任何情況下,用戶都可以完全控制設備,所以您無法完全避免這種情況。您的應用程序需要優雅地處理數據庫中的任何更改,或者如果檢測到致命的不一致,就會失敗。

+0

謝謝,這就是我看到的方式...... SD卡上的安全指紋文件也可以備份,但這是保護的另一個步驟。 – Ejzy