Preliminary Information


Do NOT use Configurators. Every conceivable, and technical reason speaks against it. Configurators are not recommended because they do not conform to OpenCore’s formatting and data. Other reasons to not use a configurator include: No Kext ordering logic based on dependencies of Kexts, Auto-saving changes without warning (especially damaging changes), Zero’ing out Data that is valid for OpenCore, but invalid by the configurators PLIST parser library, so its deemed to become “0”, deleting important data such as ApECID.

Due to a bug with Xcode’s plist editor that randomly trims your plist, along with incompatibilities with OpenCore’s PLIST formatting it is not recommended for usage.

Before we dive into configuring OpenCore, we should clarify a few things, as well as initialize our plist from Sample.plist.

The .plist file format is an Apple crafted XML-type document. In theory, you can use any program you can edit plain text with, but if you don’t want to waste years in Microsoft Word, Nano or TextEdit, it’s highly recommended you use a plist editor that properly reads the XML tags and displays them in a human-editable format.

It’s recommended to use CorpNewt’s ProperTree for various reasons. ProperTree is a versatile, cross-platform PLIST editor that works across Python versions.

Since it’s built with Python, it can theoretically run on any system that supports Python 2 or newer. One of its standout features is the array of built-in functions specifically designed for OpenCore, making it highly convenient.

Fetching ProperTree

We can simply download the main branch or clone the repository via CLI.

Repository

Once we have downloaded ProperTree (and unpacked it if necessary), we will be greeted with the following files.

The difference between ProperTree.bat and ProperTreeQuiet.bat is that no console window pops up. If you are annoyed by the console window, you can use the quiet version.

Files

Windows users should choose the .bat file.

Mac users should choose the .command file.

Users on all platforms, including Linux, can also use the .py file instead by calling it with python.

When you open ProperTree, you will be greeted with the following window:

Blank file

Now we want to open our previously renamed config.plist file on USB/EFI/OC/. From now on we will refer to it simply as the plist.

You can open a select file window by pressing Cmd/Ctrl+O and selecting the correct file. If you did it correctly, it should look something like this:

You can remove the first 4 warning entries. They don’t matter, as they are simply comments.

config.plist

Taking a Snapshot of your EFI

Every time you change the structure of your OC folder, e.g. add or remove a kext, SSDT or tool, you must repeat this step. OpenCore is NOT aware of the files in your EFI, the config plist is what tells OC what is what, and where is what, and whether or not to load it.

Snapshotting explained in deep detail

OC Snapshot

Updates the current values in ACPI -> Add, Kernel -> Add, Misc -> Tools, and UEFI -> Drivers by only adding or removing entries as needed.

OC Clean Snapshot

Clears these four sections completely and adds all entries from scratch.

Both functions update various sections, but OC Snapshot keeps your custom settings for existing entries like Enabled, MinKernel, MaxKernel, and Comments.

CorpNewt’s OCSnapshot CLI tool is able to transfer the structure of your EFI folder into your config.plist.

The OCSnapshot function is already integrated in ProperTree.

All you have to do is ensure you’re focused on ProperTree, and press Ctrl+R (or Cmd+R) and select the OC folder.

However, when you take a snapshot for the first time, it is highly recommended to take a so-called Clean Snapshot.

To do this, press Ctrl/Cmd+Shift+R and select the OC folder.

config.plist

At this point in the Docs, you should now do an Clean OC Snapshot, to initialize your plists content.

Freshly OC Snapshotted Example

As you can see, several sections have been filled out. For example, the ACPI dictionary has now been properly filled out to reflect the contents of your USB’s OC folder.




Core Configuration Docs Version 1.0.0~prerelease@CarnationsInternal
Copyright © 2024 Carnations Botánica.
Distributed by a CC BY-NC-SA 4.0 License.
Last Modified: Fri, 17 Jan 2025 7:10:26 CDT