Contribute
Register

A guide to update OpenCore 0.x.y to 0.x.y+1

Joined
Jul 11, 2012
Messages
431
Motherboard
GA Z68XP-UD3
CPU
i7 3770
Graphics
GT 210
Mac
  1. iMac
  2. Mac mini
Mobile Phone
  1. Android
@miliuco does a great job at pointing out the differences between one version and the next (search for his "Opencore 0.x.y > 0.x.y+1 differences" threads), but I often see the same questions coming back regularly on his threads and other ones, so here's an overview of the best way to update smoothly.

1) Follow the guide! https://dortania.github.io/OpenCore-Post-Install/universal/update.html#updating-opencore-and-macos ;)

2) Once you replaced the needed files (EFI/BOOT/BOOTx64.efi, EFI/OC/OpenCore.efi and EFI/OC/Drivers/OpenRuntime) — plus the drivers and tools that you use — run OCConfigCompare to see what needs to be deleted/added in your config.plist.
- double-click OCConfigCompare.command, it opens Terminal
- hit 3 "Select Local Sample.plist" then drag and drop the Sample.plist from /Docs/Sample.plist from the new OpenCore download
- hit 4 "Select Local User Config.plist" then drag and drop your old config.plist
- hit 7 "Compare": this will display the differences, now it's up to you to use whatever editor to add new keys, etc. Note that you certainly have additional keys specific to your build in your config.plist, so of course don't delete them... :mrgreen: But it's a good time to check if they're really needed or have become obsolete.

3) Run /Utilities/ocvalidate/ocvalidate, it might reveal syntax issues that may or may not be fundamental, but as the last step of upgrading, it's indeed a very healthy procedure.
- open a new Terminal window
- drag ocvalidate onto it then drag your config.plist and hit Enter.
- correct any displayed issue.

If your config.plist passes both tests, you're good to go. ;)

• Note that OCConfigCompare.command is also a good way to check what you've changed between an old config.plist of yours and a new one, just select your old one instead of the Sample.plist file.
• I find that BBEdit does a great job at comparing two config.plist with its "Compare Two Front Windows" command, allowing you to restore a changed key, etc. but be aware that if you've used PlistEdit Pro, for example, it changes line breaks compared to ProperTree, and BBEdit will find many differences that are not "real" differences. So my little trick here is to first open both files in PlistEdit Pro, toggle any Boolean value then toggle it again to its original value, save the file: in that way both files will have the same structure. :headbang: (of course, if you only use ProperTree, you don't need this)

Thanks to @miliuco :thumbup:

EDIT 07/2021: I've noticed that useful utilities such as OCConfigCompare and ProperTree are getting updates from time to time, even if they don't have a build number.
For example,
- the current version of OCConfigCompare displays syntax errors that weren't shown in the former version I had.
- ProperTree's "OC Clean Snapshot" now warns you if it detects inconsistencies in your kexts (duplicate CFBundleIdentifiers, in my case — because I have different versions of AppleALC.kext and RealtekRTL8111.kext in subfolders).
 
Last edited:
Joined
Jul 20, 2013
Messages
225
Motherboard
GA-Z77X-UP5 TH - Opencore
CPU
I7-3770K OC 4.5
Graphics
R9 280
Mac
  1. Mac mini
Mobile Phone
  1. Android
  2. iOS
Could someone expand on what the most consistent methods of updating your config.plist would be.

I have in the past used Xcode and opened both the new sample.plist and config.plist and dragged and dropped new entries from “sample” to “config”. Then gone and deleted entries in config.plist If required based on OC Compare.

This method seems to have worked so far but 0.6.8 to 0.6.9 seems to be full of Base and Baseskip errors?
 
Joined
Feb 23, 2020
Messages
126
Motherboard
Dell Precision M4700
CPU
i7-3740QM
Graphics
M4000
An additional great resource is to read the "Differences.pdf" which comes with every OC release. It highlights changes in how OC functions and it's config.plist from the previous release. I find it's generally not enough to just compare two config.plists.


Could someone expand on what the most consistent methods of updating your config.plist would be.

I have in the past used Xcode and opened both the new sample.plist and config.plist and dragged and dropped new entries from “sample” to “config”. Then gone and deleted entries in config.plist If required based on OC Compare.

This method seems to have worked so far but 0.6.8 to 0.6.9 seems to be full of Base and Baseskip errors?
Base/Baseskip were added to ACPI->Patches to allow greater control over ACPI patches - refer to the configuration.pdf for more info.
 
Joined
Jul 11, 2012
Messages
431
Motherboard
GA Z68XP-UD3
CPU
i7 3770
Graphics
GT 210
Mac
  1. iMac
  2. Mac mini
Mobile Phone
  1. Android
Could someone expand on what the most consistent methods of updating your config.plist would be.

I have in the past used Xcode and opened both the new sample.plist and config.plist and dragged and dropped new entries from “sample” to “config”. Then gone and deleted entries in config.plist If required based on OC Compare.

This method seems to have worked so far but 0.6.8 to 0.6.9 seems to be full of Base and Baseskip errors?
I've used the same method as you for Base/Baseskip, then no more errors.
 
Joined
Dec 10, 2010
Messages
699
Motherboard
Gigabyte Z390 Aorus Elite
CPU
i9-9900K
Graphics
RX 580
Mobile Phone
  1. iOS
Could someone expand on what the most consistent methods of updating your config.plist would be.

I have in the past used Xcode and opened both the new sample.plist and config.plist and dragged and dropped new entries from “sample” to “config”. Then gone and deleted entries in config.plist If required based on OC Compare.

This method seems to have worked so far but 0.6.8 to 0.6.9 seems to be full of Base and Baseskip errors?
I don't use Xcode for this task, I prefer a plist editor as corpnewt's ProperTree or PlisEdit Pro from Fatcatsoftware. If you check both config.plist (old and new) side by side, line by line, you will see the differences between the 2 files. Regarding Base and BaseSkip errors, review ACPI> Patch, existing patches here must have these 2 new keys, Base as string and BaseSkip as Number.

base.png
 
Joined
Dec 10, 2010
Messages
699
Motherboard
Gigabyte Z390 Aorus Elite
CPU
i9-9900K
Graphics
RX 580
Mobile Phone
  1. iOS
An additional great resource is to read the "Differences.pdf" which comes with every OC release. It highlights changes in how OC functions and it's config.plist from the previous release. I find it's generally not enough to just compare two config.plists...
Yes, Differences.pdf is very useful, here you can know the changes that are in the new version. OCConfigCompare.command to see diffs between sample and config and ocvalidate as final task to check config.plist.
 
Joined
Jul 20, 2013
Messages
225
Motherboard
GA-Z77X-UP5 TH - Opencore
CPU
I7-3770K OC 4.5
Graphics
R9 280
Mac
  1. Mac mini
Mobile Phone
  1. Android
  2. iOS
I don't use Xcode for this task, I prefer a plist editor as corpnewt's ProperTree or PlisEdit Pro from Fatcatsoftware. If you check both config.plist (old and new) side by side, line by line, you will see the differences between the 2 files. Regarding Base and BaseSkip errors, review ACPI> Patch, existing patches here must have these 2 new keys, Base as string and BaseSkip as Number.

View attachment 518647
@miliuco thank you for your reply.

I do use Propertree for the majority of the editing. I just use Xcode to drag “new to old”.

I obviously need to have another attempt to get it right.
 
Joined
Dec 10, 2010
Messages
699
Motherboard
Gigabyte Z390 Aorus Elite
CPU
i9-9900K
Graphics
RX 580
Mobile Phone
  1. iOS
@miliuco thank you for your reply.

I do use Propertree for the majority of the editing. I just use Xcode to drag “new to old”.

I obviously need to have another attempt to get it right.
Do it as in the image I attached, add Base and BaseSkip into every Patch you have in ACPI> Patch.
 
Top