1.AndroidManifest.xml是什么
AndroidManifest官方解释是应用清单(manifest意思是货单),每个应用的根目录中都必须包含一个,并且文件名必须一模一样。这个文件中包含了APP的配置信息,系统需要根据里面的内容运行APP的代码,显示界面。<br /> 详情请看:[https://www.jianshu.com/p/3b5b89d4e154](https://www.jianshu.com/p/3b5b89d4e154)
2.组件泄露
Activity组件的属性exported被设置为true或是未设置exported值但IntentFilter不为空时,activity被认为是导出的,可通过设置相应的Intent唤起activity。
修复建议:
避免不必要的暴露,设置exported=”false”;
不得不暴露,那么就加上权限保护,通过权限来保护组件;
不得不暴露,但又不能加权限,那么谨慎地写好组件的逻辑
**
3.备份
3.1 备份
可以通过adb backup和备份应用程序数据
adb backup [-system|-nosystem] -all [-apk|-noapk] [-shared|-noshared] -f <档案名称> [需要备份的应用包名]
1> [-system|-nosystem]
这个指令是告诉adb 在备份时是否要连同系统一起备份
若没有打的话 默认是-system 表示会一起备份系统
注意!若连系统一起备份 在还原的时候会复盖系统档案 对于已经升级后的手机是非常不好的
我不知道在没有ROOT的情况下 adb是否有权限去还原系统档案 但就算如此 还是不建议这样做
因此 -nosystem是建议一定要打上的指令
2> -all
这个指令除非只是要备份单一APP 不然是一定要打上去的
这个是问你是否要备份全部的APP 若有加上-nosystem的指令
那么他就只会备份你目前已经安装上去的APP 而不会连系统APP一起备份
3> [-apk|-noapk]
默认是-noapk 这个的意思是是否连安装的APK一起备份
若为-noapk 则只会备份APK的资料档(像是游戏存盘 设定 之类的)
4> [-shared|-noshared]
默认是-noshared 这个会问你是否连手机储存空间或是SD卡的档案一起备份
adb backup -f back.ab -noapk com.xxxxx.android.xxxxx
不输入密码就行,点击备份我的数据
备份完成
3.2 恢复备份
可以通过adb restore来恢复应用程序数据
这个工具也能恢复https://github.com/nelenkov/android-backup-extractor/
此时换一台设备B安装此应用,但是不登陆任何帐号密码
adb restore back.ab
设备B没有进行帐号密码登陆,只是通过恢复A设备的备份数据就成功登陆了A设备的信息
3.3 修复建议
1.设置android:allowBackup=”false”;
2.允许执行备份,但是在你应用启动页进行逻辑判断是否进行重新登陆等,譬如查看设备唯一识别设备编号和备份前是否一致,不一致则直接跳转登陆页面的同时清空当前应用数据及缓存。
4.调试
• debuggable标志值为true时,可调试
• debuggable默认值为false
跟系统属性ro.debuggable的关系
• ro.debuggable为1时(一般为工程机),所有app可以被调试
• ro.debuggable为0时(一般为量产机),所有debuggable 为true的app可以被调试
修复建议:
debuggable值设置为false