1 <application 2 android:allowBackup="false" 3 android:label="@string/app_name"> 4 <activity android:name="LoginActivity" 5 android:label="@string/app_name"> 6 <intent-filter> 7 <action android:name="android.intent.action.MAIN"/> 8 <category android:name="android.intent.category.LAUNCHER"/> 9 </intent-filter> 10 </activity> 11 <activity android:name=".HomeActivity"/> 12 </application
是否容許備份應用的數據,默認是true,當備份數據的時候,它的數據會被備份下來。若是設爲false,那麼絕對不會備份應用的數據,即便是備份整個系統。html
Android API Level 8及其以上Android系統提供了爲應用程序數據的備份和恢復功能,此功能的開關決定於該應用程序中AndroidManifest.xml文件中的allowBackup屬性值[1] ,其屬性值默認是True。當allowBackup標誌爲true時,用戶便可經過adb backup和adb restore來進行對應用數據的備份和恢復,這可能會帶來必定的安全風險。android
Android屬性allowBackup安全風險源於adb backup允許任何一個可以打開USB 調試開關的人從Android手機中複製應用數據到外設,一旦應用數據被備份以後,全部應用數據均可被用戶讀取;adb restore允許用戶指定一個恢復的數據來源(即備份的應用數據)來恢復應用程序數據的建立。所以,當一個應用數據被備份以後,用戶便可在其餘Android手機或模擬器上安裝同一個應用,以及經過恢復該備份的應用數據到該設備上,在該設備上打開該應用便可恢復到被備份的應用程序的狀態。安全
尤爲是通信錄應用,一旦應用程序支持備份和恢復功能,攻擊者便可經過adb backup和adb restore進行恢復新安裝的同一個應用來查看聊天記錄等信息;對於支付金融類應用,攻擊者可經過此來進行惡意支付、盜取存款等;所以爲了安全起見,開發者務必將allowBackup標誌值設置爲false來關閉應用程序的備份和恢復功能,以避免形成信息泄露和財產損失。app
Android API Level 8以及以上系統spa
AndroidMannifest.xml文件android:allowBackup屬性;調試
未將AndroidMannifest.xml文件中的android:allowBackup屬性值設爲false;rest
當allowBackup標誌值爲true時,便可經過adb backup和adb restore來備份和恢復應用程序數據;code
推薦兩篇文章:http://www.freebuf.com/articles/terminal/60778.htmlxml
https://www.secpulse.com/archives/5228.htmlhtm