安装步骤
准备工作
- 一个 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
- 开机时 Dell Logo 出现后反复按 F2 键 → 进入 BIOS 设置界面
- General → Boot Sequence:确认为 UEFI 启动模式,把制作好的 macOS 安装 U 盘设为第一启动项
- General → Boot List Option:选择 UEFI(不是 Legacy)
- Secure Boot → Secure Boot Enable:选择 OFF(关闭安全启动——OpenCore 无法在开启 Secure Boot 的环境下工作)
- System Configuration → SATA Operation:选择 AHCI(不是 RAID 也不是 Intel RST——macOS 不支持 RST 模式)
- Virtualization → VT for Direct I/O:选择 OFF(关闭 VT-d。如果在 macOS 启动时 VT-d 处于开启状态,会导致内核崩溃。如果需要用到虚拟化功能,可以在 config.plist 中通过
DisableIoMapper参数来绕过,但对于初次安装来说直接关掉最简单) - 点击 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——填入工具输出的 SmUUIDROM——填入你的有线网卡(或者 WiFi 网卡也行)的 MAC 地址。格式是去掉所有冒号和连字符、全部大写的 12 位十六进制字符串,例如112233AABBCC。你可以在系统信息中找到有线网卡的 MAC 地址,或者随便用一个合法的 MAC 地址格式字符串
保存 config.plist 之后,请打开浏览器访问 checkcoverage.apple.com(Apple 官方的保修查询页面),输入你生成的 SystemSerialNumber。如果页面返回"我们很抱歉,但这个序列号不对应任何 Apple 产品"——这说明你的序列号是独一无二的,没有被任何真 Mac 占用,可以安全使用。如果页面返回了一台真实的 MacBook Pro 的信息——说明这个序列号和一台真 Mac 撞了,你需要用 GenSMBIOS 重新生成一个新的序列号,直到查询返回"不对应任何产品"为止。
第 5 步——从 U 盘首次启动并安装 macOS
- 把制作好的 U 盘(或两个 U 盘——一个安装盘加一个 EFI 引导盘)插入 7740 的 USB 口,按下电源键开机
- OpenCore 的图形化启动选择界面会出现(仓库使用的主题是 Acidanthera/GoldenGate),默认 5 秒后自动选择第一个启动项
- 在界面中选择
Install macOS Ventura(如果你看到多个选项,选标有"Install macOS"的那个),按回车键 - 屏幕上会滚动显示大量的白字黑底的详细启动日志(这是因为 boot-args 中包含了
-v参数——verbose 模式)。正常情况下大约 1 到 3 分钟后,你应该会进入 macOS 安装器的图形化界面 - 进入安装器后,先从顶部菜单栏打开"磁盘工具"(Disk Utility)。在磁盘工具中选择你要安装 macOS 的目标 NVMe 固态硬盘,点击"抹掉"(Erase),格式选择 APFS,方案选择 GUID 分区映射。注意:不需要手动创建一个 MS-DOS(FAT)分区作为 EFI 分区——GUID 分区方案会自动创建一个 200MB 的隐藏 EFI 分区。
- 关闭磁盘工具,回到安装器主界面,点击"安装 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 选项