2019年4月5日 星期五

Android allowBackup 設定

markdown 原本以為 Android app 移除後所有的資料包含 shared preference 都會被移除,但在測試 app 的時候發現,移除 app 再重新安裝後,之前儲存的 shared preference 被 reload 回來了。研究後發現這是因為 Android 會自動把 app 的資料備份出來,就算 app 被移除,備份的資料還在,當 app 重新安裝時就可以把舊資料覆蓋回來。 Android 還提供了一個 [allowBackup](https://developer.android.com/guide/topics/manifest/application-element#allowbackup) 的欄位可以讓開發者設定這個備份行為要不要打開,因為有時候也許開發者就是希望這個 app 重裝後要讓 shared preference 是初始狀態,不過這個欄位預設是 true。 後來 allowBackup 也被人提出有安全風險,因為如果這個欄位被設為 true 了,除了 Android 會自動備份之外,使用者也可以透過 adb 將 app 的 shared preference 備份出來,然後再還原到另一個機器上同樣的 app 內,這有可能會有資料洩漏的疑慮。所以在開發 app 時要注意到底要不要允許 allowBackup。

沒有留言:

張貼留言