安装步骤

准备工作

  • 一个 U 盘(8 GB 以上,你不介意格式化掉里面所有数据的)——用来写入 macOS 安装器,也是你的初始启动设备
  • 一台可以正常运行的 Mac 电脑(真 Mac 或者虚拟机都可以),用来从 App Store 下载 macOS 安装器和运行 createinstallmedia 命令
  • 能够进入 Dell Precision 7740 的 BIOS 设置界面(开机时反复按 F2 键):需要在 BIOS 中禁用 Secure Boot(安全启动)、启用 UEFI 启动模式、将 SATA 控制器的工作模式设为 AHCI
  • 你自己生成的 SMBIOS 三元组序列号——详见下方第 4 步的说明。绝对不要使用仓库中默认的全零序列号启动系统

第 1 步——制作 macOS 安装 U 盘

在任意一台可以正常使用的 Mac 上操作(在你自己的这台 7740 上成功启动黑苹果之后,黑苹果本身也可以用来制作安装盘):

# 从 App Store 下载"安装 macOS Ventura",下载完成后执行以下命令:
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia \
  --volume /Volumes/MyUSB
# 系统会提示你输入 Y 确认——输入 Y 然后回车
# 注意:这条命令会彻底擦除 U 盘上的所有数据

第 2 步——挂载 U 盘上隐藏的 EFI 分区,把本仓库的 EFI 文件夹复制上去

# createinstallmedia 执行完毕后,U 盘上会自动生成一个隐藏的 EFI 系统分区:
sudo diskutil mount disk2s1   # 把 disk N 的编号换成你的 U 盘实际编号
# disk2s1 就是制作 macOS 安装盘后 U 盘上新出现的 EFI 分区

# 把本仓库的 EFI 目录完整复制到 U 盘的 EFI 分区上:
cp -R Dell-Precision-7740-OpenCore-EFI/EFI /Volumes/EFI/
# 执行完成后,U 盘上应该有 /Volumes/EFI/EFI/BOOT、/Volumes/EFI/EFI/OC 等目录

如果你的 U 盘在制作安装盘之后没有出现可以挂载的 EFI 系统分区(某些品牌的 U 盘固件行为不同),可以随便找一个空闲 U 盘,在"磁盘工具"中将其格式化为 FAT32(选择 MBR 分区方案),然后把仓库的 EFI 目录复制到那个 U 盘上——OpenCore 引导加载器不介意它运行在哪个 FAT32 分区上。两个 U 盘一起用:一个插着安装盘,一个插着 EFI 引导盘。

第 3 步——在 Dell Precision 7740 上配置 BIOS

  1. 开机时 Dell Logo 出现后反复按 F2 键 → 进入 BIOS 设置界面
  2. General → Boot Sequence:确认为 UEFI 启动模式,把制作好的 macOS 安装 U 盘设为第一启动项
  3. General → Boot List Option:选择 UEFI(不是 Legacy)
  4. Secure Boot → Secure Boot Enable:选择 OFF(关闭安全启动——OpenCore 无法在开启 Secure Boot 的环境下工作)
  5. System Configuration → SATA Operation:选择 AHCI(不是 RAID 也不是 Intel RST——macOS 不支持 RST 模式)
  6. Virtualization → VT for Direct I/O:选择 OFF(关闭 VT-d。如果在 macOS 启动时 VT-d 处于开启状态,会导致内核崩溃。如果需要用到虚拟化功能,可以在 config.plist 中通过 DisableIoMapper 参数来绕过,但对于初次安装来说直接关掉最简单)
  7. 点击 Apply(应用)然后 Exit(退出)——机器会自动重启,进入 OpenCore 的启动选择界面

第 4 步——生成你自己的 SMBIOS 序列号

本仓库提供的 config.plist 中,MLB(主板序列号)、ROM(网卡 MAC 地址)、SystemSerialNumber(系统序列号)和 SystemUUID(系统唯一标识符)这四个字段的值全部为零(所有字节都是 0x00)。在没有替换成你自己生成的序列号之前绝对不要尝试启动——使用全零序列号启动 macOS 会导致 iMessage、FaceTime、App Store 等所有需要 Apple ID 的服务全部无法使用,而且在极少数情况下可能导致 Apple 封禁你的序列号。

使用 corpnewt/GenSMBIOS 这个工具来生成合法的序列号:

git clone https://github.com/corpnewt/GenSMBIOS.git
cd GenSMBIOS
python3 GenSMBIOS.command
# 在菜单中选择机型 MacBookPro16,4
# 工具会输出以下三个值:Serial(系统序列号)、Board Serial(MLB,主板序列号)、SmUUID

然后用 ProperTree(推荐)或任意一个 plist 编辑器打开 EFI/config.plist 文件,在 PlatformInfo → Generic 路径下把生成的三个值粘贴到对应的字段中:

  • SystemSerialNumber——填入工具输出的 Serial 序列号
  • MLB——填入工具输出的 Board Serial(主板序列号)。注意:MLB 的值必须和 SystemSerialNumber 不同——如果你不小心把序列号同时填到了两个字段里,macOS 会拒绝启动
  • SystemUUID——填入工具输出的 SmUUID
  • ROM——填入你的有线网卡(或者 WiFi 网卡也行)的 MAC 地址。格式是去掉所有冒号和连字符、全部大写的 12 位十六进制字符串,例如 112233AABBCC。你可以在系统信息中找到有线网卡的 MAC 地址,或者随便用一个合法的 MAC 地址格式字符串

