我正在提取macOS sierra更新包 - macOSUpd10.12.1.pkg使用以下命令到/ tmp/macosupd目录.
pkgutil --expand /Volumes/macOS\ Sierra\ Update/macOSUpd10.12.1.pkg /tmp/macosupd
Run Code Online (Sandbox Code Playgroud)
我可以看到以下包捆绑在metapackage中.
-rwxr-xr-x 1 Distribution
drwxr-xr-x 6 FirmwareUpdate.pkg
drwxr-xr-x 5 FullBundleUpdate.pkg
drwxr-xr-x 36 Resources
drwxr-xr-x 6 macOSUpd10.12.1.pkg
Run Code Online (Sandbox Code Playgroud)
我无法提取Payload文件的内容.例如,当我尝试提取macOSUpd10.12.1.pkg的Payload时,我收到以下错误消息:
用tar:
tar -xvf macOSUpd10.12.1.pkg/Payload
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
Run Code Online (Sandbox Code Playgroud)
与xar:
xar -xvf macOSUpd10.12.1.pkg/Payload
Error opening xar archive: macOSUpd10.12.1.pkg/Payload
Run Code Online (Sandbox Code Playgroud)
当我在有效负载文件上运行file命令时,我得到一条消息:
file macOSUpd10.12.1.pkg/Payload
macOSUpd10.12.1.pkg/Payload: data
Run Code Online (Sandbox Code Playgroud)
通过使用xxd命令查看Payload文件的初始位,我可以看到文件类型pbzx
xxd macOSUpd10.12.1.pkg/Payload
00000000: 7062 7a78 0000 0000 0100 0000 0000 0000 pbzx............
00000010: 0100 0000 0000 0000 0031 …Run Code Online (Sandbox Code Playgroud)