目录:

清理四叶草

验证您是否正在使用NVRAM

启用仿冒的NVRAM(使用nvram.plist)

本节适用于那些没有本机NVRAM的用户,与macOS不兼容的本机NVRAM的最常见硬件是X99和某些X299系列芯片组:

  • X99
  • X299

对于B360,B365,H310,H370,Z390用户,请确保在EFI / OC / ACPI和config.plist-> ACPI-> Add下都具有SSDT-PMC

清理三叶草

因此,有些人可能没有注意到,但是Clover可能已在macOS中安装了RC脚本以进行正确的NVRAM仿冒。这是一个问题,因为它与OpenCore的仿冒方法冲突。

要删除的文件:

  • /Volumes/EFI/EFI/CLOVER/drivers64UEFI/EmuVariableUefi-64.efi
  • /Volumes/EFI/nvram.plist
  • /etc/rc.clover.lib
  • /etc/rc.boot.d/10.save_and_rotate_boot_log.local
  • /etc/rc.boot.d/20.mount_ESP.local
  • /etc/rc.boot.d/70.disable_sleep_proxy_client.local.disabled
  • /etc/rc.shutdown.d/80.save_nvram_plist.local​

如果文件夹为空,则也将其删除:

  • /etc/rc.boot.d
  • /etc/rc.shutdown.d​

验证您是否正在使用NVRAM

首先,打开终端并一次运行以下一行:

sudo -s
sudo nvram -c 
sudo nvram myvar=test
exit

现在重启并运行:

nvram -p | grep -i myvar

如果没有任何返回,则您的NVRAM无法正常工作。如果包含myvar test返回的行,则您的NVRAM正在工作。

注意:nvram -c需要关闭SIP,另一种方法是在引导菜单上擦除NVRAM。提醒您需要Misc -> Security -> AllowNvramReset -> YES

启用仿冒的NVRAM(使用nvram.plist)

要启用仿冒的NVRAM,您需要设置3事项:

在您的config.plist中:

  • Booter引导程序
    • DisableVariableWrite: 调成 YES
  • Misc -> Security
    • ExposeSensitiveData: 调成 0x3
  • NVRAM
    • LegacyEnable: 调成 YES
    • LegacyOverwrite 调成 YES
    • LegacySchema:设置NVRAM变量(OpenCore将其与nvram.plist中存在的变量进行比较)
    • WriteFlash: 调成 NO

在您的EFI中:

  • OpenRuntime.efi 驱动程序(正常睡眠,关机和其他服务才能正常工作需要

现在获取“ LogoutHook.command”并将其放置在安全的地方(例如,在用户目录中,如下所示):

/Users/(your username)/LogoutHook/LogoutHook.command

打开终端并运行以下命令:

sudo defaults write com.apple.loginwindow LogoutHook /Users/(your username)/LogoutHook/LogoutHook.command

瞧!您已经模拟了NVRAM!

请记住,这需要nvram命令支持该-x标志才能正常工作,而该标志在macOS 10.12及更低版本中不可用。如果要安装macOS 10.12或更早版本,则需要复制nvram.mojave到与相同的文件夹中LogoutHook.command,这可以通过调用它而不是系统nvram命令来解决。

还有一点需要注意的是,macOS只能读取nvram.plist,但除非运行关机过程,否则将无法写入nvram.plist。这意味着运行上面的测试将无法进行