How to Install macOS On PC Without Mac | Hackintosh | No Mac Required | Step By Step Guide
Booting the OS X/macOS installers on a non-Apple computer can be challenging for new users. This guide is for those who wish to use OpenCore as a Bootloader and it covers a complete process to boot the OS X/macOS installer on your target Desktop or Laptop using the OpenCore bootloader. This guide supports both Intel and AMD Desktops and Intel Laptops with UEFI/Legacy boot mode. Of course, the hardware compatibility must be taken care of. Those who are not using OpenCore, can update their configuration for OpenCore and continue to use it. It is advised to create a configuration from scratch without the involvement of someone's else configuration and files.
If you're having a computer that is UEFI capable, follow the UEFI instructions.
If you're having a system that doesn't have UEFI capabilities, then follow the Legacy instructions.
OpenCore is almost always changing to support recent versions of macOS and newer computers. It is complex and more difficult to setup OpenCore when you are not familiar with all the components and a variety of options that can be used to configure the OpenCore for booting into macOS. The purpose of this guide is to show how to create a macOS Bootable USB and install OpenCore on it which can be used to install macOS on a target computer.
Requirements Hardware Information
You should have at least the following information to match against the compatibility
Motherboard Chipset Series
CPU Model and Generation
GPU Model
Storage Devices and their configuration
Laptop/Desktop model if its branded/OEM
Ethernet chip Model
WiFi/BT Model
A Compatible Hardware
This guide requires compatible hardware to work. Even if you manage to install OS X/macOS, some features may work partially or may not even work. See the compatibility section for more information.
Storage Devices and Space
A Compatible HDD or SSD (NVMe/PCIe/2.5inch SSD) for installation.
At least 16GB of USB if you're going to use macOS to create the Bootable USB using Offline Method.
At least 2GB of USB if you're going to use macOS, Windows or Linux to create the Bootable USB using Online Method.
At least 30GB of space for OS X/macOS installation on the target Drive.
Internet Connection
An internet connection is required to download the files. If using Online Method for Installation, you'll also require a compatible working Ethernet or WiFi connection with a proper speed. USB based WiFi Dongles and USB to LAN Adapters may not work in this case. If you do not have a compatible Ethernet or WiFi Card, you can use HoRNDIS to tether your Android's Mobile Data.
Gathering System Details
Before you start, get to know about your hardware. Starting your journey without knowing your hardware will make your journey difficult with no chance of success. Also when seeking support on this forum, the hardware details should be present in your profile. Before asking for support, make sure your profile includes the hardware details.
Before you start to install, we recommend you to find out the complete system specification which will speed up the installation process and you can complete the post installation, very easily. Without knowing the complete system specification, you'll not be able to install or fix the issues...
elitemacx86.com
Compatibility Check Once you have gathered the system details, the next is to perform a compatibility check against the hardware you have. This step is important as it will give you an exact idea of whether your system is compatible or not, what exact hardware is compatible, what hardware needs to be replaced with a compatible one, and whether you can proceed with the purpose of installing macOS or not. To check whether your hardware is compatible or not, simply match your hardware from the compatibility list given below.
If you determine that your hardware is compatible, you can proceed to the next step. If not, you'll have to replace the hardware with a compatible one if you're willing to have a perfect setup.
CPU Compatibility List For OS X and macOS [Intel/AMD] Overview OS X and macOS do not support a major number of CPUs, unlike Windows or Unix. QUICK INFO: OS X & macOS support all CPUs till date, starting from Pentium 4 CPUs with 32-bit architecture only support OS X 10.4.1 to 10.6.8 CPUs...
Intel GPU Compatibility List for macOS LIMITATION Intel's Low-End GT1 IGPUs which are usually found on Pentiums, Celerons and Atoms are not supported on any macOS versions, regardless of the platform, either Desktop or Mobile. GMA Gen3 Vendor Model Metal Compatible Sierra High...
AMD GPU Compatibility List for macOS HD 2000 Series Vendor Model Metal Compatible Sierra High Sierra Mojave Catalina Big Sur Monterey Ventura AMD Radeon HD 2350 AMD Radeon HD 2400 PRO AMD Radeon HD 2400 XT AMD Radeon HD...
NVIDIA GPU Compatibility List for macOS 100 Series Vendor Model Metal Compatible Sierra High Sierra Mojave Catalina Big Sur Monterey Ventura NVIDIA GeForce G 100 Yes Yes Yes (With patch No No No No NVIDIA GeForce GT 120 Yes Yes No No No No No NVIDIA GeForce GT 130 Yes Yes No...
Storage Compatibility for macOS Intel AHCI and RAID Controllers Vendor Chipset Series VEN ID:EV ID Support Kext Intel 5 Series Chipset 8086:3b29 8086:3b22 8086:3b2f Intel 5 Series/3400 Series Chipset SATA RAID Controller 8086,3b25 8086,3b2C Intel 6 Series Chipset 8086:1c02 8086:1c03...
WiFi Compatibility List for OS X and macOS [Broadcom, Atheros, Intel and Realtek] Following are the list of compatible and non-compatible WiFi models for Mac. For Broadcom https://www.elitemacx86.com/threads/how-to-enable-broadcom-wifi.606/ For Atheros...
Thunderbolt Compatibility List for macOS Controller Family Sierra High Sierra Mojave Catalina Big Sur Monterey 82523EF Light Ridge 82523EFL Light Ridge DSL2310 Eagle Ridge DSL2510 Eagle Ridge DSL2210 Port Ridge DSL3310...
Creating macOS Bootable USB If you determine that your hardware is compatible according to the above-provided compatibility lists, you can start by creating a Bootable USB for your target computer.
A macOS Bootable USB can be made either online or offline. Depending on your choice, select one from below
Method
Notes
Online
Online installers use a recovery image approx 700MB in size and once booted, the macOS is downloaded from Apple servers once installation starts.
Can be made in macOS/Windows/Linux
Requires a compatible Ethernet or WiFi to download the macOS during the installation process
Offline
Offline installers are full installers.
Can be made in macOS only
Now, depending on the Operating System you have, choose one of the below options to create the Bootable USB.
For macOS users
For users with macOS computers, there are two methods available which are discussed below.
Method #1: Using Full Installer (Offline Method)
STEP 1: Downloading macOS
There are two ways to download the macOS installer on a computer with macOS. Depending on the macOS version you want to download, follow the instructions given below
macOS High Sierra 10.13 and newer
The very first step os to download macadmin-scripts. To download macadmin-scripts, follow the steps below.
1. Visit macadmin-scripts on your Mac computer.
2. Click on the Code button and then select Download Zip.
3. Extract the .zip file to your working directory.
4. Assuming the extracted folder is in your Download directory, type the following commands
5. Open Terminal and type
Code:
cd Downloads/macadmin-scripts-main
and then press enter key.
6. Type
Code:
sudo ./installinstallmacos.py
and then press enter key. When prompted for a password, enter your password. You'll get a list of available products for download.
Code:
Downloading https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog...
Downloading http://swcdn.apple.com/content/downloads/20/55/001-51042-A_2EJTJOSUC2/rsvf13iphg5lvcqcysqcarv8cvddq8igek/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/20/55/001-51042-A_2EJTJOSUC2/rsvf13iphg5lvcqcysqcarv8cvddq8igek/001-51042.English.dist...
No server metadata for 002-23589
Downloading https://swdist.apple.com/content/downloads/05/24/002-23589-A_ZQQIIUQAXQ/zn8n836sojdlmlvqdu7n2k4gj8roqmcysu/002-23589.English.dist...
Downloading http://swcdn.apple.com/content/downloads/59/18/001-15219-A_EE9FN7UHJA/efuz3h0zlmx4qlinf4bxlguigo9jvhcr55/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/59/18/001-15219-A_EE9FN7UHJA/efuz3h0zlmx4qlinf4bxlguigo9jvhcr55/001-15219.English.dist...
Downloading http://swcdn.apple.com/content/downloads/34/54/041-88800-A_HLMBDM42FL/anrmoj880qkj0lbybqm0c3830p70nawjrv/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/34/54/041-88800-A_HLMBDM42FL/anrmoj880qkj0lbybqm0c3830p70nawjrv/041-88800.English.dist...
Downloading http://swcdn.apple.com/content/downloads/41/23/061-26578-A_FF0C6M87LS/ylvl0phx6uy3i444qt9p57n8wz0xnylmd9/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/41/23/061-26578-A_FF0C6M87LS/ylvl0phx6uy3i444qt9p57n8wz0xnylmd9/061-26578.English.dist...
No server metadata for 071-78704
Downloading https://swdist.apple.com/content/downloads/43/16/071-78704-A_U5B3K7DQY9/cj9xbdobsdoe67yq9e1w2x0cafwjk8ofkr/071-78704.English.dist...
Downloading http://swcdn.apple.com/content/downloads/61/24/001-57224/0o1xetys5n505gocjsil5qo0p4kg939elb/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/61/24/001-57224/0o1xetys5n505gocjsil5qo0p4kg939elb/001-57224.English.dist...
No server metadata for 002-79225
Downloading https://swdist.apple.com/content/downloads/49/07/002-79225-A_68Z2X28AVV/jfmg28xxxarr9av7ry0iefvst7cyl0qdhb/002-79225.English.dist...
Downloading http://swcdn.apple.com/content/downloads/23/45/001-36735-A_IRCLJ5YYKF/z8vka6xfykydycui5b7atpc52btxmbffdn/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/23/45/001-36735-A_IRCLJ5YYKF/z8vka6xfykydycui5b7atpc52btxmbffdn/001-36735.English.dist...
Downloading http://swcdn.apple.com/content/downloads/08/44/041-90855-A_452WLVQACP/mzfvoi59bljh3w4w4lvwenfk0r1a2f7212/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/08/44/041-90855-A_452WLVQACP/mzfvoi59bljh3w4w4lvwenfk0r1a2f7212/041-90855.English.dist...
No server metadata for 012-22320
Downloading https://swdist.apple.com/content/downloads/44/35/012-22320-A_AOID136T4U/g33x1akyjzjpkpe7z0xn7nguoakljpe3a8/012-22320.English.dist...
Downloading http://swcdn.apple.com/content/downloads/06/50/041-91758-A_M8T44LH2AW/b5r4og05fhbgatve4agwy4kgkzv07mdid9/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/06/50/041-91758-A_M8T44LH2AW/b5r4og05fhbgatve4agwy4kgkzv07mdid9/041-91758.English.dist...
Downloading http://swcdn.apple.com/content/downloads/01/28/061-86291-A_JPEIWIOZES/enpozvvbmj3mj2dhulhevlt8b429qd5kw0/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/01/28/061-86291-A_JPEIWIOZES/enpozvvbmj3mj2dhulhevlt8b429qd5kw0/061-86291.English.dist...
No server metadata for 012-06873
Downloading https://swdist.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/012-06873.English.dist...
Downloading http://swcdn.apple.com/content/downloads/26/37/001-68446/r1dbqtmf3mtpikjnd04cq31p4jk91dceh8/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/26/37/001-68446/r1dbqtmf3mtpikjnd04cq31p4jk91dceh8/001-68446.English.dist...
Downloading http://swcdn.apple.com/content/downloads/10/06/001-36801-A_9MBEQ97Z9M/672a1q4u8978ize3s15ygivp2dqwmk10qb/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/10/06/001-36801-A_9MBEQ97Z9M/672a1q4u8978ize3s15ygivp2dqwmk10qb/001-36801.English.dist...
Downloading http://swcdn.apple.com/content/downloads/17/32/061-26589-A_8GJTCGY9PC/25fhcu905eta7wau7aoafu8rvdm7k1j4el/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/17/32/061-26589-A_8GJTCGY9PC/25fhcu905eta7wau7aoafu8rvdm7k1j4el/061-26589.English.dist...
Downloading http://swcdn.apple.com/content/downloads/37/41/001-04366/a6boefh8b6bee4k2x6v5lwyfjr7od2ica3/InstallAssistantAuto.smd...
Downloading https://swdist.apple.com/content/downloads/37/41/001-04366/a6boefh8b6bee4k2x6v5lwyfjr7od2ica3/001-04366.English.dist...
# ProductID Version Build Post Date Title
1 001-15219 10.15.5 19F2200 2020-06-15 macOS Catalina
2 001-68446 10.15.7 19H15 2020-11-11 macOS Catalina
3 012-22320 11.6.7 20G630 2022-06-16 macOS Big Sur
4 001-36801 10.15.6 19G2021 2020-08-12 macOS Catalina
5 001-04366 10.15.4 19E2269 2020-05-04 macOS Catalina
6 002-23589 11.6.1 20G224 2021-12-01 macOS Big Sur
7 061-86291 10.15.3 19D2064 2020-03-23 macOS Catalina
8 041-91758 10.13.6 17G66 2019-10-19 macOS High Sierra
9 041-88800 10.14.4 18E2034 2019-10-23 macOS Mojave
10 061-26589 10.14.6 18G103 2019-10-14 macOS Mojave
11 001-51042 10.15.7 19H2 2020-09-24 macOS Catalina
12 001-36735 10.15.6 19G2006 2020-08-06 macOS Catalina
13 002-79225 12.3.1 21E258 2022-04-11 macOS Monterey
14 001-57224 10.15.7 19H4 2020-10-27 macOS Catalina
15 041-90855 10.13.5 17F66a 2019-10-23 Install macOS High Sierra Beta
16 061-26578 10.14.5 18F2059 2019-10-14 macOS Mojave
17 071-78704 11.5.2 20G95 2021-08-18 macOS Big Sur
18 012-06873 12.4 21F79 2022-05-24 macOS Monterey
Choose a product to download (1-18):
7. Depending on the macOS version you want to install, Type the number left to the macOS version and press enter key. The script will start downloading the files. Once the download is completed, you'll see the following screen.
Code:
Downloading http://swcdn.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/Info.plist...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5174 100 5174 0 0 15262 0 --:--:-- --:--:-- --:--:-- 15307
Downloading http://swcdn.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/InstallInfo.plist...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 188 100 188 0 0 652 0 --:--:-- --:--:-- --:--:-- 652
Downloading http://swcdn.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/InstallAssistant.pkg...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11.2G 100 11.2G 0 0 30.7M 0 0:06:15 0:06:15 --:--:-- 34.8M
Downloading https://swdist.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/InstallAssistant.pkm...
Downloading http://swcdn.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/BuildManifest.plist...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2024k 100 2024k 0 0 2164k 0 --:--:-- --:--:-- --:--:-- 2164k
Downloading http://swcdn.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/MajorOSInfo.pkg...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1260k 100 1260k 0 0 1610k 0 --:--:-- --:--:-- --:--:-- 1607k
Downloading https://swdist.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/MajorOSInfo.pkm...
Downloading http://swcdn.apple.com/content/downloads/16/08/012-06873-A_636SHHRD4L/528ojpmw00mulgfjsz9k50modkj31a9v0p/UpdateBrain.zip...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3111k 100 3111k 0 0 2985k 0 0:00:01 0:00:01 --:--:-- 2985k
Making empty sparseimage...
installer: Package name is macOS Monterey
installer: Installing at base path /private/tmp/dmg.9GAsKe
installer: The install was successful.
*********************************************************
*** Working around a very dumb Apple bug in a package ***
*** postinstall script that fails to correctly target ***
*** the Install macOS.app when installed to a volume ***
*** other than the current boot volume. ***
*** Please file feedback with Apple! ***
*********************************************************
Product downloaded and installed to /Users/elitemacx86/Install_macOS_12.4-21F79.sparseimage
Making read-only compressed disk image containing Install macOS Monterey.app...
........................................................................
created: /Users/elitemacx86/Install_macOS_12.4-21F79.dmg
Disk image created at: ./Install_macOS_12.4-21F79.dmg
elitemacx86@Elites-iMac-Pro ~ %
8. Quit Terminal
9. You'll find the macOS Installer in a DMG file in /Users/yourusername directory
10. Mount the dmg file by double clicking it.
11. Once mounted, move the Install macOS.app to the /Applications folder of your Mac.
STEP 2: Preparing Installer
Once you have the macOS Installer, you can prepare the installer. To prepare the installer, we'll use createinstallmedia command.
1. Insert your USB Flash Drive
2. Open Disk Utility. The Disk Utility is located at /Applications/Utilities/Disk Utility
3. Select your USB Flash Drive in the left pane and click on Erase button, at the top and a popup will appear.
4. Under Name type USB
5. Under Format select Mac OS X Extended (Journaled)
6. Under Scheme select GUID Partition Map and click on Erase.
7. When done, click on Done.
8. Launch terminal, located at /Applications/Utilities/Terminal.
9. Depending on the OS X/macOS version you want to install, Copy and paste the following sudo command in the Terminal.
10. When prompted, enter your password.
11. Press (Y) to confirm and then press enter key and it will start to erase the disk and will create macOS Bootable USB.
Once the process completes, close the terminal. The USB Flash Drive will be renamed itself as per the OS X/macOS Installer
NOTES:
macOS Installer must exist in the Applications folder
For High Sierra and Later, 16GB USB Flash Drive is recommended
Method #2: Using Recovery Image (Online Method) STEP 1: Downloading macOS
You'll need to have the exact Recovery image of the target OS you want to install. To download the recovery image, follow the steps below.
1. Download OpenCore Pkg from the downloads section of this forum.
2. Extract the downloaded file to your Desktop.
3. Open Terminal and move into the OpenCore directory using
Code:
cd Desktop/OpenCore-0.X.X-RELEASE/Utilities/macrecovery
NOTE:
Replace the X with the OpenCore version.
4. Depending on the macOS version you need (See Recovery Table below), type the command.
5. Once the download is completed, you'll see something like below
Code:
Downloading 694-44177...
Saving http://oscdn.apple.com/content/downloads/43/08/002-55353/wjqymtilqz139hpcx4lu2i2h5ndrmuydno/RecoveryImage/BaseSystem.dmg to BaseSystem.dmg...
Download complete!
Saving http://oscdn.apple.com/content/downloads/43/08/002-55353/wjqymtilqz139hpcx4lu2i2h5ndrmuydno/RecoveryImage/BaseSystem.chunklist to BaseSystem.chunklist...
Download complete!
Verifying image with chunklist...
Image verification complete!
You can find BaseSystem.dmg and BaseSystem.chunklist in OpenCore/Utilities/macrecovery directory.
NOTE:
Depending on the macOS version, the script will either download BaseSystem or RecoveryImage files.
STEP 2: Preparing Installer
Once you have the Recovery image, you can create the installer. To prepare the installer, follow the steps below
1. Insert your USB Flash Drive (less than 64GB ) into your Mac.
2. Open Disk Utility. The Disk Utility is located at /Applications/Utilities/Disk Utility
2. Select your USB Flash Drive in the left pane and click on Erase button, at the top and a popup will appear.
3. Under Name type EFI
4. Under Format select MS-DOS (FAT)
5. Under Scheme select Master Boot Record, and click on Erase.
6. When done, click on Done and close Disk Utility.
7. Now open your USB Flash Drive in Finder and create a folder named com.apple.recovery.boot
8. Copy BaseSystem.dmg and BaseSystem.chunklist downloaded above to com.apple.recovery.boot directory.
For Windows users STEP 1: Downloading macOS
You'll need to have the exact Recovery image of the target OS you want to install. To download the recovery image, follow the steps below.
1. Install Python
2. Download OpenCore Pkg from the downloads section of this forum.
3. Extract the downloaded file to your Desktop.
4. Move into the OpenCore-0.X.X-RELEASE/Utilities directory
5. Right click on macreceovery folder and select Copy as path
6. Open Command Prompt with Administrator Privileges
7. Type cd and then paste the path you copied earlier in step 5 and then press enter key. The command would be the following
Code:
cd "C:\Users\Your User Name\Desktop\OpenCore-0.X.X-RELEASE\Utiities\macrecovery"
NOTE:
Replace the X with the OpenCore version.
Replace Your User Name with your actual username
8. Depending on the macOS version you need (See Recovery Table below), type the command.
9. Once the download is completed, you'll see something like below
You can find BaseSystem.dmg and BaseSystem.chunklist in OpenCore-0.X.X-RELEASE/Utilities/macrecovery directory.
NOTE:
Depending on the macOS version, the script will either download BaseSystem or RecoveryImage files.
STEP 2: Preparing Installer
Once you have the Recovery image, you can create the installer. To prepare the installer, follow the steps below
1. Insert your USB Flash Drive (less than 64GB) into your Windows Computer.
2. Download Rufus.
3. Open Rufus and under Device select your target USB Flash Drive
4. Under Boot selection select Non Bootable
5. Under Volume label type EFI
6. Under File System select Large FAT32 (default) and click on START.
7. When prompted, click on OK
Once erased, you'll see the READY status in Rufus
8. When done, click on Close to close Rufus.
9. Now open your USB Flash Drive in Explorer
10. Delete autorun.ico and autorun.inf file from the USB Flash Drive
11. Create a folder named com.apple.recovery.boot in root of the USB Flash Drive
12. Copy BaseSystem.dmg and BaseSystem.chunklist downloaded above into com.apple.recovery.boot directory.
For Linux users STEP 1: Downloading macOS
You'll need to have the exact Recovery image of the target OS you want to install. To download the recovery image, follow the steps below.
1. Download OpenCore Pkg from the downloads section of this forum.
2. Extract the downloaded file
3. Move into the OpenCore-0.X.X-RELEASE/Utilities directory
4. Right click on macreceovery folder and select Copy
5. Open Terminal
6. Type cd and then paste the path you copied earlier in step 4 and then press enter key. The command would be the following
Code:
cd /home/tech/Downloads/OpenCore-0.X.X-RELEASE/utilities/macrecovery
NOTE:
Replace the X with the OpenCore version.
Replace Your User Name with your actual username
7. Depending on the macOS version you need (See Recovery Table below), type the command.
8. Once the download is completed, you'll see something like below
You can find BaseSystem.dmg and BaseSystem.chunklist in OpenCore-0.X.X-RELEASE/Utilities/macrecovery directory.
NOTE:
Depending on the macOS version, the script will either download BaseSystem or RecoveryImage files.
STEP 2: Preparing Installer
Once you have the Recovery image, you can create the installer. To prepare the installer, follow the steps below
1. Insert your USB Flash Drive (less than 64GB) into your Ubuntu Computer.
2. Open Disks For Unallocated Disks
1. For USB Drives which is unallocated, click on the Settings button and then click on Next
2. Under Volume Name, type EFI
3. Under Type, select For use with all systems and devices (FAT) and click on Create
4. Once erased, you'll see the created partition in Disks
5. Click on the play button to mount the USB Flash Drive
For USB with existing Data
1. For USB Drives which is unallocated, click on the Settings button and then click on the Format button
2. Click on Format
3. Once erased, you'll see the created partition in Disks
4. Click on the play button to mount the USB Flash Drive
Now open your USB Flash Drive in Explorer
Create a folder named com.apple.recovery.boot in the root of the USB Flash Drive
Copy BaseSystem.dmg and BaseSystem.chunklist downloaded above into com.apple.recovery.boot directory.
Preparing OpenCore
To prepare the OpenCore Bootloader, you need to download OpenCore Pkg. Follow the steps below to prepare OpenCore for your target system.
1. Download OpenCore Pkg. The OpenCore Pkg comes in two variants. DEBUG and RELEASE.
Version
Notes
DEBUG
Helps in debugging boot issues
Can add some delay in boot times
Recommended for debugging purposes.
RELEASE
Not much help for debugging boot issues.
Troubleshooting is difficult
Recommended for production use.
2. Download the RELEASE folder followed by the release version.
3. Extract the zip. When extracting, you'll get 4 folders which have been listed below.
Directories
Description
Docs
Contains documentation, a change log, a sample config.plist, and ACPI Samples for OpenCore.
IA32
Contains OpenCore EFI, 32-bit OpenCore Boot Loader.
Required for OS X 10.4.1 through 10.4.7
Utilities
Contains several utilities.
X64
Contains OpenCore EFI, 64-bit OpenCore Boot Loader.
Required for OS X 10.8 and newer
1. Depending on your System Type, copy the EFI folder from IA32 (For 32-bit CPU) and X64 (For 64-bit CPU) to your working directory and you should have the following structure.
Initial bootstrap loaders, which load OpenCore.efi. BOOTx64.efi is loaded by the firmware by default consistent with the UEFI specification. However, it may also be renamed and put in a custom location to allow OpenCore coexist alongside operating systems, such as Windows, that use BOOTx64.efi files as their loaders. Refer to the LauncherOption property for details.
ACPI
Directory for storing ACPI Files (DSDT and SSDTs)
Only keep files with the .aml extension
Drivers
Directory for storing drivers (UEFI and Legacy Drivers)
Only keep files with the .efi extension
Kexts
Directory for storing Kernel Extensions aka Drivers
Only keep files with the .kext extension
Resources
Directory for storing media resources such as Audio and GUI, including fonts, icons, and images for Boot Picker for use by OpenCanopy.
Tools
Directory for storing tools
OpenCore.efi
Main booter application responsible for operating system loading. The directory OpenCore.efi resides in is called the root directory, which is set to EFI\OC by default. When launching OpenCore.efi directly or through a custom launcher, however, other directories containing OpenCore.efi files are also supported.
Cleaning Up
A clean-up is required as by default, OpenCore includes numerous Drivers, Resources and Tools for several purposes and all of them may not be required by a particular System.
Drivers
Drivers are mandatory which allows several important functions and is required to boot the system, including Recovery. By default, OpenCore includes numerous drivers for different purposes. You need to use the drivers required by your system. Depending on the System Type you have, only keep the drivers as instructed below and delete the rest of the drivers from the EFI/OC/Drivers directory. You can find all the unlinked drivers in the EFI/OC/Drivers directory.
Driver Name
Required
Notes
AudioDxe.efi
Optional
Provides Boot Chime support.
Only required if you want to use Boot Chime
BiosVideo.efi
Optional
CSM video driver implementing graphics output protocol based on VESA and legacy BIOS interfaces.
Used for UEFI firmware with fragile GOP support (e.g. low resolution).
Requires ReconnectGraphicsOnConnect. Included in OpenDuet out of the box.
CrScreenshotDxe.efi
Optional
Screenshot driver
Required for taking screenshots of BIOS, UEFI Shell, UEFI Apps, and UEFI Bootloaders using F10.
Saves screenshot to the root of the ESP or any available writeable Filesystem
HiiDatabase.efi
Optional
HII services support driver from MdeModulePkg.
This driver is included in most types of firmware starting with the Ivy Bridge generation.
Some applications with GUI, such as UEFI Shell, may need this driver to work properly.
NvmExpressDxe.efi
Optional
NVMe support driver from MdeModulePkg.
This driver is included in most firmware starting with the Broadwell generation.
Used for Haswell and older Systems, where no NVMe driver support is available and NVMe SSD is installed.
OpenCanopy.efi
Optional
Provides GUI functionality for OpenCore Boot screen.
This driver is required if you need GUI for OpenCore.
OpenHfsPlus.efi
YES
HFS File System Driver with bless support.
Provides reading of HFS+ Volumes/drives in OpenCore Boot Picker.
Without HFSPlus.efi driver, you won't be able to see any HFS+ volumes including your macOS USB Installer. Recovery and installation drive for macOS Sierra and prior in OpenCore Boot Picker.
This driver is an alternative to a closed source HfsPlus driver commonly found in Apple firmware.
Provides reading of HFS+ Volumes/drives in OpenCore Boot Picker.
Required for Sandy Bridge and older Systems.
HfsPlus32.efi
Optional
Similar to HfsPlusLegacy
Required for 32-bit CPUs.
OpenLinuxBoot.efi
Optional
OpenCore plugin implementing OC_BOOT_ENTRY_PROTOCOL to allow direct detection and booting of Linux distributions from OpenCore, without chainloading via GRUB.
OpenNtfsDxe.efi
Optional
OpenPartitionDxe.efi
Optional
Partition management driver with Apple Partitioning Scheme support.
Required to boot into Recovery on OS X 10.7 to 10.9
OpenRuntime.efi
YES
Runtime driver including several other drivers merged such as ApfsDriverLoader.
OpenRuntime.efi is a replacement for AptioMemoryFix.efi driver.
Required for booting and proper functioning of OpenCore
OpenUsbKbDxe.efi
Optional
USB keyboard driver adding support for AppleKeyMapAggregator protocols on top of a custom USB keyboard driver implementation. This is an alternative to builtin KeySupport, which may work better or worse depending on the firmware.
Required for FileVault
Required for OpenCore on Legacy Systems. Not recommended on Ivy Bridge and later.
Ps2KeyboardDxe.efi
Optional
PS/2 keyboard driver from MdeModulePkg.
Required for PS2 Keyboard
Requires KeySupport to be enabled.
Ps2MouseDxe.efi
Optional
PS/2 mouse driver from MdeModulePkg.
Required for PS/2 Mouse
Some very old laptop firmware may not include this driver but it is necessary for the touchpad to work in UEFI graphical interfaces such as OpenCanopy.
ResetNvramEntry.efi
YES
Provides Reset NVRAM support.
Required since OpenCore 0.8.1 and later
ToggleSipEntry.efi
Optional
Provides a boot entry for enabling and disabling System Integrity Protection (SIP) in OpenCore picker.
UsbMouseDxe.efi
Optional
Similar to OpenUSBKbDxe
Required for Legacy Systems using DuetPkg
XhciDxe.efi
Optional
XHCI USB controller support driver from MdeModulePkg.
This driver is included in most types of firmware starting with the Sandy Bridge generation.
Used for Sandy Bridge and older Systems, where no XHCI driver support is available and an external USB 3.0 PCI Card is installed.
Drivers for UEFI-based Systems
OpenRuntime.efi
OpenHfsPlus.efi
OpenCanopy.efi
AudioDxe.efi
ResetNvramEntry.efi
Drivers for Legacy based Systems
OpenRuntime.efi
HfsPlusLegacy.efi
OpenUsbKbDxe.efi
UsbMouseDxe.efi
OpenCanopy.efi
AudioDxe.efi
ResetNvramEntry.efi
NOTES:
OpenCore and Drivers should be from the same RELEASE version and should not mismatch.
UEFI Drivers from Clover are not supported with OpenCore. See Switching Clover to OpenCore if you're using Clover and want to switch to OpenCore.
Tools
Tools are of great use but are for specific purposes only and most of them are optional. Although, it will not harm even if you keep these tools. However, to reduce the size and have less clutter, it is advised to delete the tools which you don't need. For debugging and later use, it is recommended to keep these tools. You can either keep them or delete them as per your preferences. These standalone tools helps to debug the firmware and hardware.
Tool Name
Required
Notes
BootKicker.efi
Optional
Enter Apple BootPicker menu (exclusive for Macs with compatible GPUs).
ChipTune.efi
Optional
Test BeepGen protocol and generate audio signals of different styles and lengths.
CleanNvram.efi
Optional
Reset NVRAM alternative bundled as a standalone tool.
ControlMsrE2.efi
Optional
Check CFG Lock (MSR 0xE2 write protection) consistency across all cores and change such hidden options on selected platforms.
CsrUtil.efi
Optional
Simple implementation of SIP-related features of Apple csrutil.
GopStop.efi
Optional
Test GraphicsOutput protocol with a simple scenario.
KeyTester.efi
Optional
Test keyboard input in SimpleText mode.
MmapDump.efi
Optional
OpenControl.efi
Optional
Unlock and lock back NVRAM protection for other tools to be able to get full NVRAM access when launching from OpenCore.
OpenShell.efi
Optional
Used for debugging
Required for mapping entries for Dual Boot
ResetSystem.efi
Optional
Utility to perform system reset. Takes reset type as an argument: cold reset, firmware, shutdown, warm reset. Defaults to cold reset.
RtcRw.efi
Optional
Utility to read and write RTC (CMOS) memory.
TpmInfo.efi
Optional
Check Intel PTT (Platform Trust Technology) capability on the platform, which allows using fTPM 2.0 if enabled.
The tool does not check whether fTPM 2.0 is actually enabled.
Gathering Files ACPI (SSDTs)
Depending on the Platform you have, copy the SSDTs from OpenCore/RELEASE/Docs/AcpiSamples/Binaries to EFI/OC/ACPI directory.
ACPI Name
Notes
SSDT-ALS0.aml
Enables Ambient Light Sensor ACPI Device
Required for Backlight functioning
Required for AIO and Laptops only.
SSDT-AWAC-DISABLE.aml
Serves 300 series RTC patch
Fixes stuck at apfs_module_start error while booting into macOS
Required for Coffee Lake and Later
SSDT-BRG0.aml
SSDT-EC-USBX.aml
Fixes EC and USB Power
Required for EC and USB Power.
Required for Skylake and Later
SSDT-EC.aml
Required for Penryn to Broadwell
SSDT-EHCx-DISABLE.aml
Required for 7, 8, and 9-series Chipsets on 10.11 and newer.
SSDT-HV-CPU.aml
Enables proper CPU detection under macOS
Required for Hyper-V only.
Requires MacHyperVSupport.kext to function.
SSDT-HV-PLUG.aml
Enables VMplatformPlugin on Big Sur and newer
Required for Hyper-V only
This SSDT must be loaded after SSDT-HV-CPU.aml
Requires MacHyperVSupport.kext to function.
SSDT-HV-VMBUS.aml
Enables ACPI node identification
Required for Hyper-V only
Requires MacHyperVSupport.kext to function.
SSDT-IMEI.aml
Enables missing IMEI Device
Required for 6 series and 7 Series Motherboards
Required when no IMEI deice (with any name) is present in the ACPI Tables
Requires a custom device-id in DeviceProperties.
SSDT-PLUG-ALT.aml
Enables Power Management Function
Can fix potential issues such as sleep/wake function and improve CPU performance
Required for a proper CPU and GPU Power Management
Required for Alder Lake
SSDT-PLUG.aml
Enables Power Management Function
Can fix potential issues such as sleep/wake function and improve CPU performance
Required for a proper CPU and GPU Power Management
Required for Haswell to Rocket Lake
SSDT-PMC.aml
Enables NVRAM support
Fixes NVRAM, Sleep/Wake and Restart/Shut Down
Fixes black screen after macOS finishes loading and is applicable for IGPU, NVIDIA and AMD GPUs.
Required for all 300 series motherboards except Z370.
SSDT-PNLF.aml
Provides Backlight support
Required for Brightness control.
Must load after all DSDT and SSDTs
SSDT-RTC0-RANGE.aml
Required for all X99 and X299 Motherboards
Can fix stuck at PCI Configuration begin error when booting into macOS
SSDT-RTC0.aml
Required for 300 series chipset only
Required where SSDT-AWAC is not compatible
SSDT-SBUS-MCHC.aml
SSDT-UNC.aml
Disables unused devices in ACPI
Ensures IOPCIFamily doesn't Kernel Panic
Required for Sandy Bridge-E to Broadwell-E
Desktops
Penryn
SSDT-EC.aml
Lynfield and Clarkdale
SSDT-EC.aml
Sandy Bridge
SSDT-EC.aml
SSDT-CPU-PM.aml
Ivy Bridge
SSDT-EC.aml
SSDT-CPU-PM.aml
Haswell
SSDT-EC.aml
SSDT-PLUG.aml
Broadwell
SSDT-EC.aml
SSDT-PLUG.aml
Skylake
SSDT-EC-USBX.aml
SSDT-PLUG.aml
Kaby Lake
SSDT-EC-USBX.aml
SSDT-PLUG.aml
Coffee Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PMC.aml
SSDT-PLUG.aml
Comet Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PLUG.aml
SSDT-RHUB-Reset.aml
Rocket Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PLUG.aml
SSDT-RHUB-Reset.aml
NOTE:
Change PCI0 to PC00 in SSDT-EC-USBX.aml or use SSDT-EC-USBX-DESKTOP.aml from Dortania.
Alder Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PLUG-ALT.aml
SSDT-RHUB-Reset.aml
NOTE:
Change PCI0 to PC00 in SSDT-EC-USBX.aml or use SSDT-EC-USBX-DESKTOP.aml from Dortania.
HEDT
Sandy Bridge-E
SSDT-EC.aml
SSDT-UNC.aml
Ivy Bridge-E
SSDT-EC.aml
SSDT-UNC.aml
Haswell-E
SSDT-EC-USBX.aml
SSDT-RTC0-RANGE
SSDT-UNC.aml
SSDT-PLUG.aml
Broadwell-E
SSDT-EC-USBX.aml
SSDT-RTC0-RANGE
SSDT-UNC.aml
SSDT-PLUG.aml
Skylake-X/W
SSDT-EC-USBX.aml
SSDT-RTC0-RANGE
SSDT-PLUG.aml
Laptops
Clarksfield and Arrandale
SSDT-EC.aml
SSDT-PNLF.aml
Sandy Bridge
SSDT-EC.aml
SSDT-CPU-PM.aml
SSDT-PNLF.aml
Ivy Bridge
SSDT-EC.aml
SSDT-CPU-PM.aml
SSDT-PNLF.aml
Haswell
SSDT-EC.aml
SSDT-PLUG.aml
SSDT-PNLF.aml
Broadwell
SSDT-EC.aml
SSDT-PLUG.aml
SSDT-PNLF.aml
Skylake
SSDT-EC-USBX.aml
SSDT-PLUG.aml
SSDT-PNLF.aml
Kaby Lake/Kaby Lake-R/Amber Lake
SSDT-EC-USBX.aml
SSDT-PLUG.aml
SSDT-PNLF.aml
Coffee Lake/Whiskey Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PMC.aml
SSDT-PLUG.aml
SSDT-PNLF.aml
Comet Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PLUG.aml
SSDT-RHUB-Reset.aml
SSDT-PNLF.aml
Ice Lake
SSDT-EC-USBX.aml
SSDT-AWAC-DISABLE.aml
SSDT-PLUG.aml
SSDT-RHUB-Reset.aml
SSDT-PNLF.aml
Kexts
In order to boot into the installation, you need to add the necessary kexts. Follow the steps below to place the necessary kexts.
System
Required for Booting into macOS and are mandatory.
Lilu
Provides arbitrary patching.
Required for AppleALC, WhateverGreen, VirtualSMC and several other kexts.
VirtualSMC
SMC Emulator. Emulates Apple hardware.
VirtualSMC is a successor of FakeSMC.
This kext requires Lilu.kext to function.
CPU and SMC CPUFriend
Enables dynamic power management data injection
Requires Lilu.kext to function
AsusSMC
Enables Native support for ALS, Keyboard Backlight and Fn Keys for ASUS Laptops
Requires Lilu.kext to function
CPUTscSync
Enables synchronization of the TSC with the CPU
Required for HEDT Systems.
A quick way to find if your Laptop needs CpuTscSync.kext, while booting the installer, you may feel lags and the installer getting stuck at several stages or you may see the Apple logo or other pop-ups appearing in background. On some Laptops, you may get CPU panic for threads. f you're having such scenarios, you'll need to use this kext.
This kext is mostly needed by Lenovo and newer ASUS Laptops with the latest BIOS.
This kext requires Lilu.kext to function.
AppleMCEReporterDisabler
Disables AppleMCEReporter kext to prevent Kernel Panics
Required for AMD CPUs and Dual-Socket Systems.
AMDRyzenCPUPowerManagement.kext
Required for AMD Power Management Features
This kext is also required if you would like to use AMD Power Gadget.
Requires SMCAMDProcessor.kext to enable sensor data
AMDRyzenCPUPowerManagement.kext should load before SMCAMDProcessor.kext
SMCAMDProcessor.kext
Enables sensor data readings for VirtualSMC.
Requires AMDRyzenCPUPowerManagement.kext and VirtualSMC.kext to function
telemetrap.kext
Disables AppleMCEReporter kext to prevent Kernel Panics
Required for AMD CPUs and Dual-Socket Systems.
AAAMouSSE.kext
Enables SSE4.2 Support
Allows old CPUs to use the newer AMD drivers.
Required by AMD drivers for Metal Support
Only required for CPUs lacking SSE4.2 instructions.
Graphics WhateverGreen.kext
Provides GPU patching on macOS.
Fixes various Graphics related issues.
Required for Intel, NVIDIA, and AMD GPUs.
This kext requires Lilu.kext to function.
dAGPM.kext
Enables Power Management for Discrete Graphics (NVIDIA/AMD)
Requires Board ID configuration to work.
USB
Required for USB functioning.
USBInjectAll
Enables USB ports.
Required for Intel-based Motherboards only.
It's advised to map the USB ports during the post-install for a better USB speed, improved sleep/wake and hotplug.
XHCI-Unsupported
Enables Intel USB Controllers on 9, 200, 300, 400 series and some HEDT Motherboards such as X99 and X299.
Required for Intel-based Motherboards only.
GenericUSBXHCI.kext
Enables non-Intel USB3 Controllers.
Usually found on Sandy Bridge, Ivy Bridge and some Haswell
Required for non-Intel USB3 Controllers. Only use if you have a non-Intel USB3 Controller
ASMedia.kext
Enables ASMedia USB3.1 Controllers.
Required for macOS Big Sur and later.
Required for ASMedia USB 3.1 Controller. Only use if you have an AsMedia USB3.1 Controller
mXHCD.kext
Enables ASMedia USB3.0 1040/1042 Controllers.
Required for ASMedia USB 3.0 Controller. Only use if you have an AsMedia USB3.0 Controller
XLNCUSBFIX
Fixes USB on AMD FX Systems
Do not use it on Ryzen Systems
Requires macOS 10.13 and later
Audio
Required for Audio functioning.
AppleALC.kext
Provides AppleHDA patching on macOS.
Enables onboard/built-in Audio.
Fixes various Audio related issues.
This kext requires Lilu.kext to function.
AppleALCU.kext
Required for Onboard/built-in USB Audio.
This kext requires Lilu.kext to function.
Only use if you have Onboard/built-in Realtek USB Audio Controller
EMUUSBAudio
Required for Creative Labs EMU USB Audio.
Only use if you have Creative Labs EMU USB Audio Interface
Ethernet
Required for Ethernet functioning.
IntelMausi.kext
Enables Intel Family onboard Ethernet Controller.
Required for Intel-based Motherboards only.
It's advised to map the USB ports during the post-install for a better USB speed, improved sleep/wake and hotplug.
SmallTreeIntel82576.kext
SmallTreeIntel8259x.kext
LucyRTL8125Ethernet.kext
Enables Realtek RTL8125 2.5GBit Ethernet Family onboard Ethernet Controller.
Required for non-Intel USB3 Controllers. Only use if you have a non-Intel USB3 Controller
RealtekRTL8111.kext
Enables Realtek RTL8111/8168 Family onboard Ethernet Controller.
RealtekRTL8100.kext
Enables RTL810X Fast Ethernet Family onboard Ethernet Controller.
AtherosE2200Ethernet
Enables Qualcomm Atheros Killer Family onboard Ethernet Controller.
Enables Broadcom BCM5722 NetXtreme and NetLink family gigabit onboard Ethernet Controller.
AppleIntelE1000e.kext
Enables Intel Fast Ethernet onboard Ethernet Controller
Intel82566MM
Enables ASMedia USB3.1 Controllers.
Required for macOS Big Sur and later.
Required for ASMedia USB 3.1 Controller. Only use if you have an AsMedia USB3.1 Controller
NullEthernetInjector
Fake Ethernet.
Enables Mac App Store access.
Required for Laptops where you don't have a built-in Ethernet port or built-in WiFi with supporting drivers
Suitable for Third Party (non-native) USB WiFi Adapters.
WiFi
Required for WiFi functioning.
AirportBrcmFixup
Required for WiFi functioning of non-Apple/non-Fenvi Broadcom Cards
Requires a compatible Broadcom WiFi Card. Only use if you have a compatible Broadcom WiFi Card.
This kext requires Lilu.kext to function.
AirportItlwm
Works as standalone kext.
Has AirDrop and Handoff support.
Works as WiFi Interface.
Requires a compatible Intel WiFi Card. Only use if you have a compatible Intel WiFi Card.
itlwm
Similar to AirportItlwm.
Required where AirportIlwm is not compatible. Varies from system to system.
Requires HeliPort App, which acts as a WiFi Client for Intel WiFi.
Has no AirDrop or Handoff support.
Works as Ethernet Interface.
Requires a compatible Intel WiFi Card. Only use if you have a compatible Intel WiFi Card.
Bluetooth
Required for Bluetooth functioning.
BlueToolFixup
Required for Broadcom and Intel Bluetooth
For macOS 12 (Monterey) and Later
Do not use it with BrcmBluetoothInjector.kext and IntelBluetoothInjector.kext
This kext requires Lilu.kext to function.
BrcmBluetoothInjector
Bluetooth Injector for Broadcom
Required for OS X 10.11 (El Capitan) to macOS Big Sur
This kext requires BrcmFirmwareData.kext and BrcmPatchRAM3 to function.
Do not use BrcmPatchRAM.kext or BrcmPatchRAM2.kext with this kext.
BrcmBluetoothInjectorLegacy
Bluetooth Injector for Broadcom
Required for OS X 10.10 (Yosemite) and older
BrcmFirmwareData
Enables Firmware Upload to Bluetooth Device.
Required for all non-Apple and non-Fenvi Cards
This kext can be injected via Bootloader and is the preferred configuration.
This kext requires BrcmBluetoothInjector.kext and BrcmPatchRAM3 to function.
BrcmFirmwareRepo
Enables Firmware Upload to Bluetooth Device.
Required for all non-Apple and non-Fenvi Cards
Required for OS X 10.11 and later.
Must be installed in /S/L/E or /L/E.
This kext is slightly more memory efficient than BrcmFirmwareData.kext, but cannot be injected by a bootloader.
BrcmNonPatchRAM2
Required for non-PatchRAM device
For OS X 10.11 (El Capitan) and Later
BrcmNonPatchRAM
Required for non-PatchRAM device
For OS X 10.10 (Yosemite) and older
BrcmPatchRAM3
For macOS Catalina and Later
This kext requires BrcmBluetoothInjector.kext and BrcmFirmwareData.kext to function.
BrcmPatchRAM2
For OS X 10.11 (El Capitan) to macOS Mojave
This kext requires BrcmBluetoothInjectorLegacy and BrcmFirmwareRepo.kext to function.
BrcmPatchRAM
For OS X 10.10 and older
This kext requires BrcmBluetoothInjectorLegacy and BrcmFirmwareRepo.kext to function.
IntelBluetoothInjector
Bluetooth Injector for Intel
Required for macOS High Sierra and Later
This kext requires IntelBluetoothFirmware.kext to function.
IntelBluetoothFirmware
Enables Intel Bluetooth.
Enables Firmware Upload to Bluetooth Device.
Required for all compatible Intel Bluetooth
Storage
Required for SATA/NVMe Controller functioning.
NVMeFix
Fixes Power Management for NVMe Drives.
This kext may slower the R/W speeds of your NVMe Drives.
Not recommended for NVMe Drives in RAID mode.
This kext requires Lilu.kext to function.
SATA-Unsupported
Enables certain SATA Controllers under macOS.
Certain SATA Controllers may not be recognised by the installer and due to this, you may not be able to see the target drive or the other drive connected to the particular controller.
Such SATA Controllers are not recognised by the SATA kexts provided by Apple and this is due to Apple doesn't uses that specific controller in their hardware.
If you're having a similar issue, you'll need to use this kext to overcome this issue.
Use "SATA-unsupported.kext" for macOS Sierra and later.
CtlnaAHCIPort
Similar to SATA-Unsupported.kext
Required for macOS Big Sur and Later.
ACHIPortInjector
Enables unsupported SATA Controller on macOS
ATAPortInjector
Enables unsupported IDE and ATA Controller on macOS
SASMegaRAID
Enables LSI RAID 8xxx/92xxx Controllers.
Enables Dell PERC 5, PERC6, H310, H700 and H800
Enables IBM ServeRAID M1115
Enables Intel RAID SRCSAS18E/SRCSAS144E
DiskArbitrationFixup
Disables the uninitialized disk message for an uninitialized disk
Removes The disk you inserted was not readable by this computer message when an uninitialized disk is connected.
Innie
Makes PCIe drives appear as Internal
An alternative option is to add the built-in device property for each drive installed.
Keyboard/Trackpad/Touchscreen
Required for input functioning.
Only for Laptops and mobile devices.
VoodooPS2Controller
Enables PS/2 Keyboard, Mouse, and Trackpad
Enables multi-gestures for Trackpad.
ApplePS2SmartTouchpad
Multitouch driver for ELAN, FocalTech, and Synaptics Touchpad
Similar to VoodooPS2Controller
VoodooRMI
Required for Laptops with Synaptics SMBus Trackpads
Requires VoodooPS2Controller.kext and VoodooSMBus.kext for SMBus based Trackpads to function.
Requires VoodooI2C.kext for I2C based Synaptics Trackpads to function.
Similar to VoodooPS2Controller
VoodooSMBus
Required for Laptops with ELAN SMBus Trackpads.
Enables multi-gestures for Trackpad.
Similar to VoodooPS2Controller
Do not use VoodooPS2Controller.kext with this kext.
VoodooI2C
Enables I2C functioning.
Required for Laptops with I2C Trackpads and Touchscreens.
Requires a Satellite kext to function [VoodooI2CHID, VoodooI2CAtmelMXT, VoodooI2CELAN, VoodooI2CFTE and VoodooI2CSynaptics]
Enables multi-gestures for Trackpad.
Requires DSDT patching to work.
Requires a working Battery meter for enabling Trackpad Preferences.
VoodooI2CHID
Satellite kext.
Adds support for I2C-HID device.
Required for Laptops with I2C Trackpads and Touchscreens.
Common Satellite kext for VoodooI2C.kext
Requires VoodooI2C.kext to function
VoodooI2CAtmelMXT
Satellite kext.
Required for Laptops with Atmel Multitouch I2C Device.
Requires VoodooI2C.kext to function
VoodooI2CELAN
Satellite kext
Required for Laptops with ELAN I2C Device.
ELAN1200 and later requires VoodooI2CHID.kext to function
Requires VoodooI2C.kext to function
VoodooI2CFTE
Satellite kext
Required for Laptops with FTE I2C Device.
Requires VoodooI2C.kext to function
VoodooI2CSynaptics
Satellite kext
Required for Laptops with Synaptics I2C Device.
Requires VoodooI2C.kext to function
AlpsHID
Satellite kext
Required for Laptops with Alps I2C Device.
Requires VoodooI2C.kext to function
Requires AlpsHID VoodI2CHID version.
BrightnessKeys
Enables Automatic handling of Brightness Hotkeys.
Requires Lilu.kext to function
NoTouchID
Disables Touch ID checks which cause hangs
This kext is not required on 10.15.7 and later.
This kext requires Lilu.kext to function.
Battery SMCBatteryManager.kext
Enables Battery readings
Required for Laptops only.
Requires DSDT patching for battery meter.
Card Reader
Required for Card Reader functioning.
Sinetek-rtsx
Enables Realtek SD Card Reader
BrightnessKeys
Enables Realtek PCIe/USB-based SD card readers
Requires RealtekCardReaderFriend.kext to function
RealtekCardReaderFriend
Supporting kext for RealtekCardReader.kext
Enables Card Reader information under System Information>Card Reader
Helps to recognize the Card Reader as a native one.
Requires RealtekCardReader.kext and Lilu.kext to function
GenericCardReaderFriend
Enables Card Reader information under System Information>Card Reader
Required for built-in USB Card Reader which works OOTB but does not show up in System Information.
Do not use this kext if your Card Reader is powered by either AppleUSBCardReader.kext or RealtekCardReader.kext
Requires Lilu.kext to function
Sleep/Wake HibernationFixup.kext
Enables sync between RTC variables and NVRAM
Enables native hibernation on systems with hardware NVRAM
Supports Hibdernation modes 3 and 25
USBWakeFixup.kext
Creates fake ACPI device with the right wakeup params
Fixes display on wakeup from a USB device.
Requires SSDT-USBW.aml to function.
Virtualization MacHyperVSupport
Provides Hyper-V integration services for macOS
Requires SSDT-HV-CPU.aml, SSDT-HV-PLUG.aml and SSDT-HV-VMBUS.aml to function.
Requires Windows 8.1 and above
Monitoring SMCProcessor.kext
Enables CPU Temperature for monitoring.
Required for CPU sensing.
Required for Intel CPUs only.
Available in VirtualSMC package.
SMCSuperIO.kext
Enables FAN Speed for monitoring.
Required for fans reading.
Required for Intel CPUs only.
Sensors
SMCLightSensor.kext
Required for Ambient Light Sensor
Required for Laptops only.
Available in VirtualSMC package.
SMCDellSensors.kext
Enables finer monitoring and Control of FANs
Only required for Dell systems supporting System Management Mode (SMM).
Available in VirtualSMC package.
Miscellaneous RestrictEvents.kext
Blocks unwanted processes causing compatibility issues on different hardware and unlocks the support for certain features restricted to other hardware
Fixes ExpansionSlotNotification and MemorySlotNotification on MacPro7,1 SMBIOS.
Required for MacPro7,1 SMBIOS.
FeatureUnlock.kext
Enables Sidecar, NightShift, AirPlay, and Universal Control
RTCMemoryFixup
Emulates some offsets in CMOS (RTC) memory
Helps to avoid some conflicts between macOS AppleRTC and BIOS/firmware of your System.
SystemProfilerMemoryFixup
Enables memory tab on systems when using MacBook SMBIOS which have soldered RAM.
Requires Lilu.kext to function
Debugging DebugEnhancer
Enables Debug putout in the macOS Kernel.
Requires Lilu.kext to function
Category
Kext Name
Required
Notes
System
Lilu
VirtualSMC
YES
Required for Booting into macOS and are mandatory.
Lilu
Provides arbitrary patching.
Required for AppleALC, WhateverGreen, VirtualSMC and several other kexts.
VirtualSMC
SMC Emulator. Emulates Apple hardware.
VirtualSMC is a successor of FakeSMC.
This kext requires Lilu.kext to function.
CPU and SMC
CPUFriend
ASUSSMC
CpuTscSync
AppleMCEReporterDisabler
SMCAMDProcessor
telemetrap
AAAMouSSE
Optional
CPUFriend
Enables dynamic power management data injection
Requires Lilu.kext to function
AsusSMC
Enables Native support for ALS, Keyboard Backlight and Fn Keys for ASUS Laptops
Requires Lilu.kext to function
CPUTscSync
Enables synchronization of the TSC with the CPU
Required for HEDT Systems.
A quick way to find if your Laptop needs CpuTscSync.kext, while booting the installer, you may feel lags and the installer getting stuck at several stages or you may see the Apple logo or other pop-ups appearing in background. On some Laptops, you may get CPU panic for threads. f you're having such scenarios, you'll need to use this kext.
This kext is mostly needed by Lenovo and newer ASUS Laptops with the latest BIOS.
This kext requires Lilu.kext to function.
AppleMCEReporterDisabler
Disables AppleMCEReporter kext to prevent Kernel Panics
Required for AMD CPUs and Dual-Socket Systems.
AMDRyzenCPUPowerManagement.kext
Required for AMD Power Management Features
This kext is also required if you would like to use AMD Power Gadget.
Requires SMCAMDProcessor.kext to enable sensor data
AMDRyzenCPUPowerManagement.kext should load before SMCAMDProcessor.kext
SMCAMDProcessor.kext
Enables sensor data readings for VirtualSMC.
Requires AMDRyzenCPUPowerManagement.kext and VirtualSMC.kext to function
telemetrap.kext
Disables AppleMCEReporter kext to prevent Kernel Panics
Required for AMD CPUs and Dual-Socket Systems.
AAAMouSSE.kext
Enables SSE4.2 Support
Allows old CPUs to use the newer AMD drivers.
Required by AMD drivers for Metal Support
Only required for CPUs lacking SSE4.2 instructions.
Graphics
WhateverGreen
dAGPM
YES
WhateverGreen.kext
Provides GPU patching on macOS.
Fixes various Graphics related issues.
Required for Intel, NVIDIA, and AMD GPUs.
This kext requires Lilu.kext to function.
dAGPM.kext
Enables Power Management for Discrete Graphics (NVIDIA/AMD)
Requires Board ID configuration to work.
USB
USBInjectAll
XHCI-Unsupported
GenericUSBXHCI.kext
ASMedia.kext
mXHCD.kext
XLNCUSBFIX
YES
Required for USB functioning.
USBInjectAll
Enables USB ports.
Required for Intel-based Motherboards only.
It's advised to map the USB ports during the post-install for a better USB speed, improved sleep/wake and hotplug.
XHCI-Unsupported
Enables Intel USB Controllers on 9, 200, 300, 400 series and some HEDT Motherboards such as X99 and X299.
Required for Intel-based Motherboards only.
GenericUSBXHCI.kext
Enables non-Intel USB3 Controllers.
Usually found on Sandy Bridge, Ivy Bridge and some Haswell
Required for non-Intel USB3 Controllers. Only use if you have a non-Intel USB3 Controller
ASMedia.kext
Enables ASMedia USB3.1 Controllers.
Required for macOS Big Sur and later.
Required for ASMedia USB 3.1 Controller. Only use if you have an AsMedia USB3.1 Controller
mXHCD.kext
Enables ASMedia USB3.0 1040/1042 Controllers.
Required for ASMedia USB 3.0 Controller. Only use if you have an AsMedia USB3.0 Controller
XLNCUSBFIX
Fixes USB on AMD FX Systems
Do not use it on Ryzen Systems
Requires macOS 10.13 and later
Audio
AppleALC
AppleALCU
EMUUSBAudio
YES
Required for Audio functioning.
AppleALC.kext
Provides AppleHDA patching on macOS.
Enables onboard/built-in Audio.
Fixes various Audio related issues.
This kext requires Lilu.kext to function.
AppleALCU.kext
Required for Onboard/built-in USB Audio.
This kext requires Lilu.kext to function.
Only use if you have Onboard/built-in Realtek USB Audio Controller
EMUUSBAudio
Required for Creative Labs EMU USB Audio.
Only use if you have Creative Labs EMU USB Audio Interface
Ethernet
IntelMausi.kext
SmallTreeIntel82576.kext
SmallTreeIntel8259x
LucyRTL8125Ethernet.kext
RealtekRTL8111.kext
RealtekRTL8100.kext
AtherosE2200Ethernet
AtherosL1cEthernet
BCM5722D.kext
AppleIntelE1000e
Intel82566MM
NullEthernetInjector
Optional
Required for Ethernet functioning.
IntelMausi.kext
Enables Intel Family onboard Ethernet Controller.
Required for Intel-based Motherboards only.
It's advised to map the USB ports during the post-install for a better USB speed, improved sleep/wake and hotplug.
SmallTreeIntel82576.kext
SmallTreeIntel8259x.kext
LucyRTL8125Ethernet.kext
Enables Realtek RTL8125 2.5GBit Ethernet Family onboard Ethernet Controller.
Required for non-Intel USB3 Controllers. Only use if you have a non-Intel USB3 Controller
RealtekRTL8111.kext
Enables Realtek RTL8111/8168 Family onboard Ethernet Controller.
RealtekRTL8100.kext
Enables RTL810X Fast Ethernet Family onboard Ethernet Controller.
AtherosE2200Ethernet
Enables Qualcomm Atheros Killer Family onboard Ethernet Controller.
Enables Broadcom BCM5722 NetXtreme and NetLink family gigabit onboard Ethernet Controller.
AppleIntelE1000e.kext
Enables Intel Fast Ethernet onboard Ethernet Controller
Intel82566MM
Enables ASMedia USB3.1 Controllers.
Required for macOS Big Sur and later.
Required for ASMedia USB 3.1 Controller. Only use if you have an AsMedia USB3.1 Controller
NullEthernetInjector
Fake Ethernet.
Enables Mac App Store access.
Required for Laptops where you don't have a built-in Ethernet port or built-in WiFi with supporting drivers
Suitable for Third Party (non-native) USB WiFi Adapters.
WiFi
AirportBrcmFixup
AirportItlwm
itlwm
Optional
Required for WiFi functioning.
AirportBrcmFixup
Required for WiFi functioning of non-Apple/non-Fenvi Broadcom Cards
Requires a compatible Broadcom WiFi Card. Only use if you have a compatible Broadcom WiFi Card.
This kext requires Lilu.kext to function.
AirportItlwm
Works as standalone kext.
Has AirDrop and Handoff support.
Works as WiFi Interface.
Requires a compatible Intel WiFi Card. Only use if you have a compatible Intel WiFi Card.
itlwm
Similar to AirportItlwm.
Required where AirportIlwm is not compatible. Varies from system to system.
Requires HeliPort App, which acts as a WiFi Client for Intel WiFi.
Has no AirDrop or Handoff support.
Works as Ethernet Interface.
Requires a compatible Intel WiFi Card. Only use if you have a compatible Intel WiFi Card.
Bluetooth
BlueToolFixup
BrcmBluetoothInjector
BrcmBluetoothInjectorLegacy
BrcmFirmwareData
BrcmFirmwareRepo
BrcmNonPatchRAM2
BrcmNonPatchRAM
BrcmPatchRAM3
BrcmPatchRAM2
BrcmPatchRAM
IntelBluetoothInjector
IntelBluetoothFirmware
Optional
Required for Bluetooth functioning.
BlueToolFixup
Required for Broadcom and Intel Bluetooth
For macOS 12 (Monterey) and Later
Do not use it with BrcmBluetoothInjector.kext and IntelBluetoothInjector.kext
This kext requires Lilu.kext to function.
BrcmBluetoothInjector
Bluetooth Injector for Broadcom
Required for OS X 10.11 (El Capitan) to macOS Big Sur
This kext requires BrcmFirmwareData.kext and BrcmPatchRAM3 to function.
Do not use BrcmPatchRAM.kext or BrcmPatchRAM2.kext with this kext.
BrcmBluetoothInjectorLegacy
Bluetooth Injector for Broadcom
Required for OS X 10.10 (Yosemite) and older
BrcmFirmwareData
Enables Firmware Upload to Bluetooth Device.
Required for all non-Apple and non-Fenvi Cards
This kext can be injected via Bootloader and is the preferred configuration.
This kext requires BrcmBluetoothInjector.kext and BrcmPatchRAM3 to function.
BrcmFirmwareRepo
Enables Firmware Upload to Bluetooth Device.
Required for all non-Apple and non-Fenvi Cards
Required for OS X 10.11 and later.
Must be installed in /S/L/E or /L/E.
This kext is slightly more memory efficient than BrcmFirmwareData.kext, but cannot be injected by a bootloader.
BrcmNonPatchRAM2
Required for non-PatchRAM device
For OS X 10.11 (El Capitan) and Later
BrcmNonPatchRAM
Required for non-PatchRAM device
For OS X 10.10 (Yosemite) and older
BrcmPatchRAM3
For macOS Catalina and Later
This kext requires BrcmBluetoothInjector.kext and BrcmFirmwareData.kext to function.
BrcmPatchRAM2
For OS X 10.11 (El Capitan) to macOS Mojave
This kext requires BrcmBluetoothInjectorLegacy and BrcmFirmwareRepo.kext to function.
BrcmPatchRAM
For OS X 10.10 and older
This kext requires BrcmBluetoothInjectorLegacy and BrcmFirmwareRepo.kext to function.
IntelBluetoothInjector
Bluetooth Injector for Intel
Required for macOS High Sierra and Later
This kext requires IntelBluetoothFirmware.kext to function.
IntelBluetoothFirmware
Enables Intel Bluetooth.
Enables Firmware Upload to Bluetooth Device.
Required for all compatible Intel Bluetooth
Storage
NVMeFix
SATA-Unsupported
CtlnaAHCIPort
ACHIPortInjector
ATAPortInjector
SASMegaRAID
DiskArbitrationFixup
Innie
Optional
Required for SATA/NVMe Controller functioning.
NVMeFix
Fixes Power Management for NVMe Drives.
This kext may slower the R/W speeds of your NVMe Drives.
Not recommended for NVMe Drives in RAID mode.
This kext requires Lilu.kext to function.
SATA-Unsupported
Enables certain SATA Controllers under macOS.
Certain SATA Controllers may not be recognised by the installer and due to this, you may not be able to see the target drive or the other drive connected to the particular controller.
Such SATA Controllers are not recognised by the SATA kexts provided by Apple and this is due to Apple doesn't uses that specific controller in their hardware.
If you're having a similar issue, you'll need to use this kext to overcome this issue.
Use "SATA-unsupported.kext" for macOS Sierra and later.
CtlnaAHCIPort
Similar to SATA-Unsupported.kext
Required for macOS Big Sur and Later.
ACHIPortInjector
Enables unsupported SATA Controller on macOS
ATAPortInjector
Enables unsupported IDE and ATA Controller on macOS
SASMegaRAID
Enables LSI RAID 8xxx/92xxx Controllers.
Enables Dell PERC 5, PERC6, H310, H700 and H800
Enables IBM ServeRAID M1115
Enables Intel RAID SRCSAS18E/SRCSAS144E
DiskArbitrationFixup
Disables the uninitialized disk message for an uninitialized disk
Removes The disk you inserted was not readable by this computer message when an uninitialized disk is connected.
Innie
Makes PCIe drives appear as Internal
An alternative option is to add the built-in device property for each drive installed.
Keyboard/Trackpad/Touchscreen
VoodooPS2Controller
ApplePS2SmartTouchpad
VoodooRMI
VoodooSMBus
VoodooI2C
BrightnessKeys
NoTouchID
Optional
Required for input functioning.
Only for Laptops and mobile devices.
VoodooPS2Controller
Enables PS/2 Keyboard, Mouse, and Trackpad
Enables multi-gestures for Trackpad.
ApplePS2SmartTouchpad
Multitouch driver for ELAN, FocalTech, and Synaptics Touchpad
Similar to VoodooPS2Controller
VoodooRMI
Required for Laptops with Synaptics SMBus Trackpads
Requires VoodooPS2Controller.kext and VoodooSMBus.kext for SMBus based Trackpads to function.
Requires VoodooI2C.kext for I2C based Synaptics Trackpads to function.
Similar to VoodooPS2Controller
VoodooSMBus
Required for Laptops with ELAN SMBus Trackpads.
Enables multi-gestures for Trackpad.
Similar to VoodooPS2Controller
Do not use VoodooPS2Controller.kext with this kext.
VoodooI2C
Enables I2C functioning.
Required for Laptops with I2C Trackpads and Touchscreens.
Requires a Satellite kext to function [VoodooI2CHID, VoodooI2CAtmelMXT, VoodooI2CELAN, VoodooI2CFTE and VoodooI2CSynaptics]
Enables multi-gestures for Trackpad.
Requires DSDT patching to work.
Requires a working Battery meter for enabling Trackpad Preferences.
VoodooI2CHID
Satellite kext.
Adds support for I2C-HID device.
Required for Laptops with I2C Trackpads and Touchscreens.
Common Satellite kext for VoodooI2C.kext
Requires VoodooI2C.kext to function
VoodooI2CAtmelMXT
Satellite kext.
Required for Laptops with Atmel Multitouch I2C Device.
Requires VoodooI2C.kext to function
VoodooI2CELAN
Satellite kext
Required for Laptops with ELAN I2C Device.
ELAN1200 and later requires VoodooI2CHID.kext to function
Enables Card Reader information under System Information>Card Reader
Helps to recognize the Card Reader as a native one.
Requires RealtekCardReader.kext and Lilu.kext to function
GenericCardReaderFriend
Enables Card Reader information under System Information>Card Reader
Required for built-in USB Card Reader which works OOTB but does not show up in System Information.
Do not use this kext if your Card Reader is powered by either AppleUSBCardReader.kext or RealtekCardReader.kext
Requires Lilu.kext to function
Sleep/Wake
HibernationFixup
USBWakeFixup
HibernationFixup.kext
Enables sync between RTC variables and NVRAM
Enables native hibernation on systems with hardware NVRAM
Supports Hibdernation modes 3 and 25
USBWakeFixup.kext
Creates fake ACPI device with the right wakeup params
Fixes display on wakeup from a USB device.
Requires SSDT-USBW.aml to function.
Virtualization
MacHyperVSupport
Provides Hyper-V integration services for macOS
Requires SSDT-HV-CPU.aml, SSDT-HV-PLUG.aml and SSDT-HV-VMBUS.aml to function.
Requires Windows 8.1 and above
Monitoring
SMCProcessor.kext
SMCSuperIO.kext
Optional
SMCProcessor.kext
Enables CPU Temperature for monitoring.
Required for CPU sensing.
Required for Intel CPUs only.
Available in VirtualSMC package.
SMCSuperIO.kext
Enables FAN Speed for monitoring.
Required for fans reading.
Required for Intel CPUs only.
Sensors
SMCLightSensor.kext
SMCDellSensors.kext
Optional
SMCLightSensor.kext
Required for Ambient Light Sensor
Required for Laptops only.
Available in VirtualSMC package.
SMCDellSensors.kext
Enables finer monitoring and Control of FANs
Only required for Dell systems supporting System Management Mode (SMM).
Available in VirtualSMC package.
Misc
RestrictEvents.kext
FeatureUnlock.kext
RTCMemoryFixup
SystemProfilerMemoryFixup
Optional
RestrictEvents.kext
Blocks unwanted processes causing compatibility issues on different hardware and unlocks the support for certain features restricted to other hardware
Fixes ExpansionSlotNotification and MemorySlotNotification on MacPro7,1 SMBIOS.
Required for MacPro7,1 SMBIOS.
FeatureUnlock.kext
Enables Sidecar, NightShift, AirPlay, and Universal Control
RTCMemoryFixup
Emulates some offsets in CMOS (RTC) memory
Helps to avoid some conflicts between macOS AppleRTC and BIOS/firmware of your System.
SystemProfilerMemoryFixup
Enables memory tab on systems when using MacBook SMBIOS which have soldered RAM.
Requires Lilu.kext to function
Debugging
DebugEnhancer
Enables Debug putout in the macOS Kernel.
Requires Lilu.kext to function
1. Download the required kexts as per your hardware.
2. Extract the kexts from the RELEASE folder.
3. Copy the kexts with .kext extension to EFI/OC/Kexts directory.
NOTES:
Do not download the project files. The pre-built binaries/downloads are available in the README.md section. Make sure you read it carefully.
Download the latest version for better support.
Use the Kexts from the RELEASE folder and the RELEASE.zip file.
If you're following the process on Windows or Linux, you'll see the Kexts like normal folders.
Only copy the files with the .kext Extension.
Do not copy the .dsYM file from the RELEASE folder. They're only for debugging purposes.
Do not place unnecessary kexts here. It might prevent booting the installer.
Only use basic kexts which are required to boot off the installer. You can install the rest required kexts at the time of post-installation.
The VirtualSMC package includes Battery and Sensors plugins (SMCBatteryManager.kext, SMCDellSensors.kext, SMCLightSensor.kext, SMCProcessor.kext, and SMCSuperIO.kext). You do not need these kexts for booting the installer.
Do not use "SATA-unsupported.kext" and "CtlnaAHCIPort.kext" together.
The Optional kexts are purely dependent on the hardware you have. If you're having matching hardware, then only add the kexts otherwise adding unnecessary kexts isn't a good idea and is highly discouraged.
Setting up config.plist Now, as you have things in order, the next step is to set up config.plist. It is highly recommended to create your own config.plist as the hardware differs. Copying from somewhere else isn't a good idea. You can obtain a sample.plist which is bundled with OpenCore pkg and this sample.plist will be used as a base for setting up config.plist.
1. As you already have downloaded OpenCore Pkg, simply copy sample.plist from OpenCore/RELEASE/Docs to EFI/OC directory and rename it to config.plist. The directory structure for OpenCore Pkg for Docs has been provided below.
To avoid any conflicts and outdated settings, OpenCore and sample.plist should be from the same RELEASE version and should not mismatch.
Now, as we have setup OpenCore and the required Drivers (.efi), SSDTs (.aml), Kexts (.kext) and config.plist. The EFI should look something similar to the following
Your EFI might differ as each system is different and will have different requirements.
Cleaning up config.plist Now before you start working with your config.plist, it is highly recommended to clean up the config.plist to have the required settings only. A basic clean-up is required as by default, OpenCore includes numerous settings, for several purposes and all of them may not be required by a particular system. You need to use the settings required by your system and remove all irrelevant entries and settings from your config.plist. Although, most of such settings are already off, but do exist. Keeping such settings will not harm but to reduce the size and have less clutter, it is strongly advised to delete the irrelevant settings which you don't need.
Starting from this step, you'll need to use a tool to edit the config.plist and we'll use OC Auxiliary Tools to edit the config.plist and configure it accordingly. With OC Auxiliary Tools, you have the advantage of Cross-Platform i.e. you can use the tool on Windows, Mac, and Linux. To edit your OpenCore config.plist using OC Auxiliary Tools, follow the steps below.
1. Download OC Auxiliary Tools from the downloads section of this forum.
For macOS
Mount the .DMG file by openening the .dmg file
Move the OCAuxiliaryTools to your Applications folder
Open OCAuxiliaryTools.app to launch the Application
For Windows
Extract the zip and you'll get the OCAT-Win64 folder
Use OCAuxiliaryTools.exe to launch the Application
For Linux
Update OC Auxiliary Tools
Perform an upgrade check for OC Auxiliary Tools App using Help>Download Upgrade Packages. If there's any available package for an upgrade, it will download it. Once it finishes downloading, click on Close and start upgrade and the App will upgrade to its latest version. After the upgrade, when the App reopens, check for an update using Help> Update Check. If you're using the latest version, you'll see the following
Note that you don't need to follow this step if you have downloaded the latest OC Auxiliary Tools.
Update OpenCore Package
Now, click on the Sync icon Upgrade OpenCore and Kexts icon and you'll see something similar to the following
Select Latest Version from Choose OpenCore Version option.
Click on Get OpenCore and it will update the OpenCore Database.
Once the OpenCore Database is updated, you'll see the following
Open your config.plist from the directory EFI/OC/ using OC Auxiliary Tools
ACPI Add
1. Select all the ACPI entries using Command+A or CTRL+A on your Keyboard.
2. Click on the delete button to remove all the entries and you should have all the entries removed. Delete
1. Move to the Delete Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Patch
1. Move to Patch Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed.
Quirks
Remove ResetLogoStatus
Booter MmioWhitelist
1. Select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Patch
1. Move to Patch Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed.
DP (Device Properties) Add
1. Select all the Device entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed.
Kernel Add
1. Select all the Kext entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Block
1. Move to Patch Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Force
1. Move to Patch Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Patch
1. Move to Patch Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Misc Entries
1. Select all the Boot entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. Tools
1. Move to Tools Tab and select all the Tools entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. NVRAM Add
1. Select the UUID 7C436110-AB2A-4BBB-A880-FE41995C9F82
2. From the right pane, select the entry shown and click on the delete button to remove the key and you should have the key entry removed.
3. From the right pane, select the value for the Key prev-lang:kbd and click on the Delete button to delete the value.
UEFI Drivers
1. Select all the Drivers entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed. ReservedMemory
1. Move to Patch Tab and select all the entries using Command+A or CTRL+A on your Keyboard
2. Click on the delete button to remove all the entries and you should have all the entries removed.
Finally, Save your config.plist using the Menu File>Save option
Adding SSDTs, Kexts and Drivers in config.plist Now, as we have got a cleaned-up config.plist, we can start adding the SSDTs (.aml), Kexts (.kext) and Drivers (.efi) to our config.plist. This linking step is necessary as OpenCore requires these configured in the config.plist and without them, OpenCore will simply not boot to the target OS. To add the SSDTs, Kexts and Drivers, follow the steps below.
1. Open your config.plist using OC Auxiliary Tools from EFI/OC directory.
SSDTs
1. In the Add Tab, click on Add button and select all the .aml files from EFI/OC/ACPI directory and you should have all the .aml files entries added.
NOTES:
The .aml files must exist in EFI/OC/ACPI directory
As the ACPI loading order is important for OpenCore, it is advised to load the SSDTs in sorted order. This means all the necessary SSDTs should be loaded first and dependencies SSDTs should load later to avoid issues.
Your entries might differ as each system is different and will have different requirements.
Kexts
1. In the Add tab, click on Add button and select all the .kext files from EFI/OC/Kexts directory and you should have all the .kext files entries added.
2. Arrange the kexts using arrow buttons. < button for up and > for down
NOTE:
The .kext files must exist in EFI/OC/Kexts directory
As the kext loading order is important for OpenCore, it is advised to load the kexts in sorted order. This means all the necessary kexts should be loaded first and dependencies kexts should load later to avoid issues.
Your entries might differ as each system is different and will have different requirements.
Drivers
1. In the Drivers tab, click on Add button and select all the .efi files from EFI/OC/Drivers directory and you should have all the .efi files entries added.
2. Arrange the drivers using arrow buttons. < button for up and > for down
NOTES:
The .efi files must exist in EFI/OC/Drivers directory
As the driver loading order is important for OpenCore, it is advised to load the drivers in sorted order. This means all the necessary drivers should be loaded first.
Your entries might differ as each system is different and will have different requirements.
The config.plist must match the SSDTs, Kexts, and Drivers in the respective directories of the EFI folder. If you tend to delete a file in these directories and the entries are left linked in the config.plist, OpenCore will halt and will not boot further.
Selecting a config.plist File OpenCore comes with default config.plist file. This config.plist cannot be used to boot most of the systems. You'll need to configure the config.plist according to your hardware, mainly the Quirks. Each System has a different set of Quirks which is required for booting. Therefore knowing your hardware is very important. In addition, you may need to configure Graphics and other PCIe devices in order to boot.
We've already created a separate thread on configuring your config.plist to boot the installer. Depending on your hardware, configure the config.plist according to the guide. Depending on the Platform and CPU you have, select the appropriate config.plist building guide.
Intel Desktops
CPU Code Name
Guide Link
Penryn
Lynfield
Sandy Bridge
Ivy Bridge
Haswell
Broadwell
Skylake
Kaby Lake
Coffee Lake
Comet Lake
Rocket Lake
Alder Lake
NOTE:
Intel NUC and a few AIO use Mobile CPUs. For all such hardware, it is advised to use the config.plist from Intel Laptops section.
Validating config.plist
Once you're done editing the config.plist file, the next step is to validate the config.plist to make sure no error exists. To validate your config.plist, follow the steps below.
Installing OpenCore to Bootable USB
After validating the config.plist, all you need to do is install OpenCore to Bootable USB. To install OpenCore, follow the steps below.
Preparing Computer for booting OS X/macOS
Before you rush and try to boot using the USB Installer, there are a few steps that you need to perform. This will eliminate any possible conflicts and make the installation hassle free with great reliability.
Performing a Backup
Although, while performing OS X/macOS installation, unless you delete Disk/Partition by mistake, OS X/macOS does not format the Disk/partition without your consent. Even though, it is recommended to perform a complete backup of your target Disk before proceeding to avoid any possible data loss. This will ensure that your data is safe and you can debug the installation without any hassle. This becomes necessary for Dual Booting Configuration.
Removing Extra Installed and Connected Devices
When booting the OS X/macOS Installer, it is important that you only have the basic Devices connected and any extra installed hardware and connected Devices must be removed or the installer may fail to boot or it can even throw a Kernel Panic. Therefore it is advised to remove the following if it exists
- Thunderbolt Cards
- FireWire Cards
- External PCIe and USB Sound Cards
- eGPU
- SATA/SAS Expanders
- SATA/RAID Cards
- External PCIe Ethernet Card
- Any USB Flash Drive, External Storage Drive, NAS, Mobile Phones, Audio Interface (USB/FireWire/Thunderbolt)
NOTE:
Once the installation is complete, the compatible Devices can be installed back to the computer and can be configured during postinstallation time.
Setting up Installation Drive
In order to have a seamless experience with OS X/macOS, this guide recommends using a separate/spare drive for the installation. This way, you don't need to create a separate partition on your main drive on which you have the primary OS. If you don't have an option to use a separate/spare drive, follow Multiboot Installation Guide.
Setting Up BIOS/UEFI
In order to boot OS X/macOS, you need to set up your BIOS/UEFI. To set up your BIOS/UEFI, refer to the guide linked below
STEP 1: Booting the macOS Installer
After preparing your installation USB, EFI and setting up your BIOS/UEFI, you're ready to install it on the target computer.
1. Turn on your target Computer.
2. Boot to Boot Menu. The common Boot Menu Keys are Esc (ASUS Laptops), F8 (ASUS Desktops), F9 (HP), F12
NOTE:
Several people use BIOS to override the Boot Device. It is advised to use the Boot Menu Key to enter the Boot Menu
3. Select your USB Flash Drive with the UEFI Prefix and press enter to boot. For Legacy BIOS, select the USB Flash Drive
4. When at OC Boot picker, you'll something similar to this.
NOTE:
Depending on the type of the Bootable USB you created, you'll see either EFI (External) (dmg) or Install macOS Big Sur (External)
5. Select Reset NVRAM and press enter.
6. Boot back to OC by following steps 2 and 3.
7. When at the OC Boot picker, select macOS Base System (External) or Install macOS (External) and press enter to boot and the installer will load in a while. You'll see lots of scrolling texts while the installer loads.
STEP 2: Installing OS X/macOS
1. When at the installation screen, select your preferred language and continue
2. Select Disk Utility and continue, click on View, and select Show all Devices.
3. Now select your Hard Drive or SSD on which you want to install macOS and use the following parameters to erase your drive.
Name
Macintosh HD
Format
APFS
Scheme
GUID Partition Map
NOTES:
The target disk/partition must be GUID
APFS format is recommended for High Sierra and Later
Users who plan to use High Sierra on HDD should use macOS Journaled (HFS+) Format instead of APFS Format.
See Multiboot Guide for more info on installing on an existing Windows Drive
4. Close Disk Utility
5. Select Install macOS and continue with the options.
6. Now select Macintosh HD and click on Continue.
NOTES:
Step #6 will format the target disk. Proceed with caution.
This will take a couple of minutes and will restart at "Less than a minute is remaining". Upon completion, the system will automatically restart. Your Mac will restart to complete the installation.
7. When your Mac restarts, select Boot macOS Install from Macintosh HD or (Your drive name) and then boot. The installer screen will appear and continue the second phase of the installation. During this phase, the installer will install files to your target disk and create a Recovery HD partition. Upon completion, your Mac will automatically restart.
STEP 3: Finishing OS X/macOS Setup
After finishing the macOS installation, it's time to set up the macOS for the first usage with the newly installed macOS.
When you're at the welcome screen, continue with the basics options such as Keyboard setup, Network, Computer Account, and Privacy settings.
Now the installation is complete! You should be logged in to your Desktop with the beautiful Wallpaper
NOTE:
The first boot may be slower as the caches are not built yet. Once the caches are built, it will boot normally.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.