TABLE of CONTENTS
- About
- 1. Tools and Prerequisites
- 2. Pick an OpenCore variant
- 3. Updating the database
- 4. Updating/migrating the
config.plist
- 5. Updating OpenCore Files, Drivers, Kexts and Resources
- 5. The Sync Window: Release Mode vs. Dev Mode
- Switching between Release and Debug builds
- Shortcomings of OCAT
- Refreshing the OCAT Database
- Thoughts on updating OpenCore with OCAT vs. updating it manually
- NOTES
Currently, the easiest and fastest method for keeping OpenCore, Drivers, Config and Kexts up to date is to use OpenCore Auxiliary Tools (OCAT). This way, you no longer have to work with tools like OCConfigCompare, the sample-config and PropTree to migrate and update your config.plist to the latest version manually, which is a tremendous time saver! Now upgrading the config literally seconds, instead of half an hour when updating manually.
OCAT has OCValidate integrated. It checks your config.plist for syntactical and semantic consistency automatically and lists formal errors. Simply pressing the "Save" button will migrate and update the config to the latest version and feature-set – without losing settings. This will also fix all "No schema for…" errors. Any remaining errors will most likely be actual configuration errors which you will have to on your own using the OpenCore Install Guide, for example.
For Quirks, OCAT also provides dropdown menus which include sets of recommended Quirks for various Intel and AMD CPU families. Selecting a preset will highlight the recommended Quirks in bold italics – you still have to enable them on your own.
Unlike other Configurator apps, OCAT is able to integrates new/unknown keys/features added to the config.plist into the GUI automatically and verifies it afterwards. This way, OCAT is much more future proof and secure than the rest of them.
- Working Internet Connection
- Download and install OCAT
Caution
Keep a backup of your working EFI folder on a FAT32 formatted USB flash drive in case something goes wrong, so you can boot your system via USB!
BootProtect
is mandatory prior to updating OpenCore, to avoid issue which otherwise can only be resolved by a CMOS reset. If you don't use BootProtect
you can skip this part:
- Change
Misc/Security/BootProtect
toNone
- Enable
Misc/Security/AllowNvramReset
- Reboot
- Reset NVRAM from the BootPicker
- Boot into macOS
- Update OpenCore, Config, Drivers and Kexts
- Delete the
Bootstrap
folder - Set
Misc/Boot/LauncherOption
as needed (Refer to the Updating Bootstrap and Configuration.pdf for more details)
Tip
- When updating from a very low version of OpenCore to the newest, it's wise to rebuild the config based on the latest Sample.plist. You could open both files in 2 ProperTree windows and copy over the existing settings (ACPI, Quirks, Device Properties, etc.).
- Avoid Bootstrap/LauncherOption unless you really need it. For example, if you have Windows and macOS installed on the same disk, as Laptops often do.
OCAT lets you choose and switch between 4 variants of OpenCore builds to update by combining settings in the "Edit" menu:
The following 4 combinations are possible:
- No check marks set → Downloads the current official "Release" build of OpenCore (Default)
- OpenCoe DEBUG selected → Downloads the current "Debug" build
- OpenCore DEV selected → Downloads the latest nightly "Release" build
- OpenCore DEBUG + OpenCore DEV selected → Downloads the latest nightly "Debug" build.
For Kexts, you can also choose between Release
and DEV
builds in the Sync window. When "DEV" is checked, Kexts will be updated to the latest builds available on Dortania's build repo. Depending on the selected Mode, the Sync Window looks different.
Initially, OpenCore Auxiliary Tools won't include the latest OpenCore files. In order to get them, do the following:
- Press "Upgrade OpenCore an Kexts"
- Click the "Get the latest version of OpenCore" Button:
- Once the download is complete, the displayed OC version will change in order to reflect the OpenCore version present in your database:
Note
- Run OCAT, check for Updates (Help > Update Check)
- Mount your ESP (select Edit > MountESP) or (⌘+M)
- Open your
config.plist
. If it is outdated, should see some OC Validate warnings (indicated by red warning icon):
- Click on the warning symbol to see the errors:
- Close the warnings
- Hit the Save Button (good old 💾):
- After Saving, the icon should change and the errors should be gone:
- You're already done with updating your config. On to updating files…
Note
Any remaining errors after saving the config.plist are most likely actual configuration errors which you need to fix – OC Validate might provide hints to do so. Otherwise refer to the OpenCore Installation Guide by Dortania.
To update OpenCore files and Kexts, do the following:
- Click on the
Sync
button (looks similar to a Recycle symbol): - In the next dialog window, you can see which files will be updated. Green = up to date, Red = outdated, Gray = link to repo is missing (add it to "Database" > "Kext Update URL"). Besides the displayed version (left = available online, right = currently used), md5 checksums also help you to determine if it's the same file or a different one:
- Mark the Checkboxes for Kexts you want to update (otherwise they will be ignored) and click on "Check Kexts Updates Online". This will download the latest available kexts. If some kext can't be found, add it's github URL to the Database "Kext Url" section and scan again.
- Click on "Update" to apply the new Kexts.
- In the "OpenCore" list, select the OpenCore files, drivers you want to update and click on "Star Sync". The same color coding applies!
- You will be notified once it's done:
Config OpenCore, Drivers, Kexts and Resources are up to date now. The next time you reboot the updated files will be used.
The latest update of OCAT introduced updating Kexts to nightly builds from Dortania's repo as well. This makes updating kexts for macOS Ventura a lot easier. In the Sync window, enable the "DEV" option:
As mentioned previously, the Sync Window looks different depending on the selected mode.
For the Release version (default), you can choose the Release builds you want to install from a dropdown menu in the Sync Window. Obviously, selecting "Latest Version" will download the latest available Release build after clicking on "Get OpenCore":
Once the OpenCore Package has been downloaded and integrated into the database, the OC Version displayed in the top left of OCAT's main Window will be updated to reflect the used version!
For downloading and syncing the latest DEV versions, you have to select OpenCore DEV
in the "Edit" menu. This results in a slightly different looking Sync window. Here, you can select and change the repository from where to get the files from. If the default repo (Dortania) is not working, add https://github.com/bugprogrammer/HackinPlugins to the "OpenCore development version upgrade source" field and click "Get OpenCore".
Alternatively, you can click on "Import" to open a downloaded .zip
containing OpenCore files (for example the builds listed on Dortania's Website)
To switch from the RELEASE to the DEBUG version of OpenCore, do the following:
- In OCAT, select "Edit > OpenCore DEBUG" from the menu bar (set checkmark)
- Mount your EFI and open your
config.plist
- Backup your current EFI Folder on a FAT32 formatted USB flash drive!
- Set
Misc/Debug/Target
to:67
- Update OpenCore files and Drivers
- Save and reboot
To revert back to the RELEASE build:
- In OCAT, select "Edit > OpenCore DEBUG" again, to uncheck it
- Mount your EFI and open your
config.plist
- Disable logging (change
Misc/Debug/Target
to3
) - Update OpenCore files and Drivers
- Save and reboot
As useful as OCAT is, it has some shortcomings. The ones that come to mind are database issues, downloading drivers from OcBinaryData and copying the hidden files .contentFlavour
and .contentVisibility
which were added in OC 0.8.8 into the EFI/OC/Boot folder.
This error occurs when opening a config.plist
which was created for a different/newer version of OpenCore which is not present in the Database yet. Do the following to get rid of the error:
- Click on "Edit" and select "Upgrade OpenCore and Kext" (or click on the symbol).
- Download the lasted version of OpenCore. Depending on the Mode OCAT is currently running in, the process differs.
- In
Release
mode: select "Latest Version" from the dropdown menu and click on "Get OpenCore" - In
Dev
Mode: select either "Get OpenCore" (or import a zip file of the latest build)
- In
- It will download and integrate the latest version of OpenCore into the database
- Close the Syn Window. The version number displayed in the top left of the main window should have outdated as well:
OCAT is currently not fetching drivers from Acidanthers's OcBinaryData repo automatically, so you have add them to the database manually. Usually, this only concerns the HFS+ driver, so it's not really a big deal:
- Go to the OcBinaryData repo
- Click on "Code", select "Download ZIP" and unpack it
- Place the Drivers here (Press CMD+. to show hidden files and folders):
.ocat/Database/EFI/OC/Drivers/
(for the "Release" version).ocat/Database/EFI/OC/Drivers/
(for the "Dev" version)
- Press CMD+. to hide the folders and files again
- Mount your EFI
- Download OpenCore Package
- Extract it
- Navigate to Downloads/OpenCore-0.9.X-RELEASE/X64/EFI/BOOT
- Press CMD+. to show hidden files
- Copy
.contentFlavour
and.contentVisibility
to EFI/OC/Boot - Press CMD+. to hide the folders and files again
Note
Refer to OpenCore's Documentation.pdf to find out how to configure these files.
If you want to reset OCATs preferences and its Database (after an update for example), do the folling:
- In Finder, navigate to your Home folder.
- Press CMD+. to show hidden files
- Delete the
.ocat
folder - Press CMD+. to hide the folders and files again.
- Next, run OCAT
- Fix Database errors downloading the lasted version of OpenCore from the Sync Window:
- In
Release
mode: select "Latest Version" from the dropdown menu and click on "Get OpenCore" - In
Dev
Mode: select either "Get OpenCore" (or import a zip file of the latest build)
- In
- Once the download has finished, the latest files will be integrated into the database so you can continue using OCAT as usual.
Updating and maintaining OpenCore with OCAT is remarkably straightforward. If you haven't experienced it yet, give it a try, and you'll quickly see how much easier it is. When comparing OCAT to the manual update process outlined by Dortania, the difference is clear. The manual method requires multiple tools, is time-consuming and doesn't align with OpenCore’s cutting-edge nature. OpenCore is a modern, innovative Boot Manager that continues to push technological boundaries, yet the traditional method for updating it involves several disconnected tools, creating an unnecessary challenge for users.
It’s exciting to see tools like OCAT making OpenCore updates seamless and user-friendly. Even HackUpdate is moving in the right direction, though there's still room for improvement. Until something better comes along, OCAT stands out as a practical solution that simplifies what could otherwise be a tedious process.
- When setting-up your config for the very first time, you should create an OC Snapshot with ProperTree prior to deployment. Because it does a better job of detecting kext dependencies and organizing nested kexts which can prevent possible boot errors later.
- If you are updating from OpenCore ≤ 0.7.2, you need to set UEFI/APFS
MinDate
andMinVersion
to-1
if you are using macOS Catalina or older. More Details here - The lists shown in the Sync Window are scrollable. Whether or not the scrollbar is visible or not, depends on the scrollbar behavior selected in "System Settings" > "General".
- If downloading files does not work in your region, select a different Server from "Database" > "Misc" Tab > "Upgrade download proxy setting". For me,
https://ghproxy.com/https://github.com/
works. - A nice touch when updating kexts is that OCAT writes the version number of a kext into the comments section so you don't have keep track of it.