在 Mac 上,我正在尝试将软件许可条款添加到磁盘映像文件中,用户在安装磁盘映像之前必须同意该文件。我曾经能够使用 hdituil 的 flatten 和 unflatten 动词以及 Rez 来做到这一点(类似于这里的做法)。
但是,不推荐使用 Rez 和 flatten/unflatten 动词,并且 hdiutil flatten/unflatten 动词已从 macOS 11.0 Big Sur 中删除。我正在尝试找到一种在 macOS 11.0 上运行但运气不佳的不同方式来执行此操作的方法。我已经咨询了 IgnacioHR 最近对这个问题的回答。我认为他使用 .xml 文件和 hdiutil udifrez 的解决方案听起来很有希望;但是,我无法让终端接受执行此操作的命令。(它告诉我“没有指定图像”。)
hdiutil udifrez -xml mylicensefile.xml mydiskimage.dmg
根据此处所说的通过在磁盘映像之前包含一个空参数来修改我的命令后,终端接受我的命令但给了我另一个错误:“无法获取'mydiskimage.dmg'的资源叉:功能未实现(78) ”和“失败 - 功能未实现”。
hdiutil udifrez -xml mylicensefile.xml '' mydiskimage.dmg
我相信我得到了这个输出,因为我试图执行这个的磁盘映像以前是未展平的。要生成资源分叉,以前我只会展平磁盘映像,但现在我无法使用该选项。因此,仅使用现在在 macOS 11.0 上可用的内容,我如何将资源分支“恢复”到我的磁盘映像,以便我可以使用 udifrez 动词向其中添加许可条款 .xml 文件?
更新:我发现该命令仅在将其应用于压缩的磁盘映像时才有效。如果我这样做,那么该命令会完全按照我的预期将软件许可条款添加到我的磁盘映像中。但是,当尝试将其应用于标准的未压缩读/写磁盘映像时,该命令会失败。如果我记得以前,Rez 曾经能够将许可条款资源应用于未压缩的读/写磁盘映像,这就是为什么我希望它能够在这里做到这一点。这并不能完全回答我的问题,尽管这可能意味着我的问题的答案是未压缩的读/写磁盘映像是不可能的。