Update from 0.6.2 to 0.6.3

In a Nutshell

  1. Update kexts
  2. Update efi files
  3. Update config.plist

My Steps

My EFI is a git repository, cloned both to my EFI partition and to Documents in my home directory. I update the Documents version first, then I do git pull on my EFI. Git makes the whole process very easy to maintain and recover (if you know git) and having it duplicated helps to avoid stupid issues, when you’re not done, but have to shutdown your computer for some reason.

  • git pull my Documents/EFI directory, just to confirm it’s all new (e.g. in case I did some changes from my laptop)
  • Update *.kexts
  • Update *.efi files by taking them from Open Core Release
  • Update the config
  • Sanity Checker for the config

1. Update Kexts

It’s recommended to keep your kexts updated, as long as you update Open Core in order to update macOS. Remember, you don’t have to update at all: neither Open Core, nor macOS.

If you prefer to download the kexts, skip this next session to Replacing Kexts.

Compiling Kexts

Enter numbers of your kexts and the tool does the rest: compiles them all and opens a directory with zip archives for you to extract.

My numbers were: 14, 33, 36, 39, 54, 62, then B to Build Selected:

  • 14 — AppleALC
  • 33 — HibernationFixup
  • 36 — IntelMausi (Acidanthera)
  • 39 — Lilu
  • 54 — VirtualSMC (All Tools)
  • 54 — SMCProcessor
  • 54 — SMCSuperIO
  • 62 — WhateverGreen

The result was compiled within a couple of minutes.


    AppleALC v1.7.4
    HibernationFixup v1.4.6
    IntelMausi (Acidanthera) v1.0.8
    Lilu v1.6.2
    VirtualSMC (All Tools) v1.3.0
    WhateverGreen v1.6.1

Replacing kexts.

When I updated kexts each month, some kexts weren’t newer, according to the version number stated by the tool. But I replaced them all, just in case there’s some tiny updates without version change.

Kexts are in EFI/OC/Kexts. Just update all files, but USBMap.kext, if you have one. If you don’t you’d better get through mapping your ports.

My list is: WhateverGreen.kext, SMCSuperIO.kext, SMCProcessor.kext, VirtualSMC.kext, Lilu.kext, IntelMausi.kext, HibernationFixup.kext, AppleALC.kext.

Also, I have USBInjectAll.kext, USBMap.kext, USBWakeFixup.kext from old days, but they’re not included in my config.

2. Update *.efi Files

Get Open Core Release.

Update the files:

  • EFI/BOOT/BOOTx64.efi
  • EFI/OC/OpenCore.efi
  • EFI/OC/Drivers/OpenRuntime.efi
  • and other files from this directory, in case you use them, e.g. OpenCanopy.efi

Stays the same:

  • HFSPlus.efi

3. Update Config

  1. Run OC Config Compare (OCCC) on your config and the Docs/Sample.plist from the release archive. In case you’re getting the latest, be aware that it can be newer than the one from the release, as it takes it directly from GitHub repository (not release page)
  2. Compare the highlighted values visually in XCode
  3. Double-check the guide on the differences
  4. Sanity Checker

My Differences

Checking for values missing from User plist:

config.plist -> UEFI -> Drivers -> Array[0] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[1] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[2] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[3] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[4] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[5] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[6] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[7] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[8] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[9] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[10] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[11] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[12] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[13] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[14] - Missing Key: LoadEarly config.plist -> UEFI -> Drivers -> Array[15] - Missing Key: LoadEarly

Checking for values missing from Sample:

Sample.plist -> NVRAM - Missing Key: LegacyEnable

Configs Side by Side

I compare the highlighted changes step by step in Xcode, making appropriate changes.

  • You can use ProperTree, if you have no Xcode installed, since it’s very heavy to keep (over 8 GB) just for this task. The experience should be similar for both apps. ProperTree may be even better but I don’t cover it here, since I don¿t use it.
  • Also, you can use any other tool of your like, which can edit plist-files, e.g. vim or VSCode

Edit My Config

There are just two steps:

  1. Copy what’s new from Sample to your config. Usually those you don’t need to change the default values, but it’s better check it with the guide to confirm it. Most of the time it’s just copying from one config to another.

  2. Something deprecated from Sample. You’d better be careful here, since the OCCC tool doesn’t know what’s needed here. For me I just ignored what’s missing from Sample: in most cases it’s better not to remove anything from your config rather then remove.