【发布时间】:2014-10-12 11:58:01
【问题描述】:
我正在尝试使用 Deflate 算法解压缩 Android adb 文件。我已经尝试过 DotNetZips Ionic Zlib 以及 Net 4.5 中引入的 Microsoft 内置 System.IO.Compression,但它们都导致存档损坏。它们都具有完全相同的文件大小,但损坏的存档和正常存档之间的哈希值不匹配。
我用下面的代码解压。
byte[] app = File.ReadAllBytes(tb_keyOutDir.Text + "\\app_stripped.ab");
MemoryStream ms = new MemoryStream(app);
//skip first two bytes to avoid invalid block length error
ms.Seek(2, SeekOrigin.Begin);
DeflateStream deflate = new DeflateStream(ms, CompressionMode.Decompress);
string dec = new StreamReader(deflate, Encoding.ASCII).ReadToEnd();
File.WriteAllText(tb_keyOutDir.Text + "\\app.tar", dec);
我可以通过 CygWin 和 OpenSSL 解压它,它可以正确解压它,所以我知道我的文件没有损坏或任何东西。
cat app_stripped.ab | openssl zlib -d > app.tar
【问题讨论】:
标签: c# android adb archive zlib