macos安装包需按类型处理:.pkg用xar解包或peazip指定xar格式打开,查看archive.bom和payload;.dmg需挂载后验证签名、结构及哈希,三重校验缺一不可。

macOS 应用安装包(如 .pkg 或 .dmg)不是普通压缩文件,直接双击或用常规解压工具打开往往失败。要真正解压并检查其内部结构,得按类型分别处理:.pkg 是 XAR 归档,.dmg 是磁盘映像,二者验证逻辑完全不同。
.pkg 文件:用 PeaZip 或终端解包查看 Payload
.pkg 本质是 xar 打包的归档,含 Archive.bom(文件清单)和 Payload(二进制资源流)。PeaZip 默认不自动识别 .pkg,需手动指定格式:
- 启动 PeaZip → 【File】→【Open archive…】→ 将右下角“文件类型”改为 XAR archives (*.pkg, *.xar)
- 选中 .pkg 文件打开,即可看到 Contents、Resources、Archive.bom 等条目
- 右键 Payload → 【Extract selected files】提取原始安装资源
若 PeaZip 仍不稳定,推荐用 macOS 自带终端预处理:
- 打开终端,运行:
xar -xf /path/to/app.pkg(替换为实际路径) - 执行后生成标准文件夹结构,可直接用 Finder 或 PeaZip 浏览
- 提取出的
Archive.bom可用文本编辑器打开,核对安装所需文件是否完整
.dmg 文件:挂载后检查签名与目录结构
.dmg 是可挂载的磁盘映像,不能“解压”,而应先挂载再验证:
- 双击 .dmg 或用命令
hdiutil attach /path/to/image.dmg挂载 - 进入挂载卷(如
/Volumes/Install macOS Sonoma),运行:ls -lF确认存在Install macOS.app、BaseSystem.dmg、Contents/Info.plist等关键组件 - 检查安装器签名:
codesign -dv --verbose=4 "/Volumes/.../Install macOS.app",确认 Authority 显示 Apple Root CA 或 Apple Distribution,且 Notarized: yes
挂载后还可运行:hdiutil verify /path/to/image.dmg,扫描映像块级完整性,报告 CRC 错误。
校验完整性:哈希 + 签名 + 结构三重确认
光能打开不等于可靠。真正可信的安装包必须同时满足三项:
-
SHA-256 哈希一致:终端执行
shasum -a 256 /path/to/image.dmg,比对官网或开发者页面提供的 checksum(注意大小写与空格) -
Apple 代码签名有效:对挂载后的 .app 或 .pkg 运行
codesign -dv,无 “invalid signature” 或 “sealed resource is missing” 提示 -
关键文件结构完整:挂载后检查是否存在
Contents/Info.plist、Contents/MacOS/InstallAssistant(应返回 Mach-O universal binary)、_CodeSignature/目录等
常见误区提醒
很多人以为“能双击运行就说明没问题”,其实风险很高:
- 仅靠
open命令或 Finder 双击,无法发现签名过期、BOM 清单被篡改、Payload 数据截断等问题 - 用 The Unarchiver 或 Keka 解压 .pkg 会失败——它们不支持 XAR 格式,除非手动启用或换用 xar 工具
- MD5 校验已不安全,苹果官方早已弃用,仅作辅助参考,不可替代 SHA-256











