- Joined
- Jul 11, 2012
- Messages
- 637
- Motherboard
- Gigabyte GA Z68XP-UD3
- CPU
- i7 3770
- Graphics
- GT 210
- Mac
- Mobile Phone
@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 (IMHO ).
1) Follow the guide! https://dortania.github.io/OpenCore-Post-Install/universal/update.html#updating-opencore-and-macos
=> replace the essential files:
- EFI/BOOT/BOOTx64.efi
- EFI/OC/OpenCore.efi
- EFI/OC/Drivers/OpenRuntime
(plus the drivers and tools that you use such as EFI/OC/Tools/OpenShell.efi)
=> copy Docs/Sample.plist in your EFI and open it with ProperTree then perform an "OC Clean Snapshot" and save.
2) 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... But it's a good time to check if they're really needed or have become obsolete.
I find PlistEdit Pro to be very convenient for moving new keys from Sample.plist to your Config.plist.
Once saved, run OCConfigCompare again to check you're done (you can safely ignore all the "Skipped" items, if any).
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. (of course, if you only use ProperTree, you don't need this)
Thanks to @miliuco
EDIT 04/2022: 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 former versions of OCConfigCompare displayed syntax errors that weren't shown in the first version I had, now it's been fixed and it only displays real issues.
- 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).
1) Follow the guide! https://dortania.github.io/OpenCore-Post-Install/universal/update.html#updating-opencore-and-macos
=> replace the essential files:
- EFI/BOOT/BOOTx64.efi
- EFI/OC/OpenCore.efi
- EFI/OC/Drivers/OpenRuntime
(plus the drivers and tools that you use such as EFI/OC/Tools/OpenShell.efi)
=> copy Docs/Sample.plist in your EFI and open it with ProperTree then perform an "OC Clean Snapshot" and save.
2) 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... But it's a good time to check if they're really needed or have become obsolete.
I find PlistEdit Pro to be very convenient for moving new keys from Sample.plist to your Config.plist.
Once saved, run OCConfigCompare again to check you're done (you can safely ignore all the "Skipped" items, if any).
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. (of course, if you only use ProperTree, you don't need this)
Thanks to @miliuco
EDIT 04/2022: 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 former versions of OCConfigCompare displayed syntax errors that weren't shown in the first version I had, now it's been fixed and it only displays real issues.
- 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: