OpenCore Legacy Patcher (OCLP) 0.3.2 introduced a set of Booter and Kernel patches that allow using unsupported/dropped SMBIOSes in newer versions of macOS while still being able to receive OTA system updates. This is achieved in two stages: first, the board id check is skipped and in the 2nd stage, kernel patches are applied that report a special board-id to Apples update servers that indicate, that the system is running inside a Virtual Machine:
Parrotgeek1's VMM patch set would force
kern.hv_vmm_presentto always returnTrue. With hv_vmm_present returning True, bothOSInstallerSetupInternalandSoftwareUpdateCorewill set theVMM-x86_64board-id while the rest of the OS will continue with the original ID.
- Patching
kern.hv_vmm_presentover manually setting the VMM CPUID allows for native features such as CPU and GPU power management.
Source: OCLP issue 543
This construct allows installing and receiving OTA system updates for macOS 11.3 and newer on otherwise unsupported Board-IDs/CPUs. Although OCLP's primary aim is to install OpenCore and macOS on legacy Macs, these patches can be utilized on Hackintoshes as well while using the "native", designated SMBIOS for a given CPU family which improves CPU and GPU Power Management - especially on Laptops.
Although installing macOS on systems with an unsupported SMBIOS was possible long before these patches existed (via boot-arg -no_compat_check), receiving OTA system updates is impossible if this boot-arg is active.
Important
- With the release of
RestrictEvents.kextv1.1.3, the Kernel Patches were implemented into the kext itself, so adding them is no longer necessary. If yourconfig.pliststill contains these Kernel Patches, please disable/delete them! - Prior to the release of
RestrictEvents.kext, the kernel patches had negative effects on Bluetooth since enabling the VMM Board-ID skipped loading firmware of Bluetooth devices. This has been resolved now (→ more details).
Minimum macOS: Big Sur 11.3 or newer (Darwin Kernel 20.4+) is mandatory!
Intel CPU families:
- 1st Gen Intel Core CPUs (req. SurPlus Kernel Patches)
- Sandy Bridge (req. SurPlus Kernel Patches)
- Ivy Bridge
- Haswell/Broadwell
- Skylake (to continue using SMBIOS
iMac17,1on macOS 13+). Requires additional iGPU spoof so the Intel HD 530 can be used. - Kaby Lake (required for intstalling/booting macOS 26)
- Coffee Lake (required for installing/booting macOS 26)
Note
10th Gen Intel Core CPUs (Comet Lake) don't need this spoof since they are still supported by macOS 26 Tahoe.
-
Installing macOS 11.3+ on systems with unsupported CPUs and SMBIOSes/Board-IDs
-
Enabling System Updates. As a side effect, you can use these patches to workaround issues with System Updates in macOS 11.3 and newer when using an SMBIOS of a Mac model with a T1/T2 security chip, such as (value in brackets =
SecureBootModel):- MacBookPro15,1 (
J680), 15,2 (J132), 15,3 (J780), 15,4 (J213) - MacBookPro16,1 (
J152F), 16,2 (J214K), 16,3 (J223), 16,4 (J215) - MacBookAir8,1 (
J140K), 8,2 (J140A) - MacBookAir9,1 (
J230K) - Macmini8,1 (
J174) - iMac20,1 (
J185), 20,2 (J185F) - iMacPro1,1 (
J137) - MacPro7,1 (
J160)
- MacBookPro15,1 (
Tip
If you're using an SMBIOS from a T2 model and your system doesn't require root patching with OpenCore Legacy Patcher, you can use the iBridged kext instead of RestrictEvents (More details). However, this scenario is unlikely since macOS Tahoe requires root patches just to re-enable audio.
Normally, macOS wouldn't be able to receive System Update Notifications (and therefore wouldn't be able to download OTA System Updates) under the following conditions:
- Using a
csr-active-configbitmask containing the flags "Allow Apple Internal" and "Allow unauthenticated Root" to lowerSystem Integrity Protection(SIP). Lowering SIP is mandatory for applying root-patches with OCLP to the system volume to re-enable legacy hardware since it cannot be enabled by injecting settings and kexts via OpenCore alone alone. But if these 2 SIP flags are active, you won't receive System Update Notifications any longer. Since re-installing files on the system partition also breaks its security seal,SecureBootModelhas to be disabled in order to boot the system afterwards. - Using an SMBIOS of one of the Mac models listed above in combination with
SecureBootModelset toDisabled(instead of using the correct "J" value). - Using boot-arg
-no_compat_checkwhich allows booting with an unsupported board-id but it also disables system updates.
In conclusion: in order to be able to boot the system with the designated SMBIOS, patched-in drivers and receive system updates, the Board-ID VMM spoof is the only workaround.
- Mount your EFI
- Open your
config.plistwith ProperTree - Copy the "Skip Board ID check" patch from OCLP's
Booter/Patchsection to yourconfig.plistand enable it. - Add
RestrictEvent.kext1.1.3 or newer to yourEFI/OC/Kextfolder andconfig.plist - Delete
-no_compat_checkboot-arg (if present) - Add
revpatch=sbvmmto boot-args or as as an NVRAM variable:

- Optional (but recommended): Under
PlatformInfo/Generic, pick the designated SMBIOS for your CPU and generate new serials, etc (with OCAT or GenSMBIOS for example) - Save your config and reboot.
- Install macOS 12 or newer.
Proof that the spoof is working (Click to reveal)
I tested the Board-id vmm spoof on my Lenovo T530 Notebook (Ivy Bridge), using the MacBookPro10,1 SMBIOS, which is officially not compatible with macOS Monterey. After rebooting, the system started without using -no_compat_check boot-arg, as you can see here:
Terminal shows the currently used Board-ID which belongs to the MacBookPro10,1 SMBIOS as you can see in Clover Configurator. Usually, running macOS 12+ would require SMBIOS MacBookPro11,4 which uses a different Board-ID:
Next, I checked for updates and was offered macOS 12.1 beta:
Which I installed…
Installation went smoothly and macOS 12.1 booted without issues:
- After upgrading to macOS 12+, you have to re-install graphics drivers for legacy iGPUs/dGPUs that are no longer supported by macOS, such as: Intel HD Graphics (Ivy Bridge to Skylake), NVIDIA Kepler and AMD Vega, Polaris and GCN. To do so, you can use OpenCore Patcher GUI App
- For getting macOS Ventura and newer to work on unsupported platforms, check the OCLP Wintel section for detailed configuration guides (1st to 6th Gen Intel Core CPUs).
- VMM Usage Notes
- Dortania for OpenCore Legacy Patcher
- parrotgeek1 for VMM Patches
- reenigneorcim for SurPlus




