如何提取或解压缩.ab文件(Android备份文件)

时间:2013-08-30 13:01:12

标签: android cmd backup

我正在运行一个android 4.0.3设备,我想提取由以下内容创建的备份文件:

adb backup -f ~/data.ab -noapk app.package.name

上面的代码在CMD(windows)中运行,我可以在'〜'目录下获取data.ab文件。

我不能做的是使用CMD来接收该文件。我尝试了以下两种方法。

dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -

dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -

我收到以下错误

error

我尝试通过CYGWIN提取它,但是,我也失败了。

error

我应该在哪里提取?我的命令提示符应该在哪个目录中?任何见解?

2 个答案:

答案 0 :(得分:37)

根据https://android.stackexchange.com/a/78183/239063,您可以在Linux中运行一行命令,以添加适当的tar标头来提取它。

  

$increment = 0; // Case 1: if ( $absolute_used == 0 && $percent_used == 0 ) { $increment = $width - $min_width; foreach (array_keys($columns) as $i) { $cellmap->set_column_width($i, $columns[$i]["min-width"] + $increment * ($columns[$i]["max-width"] / $max_width)); } return; }

backup.ab 替换为您的文件路径。

答案 1 :(得分:25)

我也必须解压.ab - 文件,并在寻找答案时找到了这篇文章。我建议的解决方案是Android Backup Extractor,一个适用于Windows,Linux和Mac OS的免费Java工具。

如果遇到问题,请务必查看README。如果.ab - 文件受密码保护,则可能必须下载更多文件。

用法:
java -jar abe.jar [-debug] [-useenv=yourenv] unpack <backup.ab> <backup.tar> [password]

示例:

假设您有一个文件test.ab,该文件没有密码保护,您使用的是Windows,并希望生成的.tar - 存档被称为test.tar。然后你的命令应该是:

java.exe -jar abe.jar unpack test.ab test.tar ""