Update from 0.6.8 to 0.6.9

In a Nutshell

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

My Steps

Notes:

  • My EFI is a git repository, cloned both to my EFI partition and my home directory. Having it duplicated to another location helps to avoid issues when you’re not finished with the update process yet, but have to shutdown your computer for some reason.
  • I update the home 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. If you don’t it’s quite easy to learn and there are visual tools like SourceTree, GitHub Desktop and others, so you don’t have to use CLI.
  • If you are afraid of git and unwilling to learn it (which I highly recommend), then you can just boot from a clone EFI from your USB drive and if it boots correctly, you copy the files into your SSD. Or vice-versa: you can copy the update to your EFI right away, but have a cloned EFI in case of emergency. In any case I recommend you to work from a duplicate directory, keeping your EFI just for the completed update. (Anything can happen and a short power loss can make it all less easy, forcing you to do unnecessary extra steps.)

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.

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: 4, 5, 8, 19, 21, 23, 34, 39 (with Lilu v0.0.94), then B to Build Selected:

    1. AirportBrcmFixup - for non-native Airport Broadcom Wi-Fi cards
    1. AppleALC
    1. BrcmPatchRAM (Acidanthera) - applies PatchRAM updates for Broadcom RAMUSB based devices
    1. HibernationFixup
    1. IntelMausi (Acidanthera)
    1. Lilu
    1. SMCProcessor
    1. SMCSuperIO
    1. VirtualSMC
    1. WhateverGreen
    AirportBrcmFixup v2.1.3
    AppleALC v1.6.2
    BrcmPatchRAM (Acidanthera) v2.6.0
    HibernationFixup v1.4.1
    IntelMausi (Acidanthera) v1.0.7
    Lilu v1.5.4
    VirtualSMC (All Tools) v1.2.5
    WhateverGreen v1.5.1

Some kexts (IntelMausi this time) aren’t newer (according to the version number stated by the tool), but I replace them all, just in case there’s some tiny updates without change of version number.

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)
  • if you use any tools in EFI/OC/Tools then update them as well.

Stays the same:

  • HFSPlus.efi

Note

  • The difference with HFSPlus.efi and OpenHfsPlus.efi is the former is directly from Apple and cannot be included in Open Core due to licensing issues (as far as I know), and the latter is the open source version. I keep the original file, since it’s stated that is works better. HFS+ is for HDD disks formatted into the respective format, APFS is for SSDs and is included in Open Core already (since version number 0.5.8, if I’m not wrong, but it’s already here for half of a year or something).

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. ocvalidate

My Differences

Values missing from User plist:

  • Kernel -> Quirks - Missing Key: ProvideCurrentCpuInfo
  • Misc -> Entries -> Array - Missing Key: Flavour
  • Misc -> Security - Missing Key: AllowToggleSip
  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 - Missing Key: ForceDisplayRotationInEFI
  • PlatformInfo -> Generic - Missing Key: AdviseFeatures
  • UEFI -> Output -> GopPassThrough - Type Difference: Boolean –> String
  • UEFI -> ProtocolOverrides - Missing Key: AppleEg2Info

Values missing from Sample:

  • DeviceProperties -> Add - Missing Key: PciRoot(0x0)/Pci(0x2,0x0)
  • DeviceProperties -> Add - Missing Key: PciRoot(0x0)/Pci(0x14,0x0)
  • PlatformInfo -> Generic - Missing Key: AdviseWindows
  • UEFI -> Output -> GopPassThrough - Type Difference: String –> Boolean

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, if you¿recomfortable to deal with plist directly, hich is xml-like format.

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 to check it with the guide to confirm it. Most of the time it’s just copying from Sample config.
  2. Something deprecated from Sample. You’d better be careful here, since the OCCC tool doesn’t know what’s needed here. Usually I ignore DeviceProperties -> Add - Missing Key, since it’s what you added back then when you created your config.

Tip:

  • It’s easier when you open two TextEdit documents side-by-side, copy differences of your config to the 1st one and differences of Sample to another. Then just remove the strings with steps you did.

ocvalidate

I use the tool ocvalidate in Utilities directory, which you may run to check your config.

You may find a public duplicate of my EFI partition in my GitHub.

And that¿s it! That simple! Don¿t be afraid of the updates, it¿s an easy and quick process. The updated Open Core works well for me.

Links