本文档介绍了 Docker-OSX 中的序列号生成系统,解释了为什么序列号对于 macOS 虚拟化至关重要,生成过程如何工作,以及如何根据不同的用例配置序列号。
Docker-OSX 中的序列号生成为虚拟化的 macOS 系统提供唯一的硬件标识符,使其看起来像合法的 Apple 设备。这对于以下方面至关重要:
本文档专门介绍序列号的生成和应用。有关 OpenCore 配置的详细信息,请参阅 OpenCore 配置。
在 macOS 中,有几个唯一的标识符可以验证系统是否为Genuine Apple设备
登录时,Apple 服务会检查这些值。不正确或重复的值可能会触发账户锁定或服务限制。
下图展示了序列号生成与 Docker-OSX 的集成方式
来源: README.md1214-1396 custom/generate-unique-machine-values.sh1-397 custom/generate-specific-bootdisk.sh1-291
Docker-OSX 提供三种主要的序列号生成和应用方法
最简单的方法是在启动容器时使用环境变量
用于在运行时之前生成一组值
此脚本为一台或多台虚拟机创建带有随机序列信息的输出文件。
来源: custom/generate-unique-machine-values.sh1-397
用于创建带有预定序列值的启动盘
来源: custom/generate-specific-bootdisk.sh1-291
系统采用以下方法生成一致、逼真的值
macserial 工具生成来源: custom/generate-unique-machine-values.sh215-221 custom/generate-unique-machine-values.sh276-290
生成的价值通过以下方式插入到 OpenCore 配置中
{{SERIAL}})的模板 config.plist 会进行值替换config.plist 模板中的占位符
{{DEVICE_MODEL}}{{SERIAL}}{{BOARD_SERIAL}}{{UUID}}{{ROM}}{{WIDTH}}{{HEIGHT}}{{KERNEL_ARGS}}来源: custom/generate-unique-machine-values.sh341-349 custom/generate-specific-bootdisk.sh249-257
为了确保序列号在容器重启后保持不变
保留您生成的启动盘:
保存您的序列值:
在后续运行中重新使用这些值,并使用 GENERATE_SPECIFIC 选项。
序列号生成系统还管理
设备型号选择:控制模拟的 Mac 型号
显示分辨率:配置虚拟显示器
常见分辨率
要检查序列号是否正确应用
如果 Apple 服务不识别您的序列号
SERIAL、BOARD_SERIAL、UUID、MAC_ADDRESS 和导出的 ROM)DEVICE_MODEL 是否合适(较新的服务可能需要较新的型号)序列号生成是 Docker-OSX 的关键组成部分,它允许虚拟 macOS 实例
该系统提供了灵活的选项,用于在运行时和准备阶段生成随机或特定的序列号。