我有一个带有LineageOS和TWRP的三星Galaxy S2 GT-I9100智能手机。每周我都会使用以下命令进行备份:
adb backup -f twrp-20170322.ab --twrp boot data system
我也可以选择使用该--compress
选项。
有没有办法twrp-20170322.ab
使用stardard GNU / Linux命令行工具提取备份文件?如果需要,我还将考虑安装其他软件,但该软件必须是免费的(与自由一样)。
链接:
我有一个带有LineageOS和TWRP的三星Galaxy S2 GT-I9100智能手机。每周我都会使用以下命令进行备份:
adb backup -f twrp-20170322.ab --twrp boot data system
我也可以选择使用该--compress
选项。
有没有办法twrp-20170322.ab
使用stardard GNU / Linux命令行工具提取备份文件?如果需要,我还将考虑安装其他软件,但该软件必须是免费的(与自由一样)。
链接:
Answers:
如果您没有使用密码保护它:
dd if=$1 bs=24 skip=1 | openssl zlib -d >${1%%.ab}.tar
dd
是“磁盘复制器”(如果您将其参数if
与开关和of
; 混淆,也称为“磁盘破坏器” )bs=23
建议它使用24字节的块大小,我们需要...skip=1
跳过1个24字节的块(“备份头”)openssl
给处理并解压缩从那里,您应该知道自己的方式:只需“不了解”(提取)您想要的内容。
为什么使用$1
?好吧,我从中复制了这一行ab2tar
,您可能也会对我的小工具Adebar包含此行:创建了一个不错的设备文档,备份脚本等等,所有这些都通过ADB进行,只使用了Bash😇😇小shell脚本,并调用它:
ab2tar twrp-20170322.ab
然后找到一个twrp-20170322.tar
结果。当然,这需要openssl
在您的Linux机器上安装。
--compress
在创建备份时未指定的那样,创建未压缩的备份?在后一种情况下,请尝试省略该zlib
参数(或者以其他方式进行设置,并--compress
在创建备份时指定;)。
openssl
)。但是,当我尝试使用tar -tf twrp-20170320.tar列出tar归档文件的内容时,我得到:tar:看起来不像tar归档文件。tar:跳至下一个标题;焦油与失败状态由于先前的错误退出
--compress
选项的原因adb
:它的压缩方式效率不如xz
。我更喜欢节省尽可能多的空间。但这与我最初的问题无关。
--compress
其中使用)。根据您的陈述(adb backup …
),我假设格式完全相同。如果您仅使用其他压缩,则必须考虑到这一点。openssl
需要解密备份–因此,您将没有获得有效的.tar
。根据您的最后评论,我假设您应该用zlib
的相应部分代替xz
。除此之外,对不起,我没有主意。
我发现TWRP生成的.ab
文件与普通adb backup
文件不同,因此偏移量与普通.ab
文件不同。我能够使用以下命令检查和提取文件(例如,检查):
dd if=backup.ab bs=512 skip=1 | tar ft -
显然,标头可能更长,但应与512字节边界对齐,因此,skip=
如果一开始找不到该参数,则只需修改该参数即可。
请注意,如果需要进一步研究,文件格式在twadbstream.h中定义。