保存 config.plist 之后,请打开浏览器访问 checkcoverage.apple.com(Apple 官方的保修查询页面),输入你生成的 SystemSerialNumber。如果页面返回"我们很抱歉,但这个序列号不对应任何 Apple 产品"——这说明你的序列号是独一无二的,没有被任何真 Mac 占用,可以安全使用。如果页面返回了一台真实的 MacBook Pro 的信息——说明这个序列号和一台真 Mac 撞了,你需要用 GenSMBIOS 重新生成一个新的序列号,直到查询返回"不对应任何产品"为止。

第 5 步——从 U 盘首次启动并安装 macOS

  1. 把制作好的 U 盘(或两个 U 盘——一个安装盘加一个 EFI 引导盘)插入 7740 的 USB 口,按下电源键开机
  2. OpenCore 的图形化启动选择界面会出现(仓库使用的主题是 Acidanthera/GoldenGate),默认 5 秒后自动选择第一个启动项
  3. 在界面中选择 Install macOS Ventura(如果你看到多个选项,选标有"Install macOS"的那个),按回车键
  4. 屏幕上会滚动显示大量的白字黑底的详细启动日志(这是因为 boot-args 中包含了 -v 参数——verbose 模式)。正常情况下大约 1 到 3 分钟后,你应该会进入 macOS 安装器的图形化界面
  5. 进入安装器后,先从顶部菜单栏打开"磁盘工具"(Disk Utility)。在磁盘工具中选择你要安装 macOS 的目标 NVMe 固态硬盘,点击"抹掉"(Erase),格式选择 APFS,方案选择 GUID 分区映射注意:不需要手动创建一个 MS-DOS(FAT)分区作为 EFI 分区——GUID 分区方案会自动创建一个 200MB 的隐藏 EFI 分区。
  6. 关闭磁盘工具,回到安装器主界面,点击"安装 macOS",按照屏幕上的提示一步步操作。安装过程中系统会自动重启几次——每次重启后都要从 U 盘启动(因为内置硬盘的 EFI 分区上还没有 OpenCore),在 OpenCore 启动界面上选择"Install macOS"或后续出现的"macOS Installer"选项,直到安装进度条走完、进入桌面为止

第 6 步——把 EFI 引导文件复制到内置硬盘

当 macOS 安装完毕、你从 U 盘启动成功进入新系统桌面之后:

# 挂载内置硬盘的 EFI 系统分区(ESP)
sudo diskutil mount disk0s1   # disk0s1 通常是内置 NVMe 硬盘的 EFI 分区

# 把 U 盘上的 EFI 引导文件完整复制到内置硬盘的 EFI 分区:
cp -R /Volumes/EFI/EFI /Volumes/EFI/
# 如果你之前是把 EFI 放在另一个单独 U 盘上的,用原始仓库目录来复制:
sudo cp -R Dell-Precision-7740-OpenCore-EFI/EFI /Volumes/EFI/

重启电脑。在重启时按 F2 进入 BIOS 设置,把启动顺序改为内置 NVMe 硬盘优先。从现在起你就不需要再插 U 盘了——内置硬盘上的 OpenCore 会自动加载并启动 macOS。

第 7 步——安装后的必要系统设置

macOS 在笔记本电脑上默认使用"安全睡眠"模式(hibernatemode=3),即每次合盖进入睡眠时,系统会把当前内存中的全部内容写入硬盘上的 /var/vm/sleepimage 文件中。这个过程叫"休眠"(hibernate)——和普通睡眠(sleep)不同,休眠时内存会完全断电,唤醒时需要从硬盘上的 sleepimage 文件把内存内容读回来。在黑苹果上,OpenCore 无法正确地从 sleepimage 文件中恢复内存状态——如果你让系统进入了深度休眠,再次开机时 OpenCore 会因为读不到正确的内存镜像而直接触发内核崩溃(kernel panic),表现出来就是"合盖之后再打开,系统不是从上次的状态恢复,而是直接重启了"。

解决方法是强制 macOS 使用纯内存睡眠(不写硬盘),并且禁用所有可能重新开启硬盘睡眠的系统功能。按照 Apple 官方的 PMSET(1) 使用手册,在一台笔记本上"永不休眠"的标准设置命令如下:

# 第一步:强制纯内存睡眠
# hibernatemode=0:只使用内存睡眠,不向硬盘写入 sleepimage 文件
sudo pmset -a hibernatemode 0

# standby=0:禁止内核在 standbydelay 时间(默认 3 小时)后自动触发深度休眠
# 如果不关掉这个,你的电脑合盖 3 小时后还是会自动休眠然后崩溃
sudo pmset -a standby 0

