TABLE of CONTENTS (Click to reveal)
Although installing and running macOS Ventura and newer on machines with Intel Haswell and Broadwell CPUs is possible with OpenCore and the OpenCore Legacy Patcher (OCLP), it’s not officially supported by Dortania – their support is limited to Apple Macs. Since no guide exists, I created this one in order to bridge the gap. I wrote it based on my experiences, analyzing the config and EFI folder and log after building OpenCore with OCLP for a Haswell system.
All good. |
In macOS Ventura, support for CPU families prior to Kaby Lake was dropped. For Haswell/Broadwell CPUs this mainly affects integrated Graphics and Metal support. So what we will do is prepare the config with the required patches, settings and kexts for installing and running macOS Ventura and then add iGPU/GPU drivers in Post-Install using OpenCore Legacy Patcher.
This guide is intended to provide general information for adjusting your EFI and config.plist to install and run macOS Ventura and newer on unsupported Wintel systems. It is not a comprehensive configuration guide. Please refrain from using the "report issue" function to seek individualised assistance for fixing your config. Such issue reports will be closed immediately!
This is what you need to know before attempting to install macOS Ventura on unsupported systems:
⚠️ Backup your working EFI folder on a FAT32 formatted USB Flash Drive just in case something goes wrong because we have to modify the config and content of the EFI folder.- iGPU/GPU: Check if your iGPU/GPU is supported by OCLP. Although Drivers for Intel, NVIDIA and AMD cards can be added in Post-Install, the list is limited
- Check if any peripherals you are using are compatible with macOS 12+ (Printers, WiFi and BlueTooth come to mind).
- Networking:
- For Ethernet, there are kexts for legacy LAN controllers available here
- Wifi and Bluetooth:
- For enabling Broadcom Wifi/BT Cards, you will need a different set of kexts to load which need to be controlled via
MinKernel
andMaxKernel
settings. On macOS 12.4 and newer, a new address check has been introduced inbluetoothd
, which will trigger an error if two Bluetooth devices have the same address. This can be circumvented by adding boot-arg-btlfxallowanyaddr
(provided by BrcmPatchRAM kext). - Same applies to Intel WiFi/BT cards using OpenIntelWirless kexts
- Enabling Wifi in macOS Sonoma requires additional kext and also applying root patches in Post-Install!
- For enabling Broadcom Wifi/BT Cards, you will need a different set of kexts to load which need to be controlled via
- Security: Modifying the system with OCLP Requires SIP, Apple Secure Boot and AMFI to be disabled so there are some compromises in terms of security.
- System Updates: Incremental (or delta) updates won't be available after applying root patches with OCLP. Instead, the whole macOS Installer will be downloaded every time (approx. 15 GB for the latest OS), since root patching breaks the security seal of the volume! 💡 In Haswell and newer, you can actually workaround this issue by reverting the root patches prior to checking for updates. Then, a regular incremental update will be installed which is much smaller. Afterwards you just have to re-apply the root patches again.
- Other: Check the links below for in-depth documentation about components/features that have been removed from macOS 12 and newer and the impact this has on systems prior to Kaby Lake. But keep in mind that this was written for real Macs so certain issues don't apply to Wintel systems.
Update OpenCore and kexts to the latest version to maximize compatibility with macOS. To check which version of OpenCore you're currently using, run the following commands in Terminal:
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
Listed below, you find the required modifications to prepare your config.plist
and EFI folder for installing macOS Monterey or newer on Haswell/Broadwell systems. You can use this .plist which contains all the necessary settings for cross-referencing.
💡 If your system (or components thereof) doesn't work afterwards, please refer to OCLP's patch documentation and see if need additional settings or kexts.
Config Section | Action | Description |
---|---|---|
Booter/Patch |
Add and enable the following Booter patch from OCLP's config: |
|
DeviceProperties/Add |
PciRoot(0x0)/Pci(0x2,0x0) – Verify/adjust Framebuffer patch.
|
iGPU Support: Intel HD 4200/4400/4600, HD 5000/5100/5200/5600 and Iris Pro 6200
AAPL,ig-platform-id ! |
Kernel/Add and EFI/OC/Kexts |
Add the following Kexts:
|
|
Kernel/Block |
Block com.apple.iokit.IOSkywalkFamily : |
Blocks macOS'es IOSkywalk kext, so the injected one will be used instead. Only required for "Modern" Wifi Cards (→ Wifi Patching Guide). |
Kernel/Emulate (HEDT only!) |
Haswell E:
|
|
Kernel/Patch |
Add and enable the following Kernel Patches from OCLP (apply MinKernel and MaxKernel settings as well):
|
|
Misc/Security |
|
Required when patching in graphics drivers for AMD and NVIDIA cards. Intel HD graphics might work with SecureBootModel set to Default . Try for yourself. |
NVRAM/Add/...-4BCCA8B30102 |
Add the following Keys:
|
Explanaitons:
|
NVRAM/Delete/...-4BCCA8B30102 (Array) |
Add the following Strings:
|
Deletes NVRAM for these parameters before writing them. Otherwise you would need to perform an NVRAM reset every time you change any of them in the corresponding Add section. |
NVRAM/Add/...-FE41995C9F82 |
csr-active-config to: 03080000 Add the following boot-args :
|
|
UEFI/Drivers and EFI/OC/Drivers |
Adds a boot menu entry to perform an NVRAM reset but without resetting the order of the boot drives. Requires a BIOS with UEFI support. |
Caution
Don't add the NVRAM parameter OCLP-Version
to your config – it's meant for real Macs only! It checks if your config.plist
is up to par with the one provided by OCLP. If the version in your config is lower, a pop-up will appear asking you if you would like to update OpenCore:
If you would press "OK" in this scenario, your OC
folder would be replaced by the one created for the corresponding Mac model leaving your macOS installation in an unbootable state!
Once you've added the required kexts and made the necessary changes to your config.plist, save, reboot and perform an NVRAM Reset. If your system still boots fine after that, you can now prepare the system for installing macOS 13.
If your system reboots successfully, we need to edit the config one more time to adjust the SMBIOS depending on the macOS Version currently installed.
When upgrading from macOS 11.3 or newer, we can use macOSes virtualization capabilities to trick it into "thinking" that it is running in a virtual machine so spoofing a macOS compatible SMBIOS is no longer a requirement. Based on your system, use one of the following correct/native SMBIOSes for Haswell/Broadwell CPUs:
- Mount your EFI and open your config.plist.
- Under
PlatformInfo/Generic
, changeSystemProductname
resembling your hardware.- Desktops:
iMac14,4
→ For Haswell with iGPU onlyiMac15,1
→ For Haswell with dGPUiMac16,1
→ For Broadwell
- Laptops/NUCs (Haswell):
MacBookAir6,1
= 11″ Screen, Dual Core, iGPU: HD 5000MacBookAir6,2
= 13″ Screen, Dual Core, iGPU: HD 5000MacBookPro11,1
= 13″ Screen, Dual Core, iGPU: Iris 5100MacBookPro11,2
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200MacBookPro11,3
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200 + dGPU: GT 750MMacBookPro11,4
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200MacBookPro11,5
= 5″ Screen, Quad Core, iGPU: Iris Pro 5200 + dGPU: R9 M370XMacmini7,1
= NUCs/USDTs with HD 5000/Iris 5100 iGPU
- Laptops/NUCs (Broadwell):
MacBook8,1
= 12″ Screen, Dual Core (7 Watts), iGP: HD 5300MacBookAir7,1
= 11″ Screen, Dual Core (15 W), iGPU: HD 6000MacBookAir7,2
= 13″ Screen, Dual Core (15 W), iGPU: HD 6000MacBookPro12,1
= 13″ Screen, Dual Core (28 W), iGPU: Iris 6100MacBookPro11,2
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200MacBookPro11,3
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200 + dGPU: GT 750MMacBookPro11,4
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200MacBookPro11,5
= 15″ Screen, Quad Core, iGPU: Iris Pro 5200 + dGPU: R9 370XiMac16,1
= NUC with HD 6000 or Iris Pro 6200
- High Ende Desktop (Haswell/Broadwell-E):
iMacPro1,1
- Desktops:
- Generate new Serials with GenSMBIOS or OCAT
Since macOS Catalina and older lack the virtualization capabilities required to apply the VMM Board-ID spoof, switching to a supported SMBIOS temporarily is mandatory in order to be able to install macOS Ventura or newer. Otherwise you will be greeted by the crossed-out circle instead of the Apple logo when trying to boot. So adjust the SystemProductName
(under PlatformInfo
) accordingly.
Supported SMBIOSes:
- Desktop:
iMac18,1
or newerMacPro7,1
oriMacPro1,1
(High End Desktops)
- Laptop:
MacBookPro14,1
orMacBookAir8,1
- NUC:
Macmini8,1
Generate new Serials using GenSMBIOS or OCAT
Note
Once macOS is up and running, you can switch to an SMBIOS designed for Haswell/Broadwell systems for optimal CPU/GPU Power Management.
With all the prep work out of the way you can now upgrade to macOS Ventura or newer. Depending on the version of macOS you are coming from, the installation process differs.
- Download the latest release of OpenCore Patcher GUI App and run it
- Click on "Create macOS Installer"
- Next, click on "Download macOS Installer"
- Select the macOS version you want to install
- Once the download is completed, the "Install macOS…" app will be located the "Programs" folder.
Note
OCLP can also create a USB installer if you want to perform a clean install (highly recommended). Creating a USB installer is a necessity if you want to install an older OS since macOS does not allow downgrading.
Only applicable when upgrading from macOS 11.3+. If you are on macOS Catalina or older, use Option 2 instead.
- Run the "Install macOS…" App
- There will be a few reboots
- Boot from the new macOS install partition until it's no longer present in the Boot Picker
Once the installation is completed and the system boots it will run without graphics acceleration if you only have an iGPU or if you GPU is not supported by the newer version of macOS. We will address this next in Post-Install.
Tip
Instead of upgrading your runnning macOS installation, create a new APFS volume and install macOS on there. This way you can always revert back to your previous macOS installation if you are facing issues with the new macOS version.
When upgrading from macOS Catalina or older a clean install from USB flash drive is recommended. To create a USB Installer, you can use OpenCore Legacy Patcher:
- Run Disk utility
- Create a new APFS Volume on your internal HDD/SSD or use a separate internal disk (at least 60 GB in size) for installing macOS 13 – DON'T install it on an external drive – it won't boot!
- Attach an empty USB flash drive for creating the installer (16 GB+)
- Run OCLP and follow the instructions
- Once the USB Installer has been created, do the following:
- Copy the OpenCore-Patcher App to the USB Installer
- Optional: Copy the following tools (in case internet is not working after):
- Python Installer
- MountEFI
- ProperTree
- Reboot
- Select "Install macOS Ventura" from the BootPicker
- Install macOS Ventura on the volume you prepared earlier
- There will be a few reboots during installation. Boot from the new "Install macOS" Partition until it's no longer present in the Boot Picker
- Next, Boot into macOS Ventura.
Once the installation is completed and the system boots it will run without graphics acceleration if you only have an iGPU or if you GPU is not supported by the newer version of macOS. We will address this next in Post-Install.
OpenCore Legacy patcher can re-install components which were removed from macOS, such as Graphics Drivers, Frameworks, etc. This is called "root patching". For Wintel systems, we will make use of it to install iGPU and GPU drivers primarily.
Once you reach the set-up assistant (where you select your language, time zone, etc), you will notice that the system feels super sluggish – that's normal because it is running in VESA mode without graphics acceleration, since the friendly guys at Apple removed the iGPU drivers for Haswell and Broadwell from macOS.
To bring them back, do the following:
- Run the OpenCore Patcher App
- In the OpenCore Legacy Patcher menu, select "Post Install Root Patch":
- Follow the instructions of the Patcher App (I don't have a Haswell or Broadwell system, so I can't capture screenshots. I also couldn't find any online.)
- Works basically the same way as installing iGPU drivers
- OCLP detects the GPU and if it has drivers for it, they can be installed. Afterwards, GPU Hardware Acceleration should work. Note that additional settings in OCLP may be required based on the GPU you are using.
- After the drivers have been installed, disable the following
boot-args
prior to rebooting to re-enable GPU graphics acceleration:-radvesa
– put a#
in front to disable it:#-radvesa
nv_disable=1
– put a#
in front to disable it:#nv_disable=1
Note
Prior to installing macOS updates you probably have to re-enable boot-args for AMD and NVIDIA GPUs again to put the card in VESA mode.
Once macOS Ventura is up and running, the VMM Board-ID spoof will work, so you can now revert to one of the "native" SMBIOSes mentioned in the "When Upgrading from macOS Big Sur 11.3+" section that suits for your Haswell/Broadwell CPU for optimal CPU/GPU Power Management. To further adjust/optimize CPU Power Management, generate a new CPUFriendDataProvider.kext
with CPUFriendFriend or One-Key-CPUFriend and add it to your config and EFI.
After macOS Ventura is installed and OCLP's root patches have been applied in Post-Install, remove or disable the following boot-args:
ipc_control_port_options=0
: ONLY when using a dedicated GPU. You still need it when using the Intel HD 4000 so Firefox and electron-based apps will work.amfi_get_out_of_my_way=0x1
: ONLY needed for re-applying root patches with OCLP after System Updates- Change
-radvesa
to#-radvesa
→ This disables the boot-arg which in return re-enables hardware acceleration on AMD GPUs. - Change
nv_disable=1
to#nv_disable=1
→ This disables the boot-arg which in return re-enables hardware acceleration on NVIDIA GPUs.
Important
Keep a backup of your currently working EFI folder on a FAT32 USB flash drive just in case your system won't boot after removing/disabling these boot-args!
We can check whether or not AMFI is enabled by entering the following command in Terminal:
sudo /usr/sbin/nvram -p | /usr/bin/grep -c "amfi_get_out_of_my_way=1"
- The desired output is
0
: this means, theamfi_get_out_of_my_way=1
boot-arg which disables AMFI is not present in NVRAM which indicates that AMFI is enabled. This is good. - If the output is
1
: this means, theamfi_get_out_of_my_way=1
boot-arg which disables AMFI is present in NVRAM which indicates that AMFI is disabled.
Since the new AMFIPass.kext
allows booting macOS with applied root patches and SIP as well as SecureBootModel disabled but AMFI enabled, we want the output to be 0
!
The major advantage of using OCLP over other Patchers is that it remains on the system even after installing System Updates. After an update, it detects that the graphics drivers are missing and asks you, if you want to to patch them in again, as shown in ths example:
You just click on "Okay" and the drivers will be re-installed. After the obligatory reboot, everything will be back to normal.
OCLP can also inform you about availabled updates of the Patcher app itself. But this requires adding the key OCLP-Version
to the NVRAM/Add
section of your config.plist:
This ke is optional for Hackintosh users, since the OCLP app also informs you about updates once you run it. If you choose to add it to your config, you also have to add a reset key to the corresponding NVRAM/Delete
section, so that new values can be applied:
After that, you will be notified whenever an update for the OpenCore Patcher is available:
Note that this Pop-up refers to "OpenCore" and not the Patcher because OCLP was designed with real Macs and Mac users in mind. For "regular" Mac users, using OCLP is most likely the only way they update OpenCore, config and kexts. So after downloading the latest OCLP update, they, just rebuild the EFI, mount the ESP, replaces the EFI/OC folder, apply reoo patches, reboot and that's it.
But as Hackintosh users, we only care about the App updates to apply new, updated or refined root patches for iGPUs, Wi-FI, etc. Please keep in mind that you have to manually adjust the OCLP version number after each update so that you won't be notified about a possibly outdated patcher app although the newest version is installed already. So adding the OCLP-Version Key to a Hackintosh build is not really a necessity.
Tip
If your system won't boot after patching it with OpenCore Legacy Patcher, you have several options to revert root patches.
- Applying Root Patches to the system partition breaks its security seal. This affects System Updates: every time a System Update is available, the FULL Installer (about 12 GB) will be downloaded. But there is a workaround to reduce the size of OTA Updates.
- After each System Update, the iGPU/GPU drivers have to be re-installed. OCLP will take care of this. Just make sure to re-enable the appropriate boot-args to put AMD/NVIDIA GPUs in VESA mode prior to updating/upgrading macOS.
- Non-Metal Wiki by Moraea
- SMBIOS Compatibility Chart
- Enabling NVIDIA WebDrivers in macOS 11+ by elitemacx86.com
- Acidanthera for OpenCore, OCLP and numerous Kexts
- Corpnewt for MountEFI, GenSMBIOS and ProperTree
- dhinakg for AMFIPass
- Dortania for OpenCore Legacy Patcher and Guide