1. 概述
自從 API 8以來,谷歌為用戶提供了應(yīng)用程序數(shù)據(jù)備份和恢復(fù)的功能。此功能的開關(guān)是AndroidManifest.xml 文件的 allowBackup屬性,默認為true開啟。所以用戶可以對我們的應(yīng)用數(shù)據(jù)備份。當allowBackup標志為true時,用戶即可通過adb backup和adb restore來進行對應(yīng)用數(shù)據(jù)的備份和恢復(fù),這可能會帶來一定的安全風(fēng)險。
為什么很多手機在我們通過USB調(diào)試連接數(shù)據(jù)的時候會彈出風(fēng)險提示框,就是考慮到了安全風(fēng)險。Android屬性allowBackup安全風(fēng)險源于adb backup容許任何一個能夠打開USB 調(diào)試開關(guān)的人從Android手機中復(fù)制應(yīng)用數(shù)據(jù)到外設(shè),一旦應(yīng)用數(shù)據(jù)被備份之后,所有應(yīng)用數(shù)據(jù)都可被用戶讀??;adb restore容許用戶指定一個恢復(fù)的數(shù)據(jù)來源(即備份的應(yīng)用數(shù)據(jù))來恢復(fù)應(yīng)用程序數(shù)據(jù)的創(chuàng)建。因此,當用戶的數(shù)據(jù)被備份了,那么他就可以將這個數(shù)據(jù)通過備份恢復(fù)到其他的手機或者模擬器上。這對用戶來說是不被允許的。因此為了安全起見,開發(fā)者務(wù)必將allowBackup標志值設(shè)置為false來關(guān)閉應(yīng)用程序的備份和恢復(fù)功能,以免造成信息泄露和財產(chǎn)損失。
2. allowBackup的風(fēng)險控制方法
在上面的概述中,我們知道allowBackup的風(fēng)險條件:第一,ApI版本在8以上;第二,allowBackup的值為true?,F(xiàn)在的市場手機,API的版本基本上都是在8以上,所以我們只要將allowBackup 的值設(shè)置為false就可以了?;蛘呶覀兛梢酝ㄟ^手機設(shè)備的IMEI號來辨識來設(shè)備編號和備份前是否一致,不一致則直接跳轉(zhuǎn)登陸頁面的同時清空當前應(yīng)用數(shù)據(jù)及緩存。allowBackup的值為false 對項目運行沒有任何影響。
3. allowBackup 備份數(shù)據(jù)
-
打開控制臺,輸入adb backup -f back.ab -noapk 項目包名
打開控制臺 回車之后出現(xiàn)下列界面,我的是左邊的,找了個中文的看著舒服點
![]() |
![]() image.png
|
|---|
輸入密碼,備份你的數(shù)據(jù)
這樣你備份好了你的數(shù)據(jù),然后將你備份的數(shù)據(jù)輸入另外一臺設(shè)備中。在另一臺設(shè)備中安裝程序,在控制臺輸入adb restore back.ab,彈出下列界面,輸入密碼


參考文章:
Android屬性allowBackup安全風(fēng)險淺析
Android應(yīng)用開發(fā)allowBackup敏感信息泄露的一點反思