# autopoweroff=0:关闭欧盟 ErP Lot6 节能标准规定的"插电 4 小时后自动休眠"
# 这个标准在真 Mac 上没问题,但在黑苹果上会导致你第二天早上发现电脑关机了
sudo pmset -a autopoweroff 0

# 第二步:清理已经存在的 sleepimage 文件(设定以上三项后这个文件不会再自动生成)
# 但为了防止某些系统进程强制重新创建它,我们用一个老技巧:先删除,
# 再创建一个空的同名文件,然后给这个空文件加上"不可更改"的文件系统标记
sudo rm /var/vm/sleepimage
sudo touch /var/vm/sleepimage
sudo chflags uchg /var/vm/sleepimage

执行完毕后,用 pmset -g 命令查看当前的电源管理设置,确认 hibernatemode、standby 和 autopoweroff 这三个字段的值都显示为 0。

# 第三步:禁用各种会在背包里自动唤醒电脑并耗尽电池的功能
# 这些功能在真 Mac 笔记本上也许有用,但在黑苹果上只会让你从包里拿出电脑时
# 发现它滚烫而且电池已经耗光了

sudo pmset -a proximitywake 0   # 关闭 iCloud 设备接近唤醒
                                 # (你的 iPhone 靠近 Mac 时自动唤醒 Mac)

sudo pmset -a powernap 0        # 关闭睡眠期间的 Power Nap(后台刷新邮件、日历等)
                                 # 这个功能需要硬件支持,黑苹果上开它只会导致随机唤醒

sudo pmset -a womp 0            # 关闭网络唤醒(Wake on LAN)
                                 # 除非你需要远程 SSH 进这台电脑,否则关了更省电

sudo pmset -a acwake 0          # 关闭插上充电器时自动唤醒
                                 # 想象一下:半夜插上充电器→电脑自动开机→屏幕亮了

sudo pmset -a tcpkeepalive 0    # 关闭睡眠期间的 TCP 连接保持
                                 # 这项会让网卡在睡眠期间也保持活动状态——非常耗电

sudo pmset -a lidwake 1         # 这个一定要保持开启——打开屏幕盖子时唤醒电脑
                                 # 如果把这项也关了,你打开盖子后还得按电源键才能唤醒

本仓库还提供了 HibernationFixup.kext 这个内核扩展——它在操作系统内核的底层修补睡眠和休眠的流程,确保即使有某个应用程序强行调用了安全睡眠模式,或者系统更新后重置了某些电源设置,macOS 的唤醒路径也不会因为黑苹果的兼容性问题而崩溃。把 kext 加上上面这些 pmset 设置,在 Dell Precision 7740 上合盖再开盖的循环就是完全可靠的。

TRIM 支持(仅适用于非 Apple 品牌的 NVMe 固态硬盘)

如果你把 macOS 安装到了一块第三方品牌的 NVMe 固态硬盘上(三星、西部数据、海力士、铠侠等绝大多数 PC 硬盘品牌都属于非 Apple 品牌),你需要手动开启 TRIM 功能。TRIM 让操作系统在删除文件时通知固态硬盘"这些数据块已经不需要了,你可以提前擦除它们",从而维持硬盘的长期写入性能和使用寿命。

通常启用 TRIM 需要临时关闭 SIP(系统完整性保护),但本仓库默认的 csr-active-config = e7030000(对应 SIP 值 0x3e7,部分禁用)已经允许 trimforce 命令执行,所以你不需要额外操作 SIP 设置:

sudo trimforce enable   # 系统会要求你确认两次(每次输入 Y),然后自动重启
# 重启之后,用以下命令验证 TRIM 是否已成功开启:
system_profiler SPNVMeDataType | grep TRIM
# 输出结果应该显示:"Yes"(而不是"No")

内置 1920x1080 屏幕的 HiDPI 分辨率设置

Dell Precision 7740 标配的是一块 17.3 英寸、分辨率为 1920x1080 的 IPS 屏幕。这个分辨率在 Windows 下字体大小刚好合适,但在 macOS 下默认的 1080p 分辨率会让文字和 UI 元素看起来偏小——因为 macOS 的 UI 是为 Retina(高分辨率)屏幕设计的。macOS 提供了 HiDPI 模式(类似于 Windows 的缩放),可以在不降低清晰度的前提下让文字和 UI 看起来更大。

对于 macOS Monterey(12)及更高版本:苹果已经移除了传统的 DisplayResolutionEnabled plist 配置键,你只需要使用系统自带的"缩放"分辨率菜单即可。操作方法:系统设置 → 显示器 → 按住键盘上的 Option(Alt)键不放,同时点击"缩放"单选按钮。原本隐藏的 HiDPI 分辨率选项会出现在列表中——在 7740 的 1080p 屏幕上,唯一有效的 HiDPI 分辨率是 1680×1050(字体大小大约是原生 1080p 的 1.25 倍,视觉效果类似于一台低分辨率的 Retina 屏幕)。

对于 macOS Big Sur(11)及更早版本:

# 仅限 Big Sur 及更早版本——Monterey 及以上不需要这步
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool YES
# 执行后注销并重新登录,然后在系统偏好设置 → 显示器中应该能看到 HiDPI 选项