Android清单文件android:allowBackup=”false”的使用
2016-01-20 15:37
344 查看
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.[/code]
这个命令的参数如下: 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.abNow unlock your device and confirm the restore operation.[/code]
通过上边这个命令就将手机A中备份的文件拷贝到手机B中,这样在手机A中应用的数据就会备份在手机B中了,如果该应用程序有记住账号密码等功能,这样就会泄露手机A中的数据。导致安全漏洞。
相关文章推荐
- android 多进程
- Android Handler内存泄漏解决方法
- TextView的多彩效果 SpannableString
- Android得到视频缩略图
- Android SQlite性能优化
- Android中ExpandableListView控件基本使用详情
- Android自定义View——可设置形状(圆形、圆角矩形、椭圆)的ImageView,抗锯齿
- android 监听HOME键和开关屏的工具类
- Android ComponentName的用法
- Android监听Home按键消息
- Android编程实现左右滑动切换背景的方法
- Android EditText默认不获取焦点
- Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- android监听应用缓存和任务栈顶的方法
- Android Studio导入(import)工程时常见错误
- GestureDetector 和SimpleOnGestureListener的使用和解释
- Android 系统状态栏一体化
- Android自定义控件样式实例详解
- Android 获取地理位置的经度和纬度(zz)
- Android反编译apk及常见问题