ADB读取和备份安卓应用数据(无Root)

您所在的位置:网站首页 无root备份 ADB读取和备份安卓应用数据(无Root)

ADB读取和备份安卓应用数据(无Root)

2023-12-13 10:00| 来源: 网络整理| 查看: 265

某一个特殊设备上的APP白屏无法打开,需要将数据库数据保留下来并导出,研究了几个方法最后得以获取数据。

方案1:通过run-as读取

进入shell,执行run-as + 包名,就可以直接以root权限进入该应用的沙盒中查看包括数据库、xml、各种信息文件。接下来可以通过pull或者copy命令将需要的数据转移至PC中

adb shell run-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积分,需要自取。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3