ADB读取和备份安卓应用数据(无Root)
某一个特殊设备上的APP白屏无法打开,需要将数据库数据保留下来并导出,研究了几个方法最后得以获取数据。
方案1:通过run-as读取
进入shell,执行run-as + 包名,就可以直接以root权限进入该应用的沙盒中查看包括数据库、xml、各种信息文件。接下来可以通过pull或者copy命令将需要的数据转移至PC中
adb shellrun-as package-name
注:应用需为debug模式,即AndroidManifest.xml文件中,android:debugable需要为true
android:debuggable="true"
如果为正式应用会报错,这个时候可以采用我们的第二种方式获取数据
run-as package: not debuggable
方案2:通过adb backup备份
使用命令,此时手机会出现备份弹窗,低版本可以不输入密码,高版本需要输入密码,这个密码在备份完成后解压时需要用到。
adb backup -all -f D:\abcd.ab pagename或adb backup -nosystem -f D:\abcd.ab pagename
解释下这条命令
1> [-system|-nosystem]默认是-system,这个指令是告诉adb 在备份时是否要连同系统一起备份建议 -nosystem是一定要打上的指令2> -all是否要备份全部的APP 若有加上-nosystem的指令3> [-apk|-noapk]默认是-noapk ,是否连安装的APK一起备份4> [-shared|-noshared]默认是-noshared 是否连手机储存空间或是SD卡的档案一起备份
备份完成后是一个.ab文件,需要下载一个abe工具进行解析
什么是.ab文件
.ab 后缀名的文件是 Android 系统的备份文件格式,它分为加密和未加
密两种类型,.ab 文件的前 24 个字节是类似文件头的东西,如果是加密的,在前 24 个字节
中会有 AES-256 的标志,如果未加密,则在前 24 个字节中会有 none 的标志
#android-backup 项目
https://github.com/nelenkov/android-backup-extractor
java -jar abe.jar unpack D:\abcd.ab D:\aaa.tar
解析完成之后直接解压即可。
如果出现生成的ab文件只有1KB,可能是版本问题,换一个版本的ADB试试。最新的不一定适合。
安卓7以下一般用1.0.31; 安卓9/10(各种机子有的64位有的32位)的1.0.31、1.0.32、1.0.36 有的可以有的不行。各个版本多试试看
我使用的4.4.2的机器,1.0.32也是可行的,1.0.31实在没找到,都是挂在CSDN上收积分了,我的32也挂出来了,0积分,需要自取。
来源地址:https://blog.csdn.net/qq_17798399/article/details/124950288
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341