1. 概述
自从 API 8以来,谷歌为用户提供了应用程序数据备份和恢复的功能。此功能的开关是AndroidManifest.xml 文件的 allowBackup属性,默认为true开启。所以用户可以对我们的应用数据备份。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。
为什么很多手机在我们通过USB调试连接数据的时候会弹出风险提示框,就是考虑到了安全风险。Android属性allowBackup安全风险源于adb backup容许任何一个能够打开USB 调试开关的人从Android手机中复制应用数据到外设,一旦应用数据被备份之后,所有应用数据都可被用户读取;adb restore容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当用户的数据被备份了,那么他就可以将这个数据通过备份恢复到其他的手机或者模拟器上。这对用户来说是不被允许的。因此为了安全起见,开发者务必将allowBackup标志值设置为false来关闭应用程序的备份和恢复功能,以免造成信息泄露和财产损失。
2. allowBackup的风险控制方法
在上面的概述中,我们知道allowBackup的风险条件:第一,ApI版本在8以上;第二,allowBackup的值为true。现在的市场手机,API的版本基本上都是在8以上,所以我们只要将allowBackup 的值设置为false就可以了。或者我们可以通过手机设备的IMEI号来辨识来设备编号和备份前是否一致,不一致则直接跳转登陆页面的同时清空当前应用数据及缓存。allowBackup的值为false 对项目运行没有任何影响。
3. allowBackup 备份数据
-
打开控制台,输入adb backup -f back.ab -noapk 项目包名
打开控制台 -
回车之后出现下列界面,我的是左边的,找了个中文的看着舒服点
image.png |
---|
-
输入密码,备份你的数据
-
这样你备份好了你的数据,然后将你备份的数据输入另外一台设备中。在另一台设备中安装程序,在控制台输入adb restore back.ab,弹出下列界面,输入密码
参考文章:
Android属性allowBackup安全风险浅析
Android应用开发allowBackup敏感信息泄露的一点反思
网友评论