我正在运行一个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 -
我收到以下错误
我尝试通过CYGWIN提取它,但是,我也失败了。
我应该在哪里提取?我的命令提示符应该在哪个目录中?任何见解?
答案 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 ""