24
2024
09
14:17:17

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

某一个特殊设备上的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,极有可能应用的Manifest文件中allowBackup的值为“false”,请先确认Manifest文件中的值为 true,以免在adb版本上浪费时间可能是版本问题,如果值没问题,换一个版本的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上收积分了.....




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/8055.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: