苹果偶尔会使用专有的 XIP 文件格式,特别是在分发Xcode版本时。这是一个模拟拉链,但是签名,允许它验证在接收系统。当打开一个 XIP 文件时(双击),Archive将展开它,但前提是数字签名是完整的。
有人知道如何从终端命令行提取 XIP 文件到特定文件夹吗?如果签名无效,有任何方法解压缩这种类型的文件吗?
发布于 2018-06-13 11:06:52
也许试一试:
xip -x [path to .xip file]
这将把存档解压缩到当前的工作目录中。
至于提取到特定目录,没有明确的选项,但 xip -x 将提取到当前工作目录。因此,要将文件解压缩到何处, cd 就应该工作;如果您特别需要自动化该文件,则需要编写一个脚本,其结果是:
xip -x
cd
#!/bin/sh xipfile="$(cd $(dirname "$1"); pwd -P)/$(basename "$1")" # a portable "realpath" cd "$2" xip -x "$xipfile"
我觉得应该这么做吗?
发布于 2017-02-13 06:56:06
我建议简单地将存档解压缩到您想要的文件夹中,尝试以下操作:
xar -xf file.xip -C /path/to/target
(和/或)
tar -zxvf file.xip -C /path/to/target
xar 和 tar 命令以原始格式提取 .xip “内容”和“元数据”。
xar
tar
.xip
使用 pbzx 流解析器,您需要提取“内容”,这是一个lzma压缩的有效载荷;格式类似于包安装程序中的格式(例如。 .pkg )。您可以使用 从这里编译pbzx源代码 或 下载已编译的二进制文件 并将其安装到 /usr/local/bin ,然后调用 pbzx 命令:
pbzx
.pkg
/usr/local/bin
pbzx -n Content | cpio -i
在命令解析完内容之后,您应该得到 .xip 存档中任何内容的原始形式。
有用/附加信息
$ pkgutil --check-signature file.xip
Xcode_9_beta_2.xip返回:
Package "Xcode_9_beta_2.xip": Status: signed Apple Software Certificate Chain: 1. Software Update SHA1 fingerprint: 1E 34 E3 91 C6 44 37 DD 24 BE 57 B1 66 7B 2F DA 09 76 E1 FD