1. 程式人生 > >Android清單檔案android:allowBackup=”false”的使用

Android清單檔案android:allowBackup=”false”的使用

AndroidManifest.xml檔案的allowBackup屬性值的講解

一、alloBackup的作用

  Android API Level 8開始提供了為應用程式備份和恢復資料的功能,此功能的開關可以通過應用程式中AndroidManifest.xml檔案的allowBackup屬性值進行配置,預設是True,所以使用者可以對我們應用程式進行資料備份。
     其實allowBackup的風險原理主要是允許通過adb backup對開啟USB除錯的裝置進行資料備份,一旦得到備份檔案之後那就不好說了,譬如邪惡的人可以再通過adb restore將你的資料恢復到自己的裝置上,然後就完全在自己的裝置上以你的名義去玩弄App;或者通過程式碼分析出備份檔案中你登陸App的一些賬戶密碼等核心資訊。總之,Google當初設計的核心肯定是為了方便備份資料考慮的,但是大家自己開發的應用似乎忽略了手機丟失或者被他人撿到的問題,譬如通訊錄或者名片、支付類等App如果一旦出現此類問題後果還是很嚴重的,所以有必要重視一下。

二、使用adb命令備份資料使用的步驟

1、從手機A中將應用的資料備份到電腦上的命令:

C:\Users\Administrator>adb backup -f back.ab -noapk 包名
Now unlock your device and confirm the backup operation.

這個命令的引數如下:
adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<packages...>]
你可以使用的最基本的命令是很簡單的
adb backup -all
它將使用預設方式備份應用和裝置的資料(不包含apk)到當前目錄下並儲存為檔案backup.ab
※這個命令有可能不對每個設定都有效,如果你出現像這種 "adb: cannot open file ./backup.ab"的錯誤,使用 adb backup -all -f C:\backup.ab來代替,其中路徑C:\可根據喜好替換
對各個引數的解釋:
-f <file>
用這個來選擇備份檔案儲存在哪裡,例如-f /backup/mybackup.ab將會使檔案儲存在根磁碟(Windows的C盤等等)下一個名為backup的資料夾裡,並且備份檔名為mybackup.ab
-apk|-noapk
這個決定是否在備份裡包含apk或者僅僅只備份應用資料,個人推薦使用-apk以免有的應用在應用市場找不到,如果不使用則預設的是-noapk
-shared|-noshared
這個引數用於決定是否備份裝置共享的SD card內容,預設是-noshare,主要包括內部儲存中的音樂、圖片和視訊,因此為保險起見,建議加上-share
-all
這個引數是一種簡單地表達“所有應用”的說法,package引數可以選擇備份單獨的應用,如果你不是備份某個應用,使用-all備份整個系統
-system|-nosystem
這個引數決定-all標籤是否包含系統應用,預設的是-system,根據情況可選擇是否用-nosystem
<packages...>
如果你知道應用安裝包的名稱(例如com.google.android.apps.plus),就可以使用該引數備份特定應用。

2、將備份到電腦上的資料備份到另一臺手機B中

C:\Users\Administrator>adb restore back.ab
Now unlock your device and confirm the restore operation.

通過上邊這個命令就將手機A中備份的檔案拷貝到手機B中,這樣在手機A中應用的資料就會備份在手機B中了,如果該應用程式有記住賬號密碼等功能,這樣就會洩露手機A中的資料。導致安全漏洞。