[GUIDE] OpenCore Update Workflow mit Kext Updater und OCConfigCompare

    • Helpful

    Das Problem beim (bislang noch) manuellen Update von OpenCore ist, dass mit jeder neuen Version neue Features hinzukommen, entfernt, umbenannt und in andere Kategorien verschoben werden können. Diese Änderungen müssen in der config.plist reflketiert werden, ansonsten bekommt man nach dem Neustart nämlich solche oder ähnliche Fehlermeldungen:


    Da ich meine OpenCore Konfigurationen fortlaufend aktualisiere, habe ich im Laufe der Zeit einen simplen aber effektiven Workflow entwickelt, um OpenCore verlässlich upzudaten. Außer ein Paar Drag-and-Drop und copy/paste Handgriffe sowie ein wenig Logik benötigt man keine ausgeprägten Kenntnisse im Umgang mit Terminal.


    Anhand eines vorhandenen, etwas älteren EFI-Ordners, werde ich Schritt für Schritt zeigen, wie man vorgehen kann, um von einer älteren OpenCore Version auf die aktuellste upzudaten, ohne dass man dabei den Überblick verliert und Ende gar nichts mehr funktioniert.


    Prinzipiell kann man sagen: je weiter zwei OC Versionen auseinanderliegen, desto mehr ist zu tun und einige Dinge sind dabei zu beachten. So heißt beispielsweise der Treiber "OpenRuntime.efi" bis inkl.Version 0.5.6 noch "FwRuntimeServices". Das bedeutet, man muss beim Update diesen nicht nur entfernen und ersetzen, sondern auch einen neuen Snapshot mit ProperTree erstellen, um den neuen Treiber in die config.plist einzubinden, wenn man es nicht per Hand machen möchte.


    HINWEIS: Es ist sinnvoll, einen fertigen EFI-Ordner, den man für sein System heruntergeladen hat, erst einmal auszuprobieren, bevor man ihn updatet, um festzustellen, ob er mit dem eigenen System überhaupt funktioniert, bevor man die ganzen Aufand eventuell umsonst betrieben hat.


    DISCLAIMER: Dieser Guide ist KEINE Anleitung zum Erstellen einer lauffähigen OpenCore Boot-Konfiguration! Hier geht es lediglich um das Update einer funktionierenden OC Installation. Zum Erstellen einer OpenCore Konfiguration für das eigene System bitte dem OpenCore Guide von Dortania folgen oder hier im Forum nach der verwendeten Kombination aus Mainboard und CPU suchen.


    [TL,DR KURZFASSUNG für erfahrene User:
    - EFI mounten, Backup erstellen und auf macOS Bootstick sichern
    - OpenCore Update herunterladen (mit Kext Updater)

    - Changelog lesen- EFI Drivers runterladen (mit Kext Updater)

    - Kexts updaten (mit Kext Updater)

    - OC, Drivers, Kexts in EFI Ziel-Ordner aktualisieren

    - User config.plist mit Sample.plist vergleichen (mit OCConfig Compare)

    - Fehlende/Geänderte/Gelöschte Einträge von Sample.plist in config.plist übernehmen

    - speichern, neustarten und freuen]

    I. Benötigte Tools:

    1. Brackets

    Ein kostenloser Code Editor/Reader. Keine Angst, es wird hier nicht programmiert. Ich verwende ihn nur zum Lesen der "Changelog.md" Datei, die jedem OC Download unter "Docs" beiligt, da Brackets die Zeilen durchnummeriert und gut formatiert, sodass man direkt sehen kann, was sich seit dem letzten Build getan hat. EIn Blick in "Differences.pdf" gibt zudem Aufschluss über das Build Datum – nützlich, falls man OC Nightly Builds verwendet und wissen will, wann der Code tatsächlich zum letzten Mal aktualisiert wurde.


    Wichtige Schlüsselbegriffe, auf die man dabei achten sollte, sind: "Added", "Removed"/"Deleted" und "Renamed". Falls auf einen dieser Begriffe hellgrauer Text in einfachen Anführungszeichen folgt, bedeutet es mit hoher Wahrscheinlichkeit, dass ein EIngriff in die config.plist notwendig ist.

    Wenn man das changelog auf diese Weise liest, sieht man sofort, ob man einfach nur die neusten Dateien im EFI-Ordner ersetzen oder ob man zusätzlich noch die config.plist bearbeiten muss.

    MERKE: Sobald einer der o.g. Begriffe im Changelog auftaucht, muss man seine Config bei einem Update anpassen, um Fehlermeldungen zu vermeiden!

    2. Kext Updater
    Das wohl praktischste und wichtigste Tool zum Updaten von OpenCore/Clover, Kexts und Drivern für Hackintoshes.

    3. OCConfigCompare
    Ein Python Script für den Vergleich zweiter OC config.plists. Wenn man vorher noch keine Python-Anwendungen auf seinem Mac verwendet hat, wird Terminal den Download von Python starten und es automatisch installieren.

    4. plist Editorzum Beispiel ProperTree, PlistEditPro, PlistEditor oder Xcode… je nach Geschmack. Ich verwende eine Kombination aus PlistEditPro zum editieren der plist und ProperTree zum erstellen von Snapshots.

    II. Workflow-Beispiel 1: OpenCore Update eines heruntergeladenen EFI-Ordners

    Angenommen, ich möchte mein Lenovo T530 Notebook mit OpenCore betrieben und dazu den EFI-Ordner von Sascha77 verwenden und diesen von v 0.5.9 auf die aktuellste Version updaten. Nachdem ich zuvor sichergestellt habe, dass sein EFI-Ordner bei mir auch funktioniert, gehe ich dabei wie folgt vor, um OpenCore, Drivers Kexts und die config.plist zu aktualisieren.

    WICHTIG: In diesem Abschnitt fummeln wir nicht an der systeminternen EFI herum, sondern bereiten erstmal nur den EFI Ordner vor, den wir dann mit einem bootfähigen USB testen, um sicherzustellen, dass die Kiste damit auch bootet.

    1. Schritt: EFI-Ordner downloaden und zur besseren Übereicht in einen eigenen Ordner entpacken. Hier mal mit fast komplett ausgeklappter Ordner-Struktur:


    Da heruntergeladene EFI-Ordner oft keinerlei Versionsinformationen zu OC enthalten, ist das Änderungsdatum ein guter Indikator um beurteilen zu können, wie aktuell ein Build ist. Wenn man cool ist, schreibt man die Buildversion jedoch direkt in die Config in eine durch "#" auskommentierte Zeile:

    2. Schritt: Download notwendiger Dateien – OpenCore, EFI Treiber und Kexts mit Kextupdater.


    Wir laden mit Kext Updater zunächst folgende Dateien aus dem Menü "Bootloader" herunter:

    • OpenCore Bootloader
    • Clover > EFI Driver (ACHTUNG: OC-Kompatibiltät der Treiber prüfen)

    Auf dem Desktop wird der Ordner "Kext-Updates" angelegt, in dem sich alle Dateien befinden, die Kext Updater herunterlädt.


    Als letzten Schritt mit Kext Updater aktualisieren wir die Kexts des heruntergeladenen EFI-Ordners "EFI Sascha". Dazu klicken wir auf "Werkzeuge", wählen den in Schritt 1 heruntergelandenen EFI-Ordner aus und klcken auf "Kext Update":


    Nachdem der Download abgeschlossen is, enthält der Kext-Update Ordner nun 1) die aktuelle OpenCore Version, 2) die aktuellen EFI Driver sowie 3) alle aktuellen Kexts (jeweils in Unterordnern) für den EFI-Ordner von Sascha:


    3. Schritt: Update von OpenCore, Treibern, Kexts und Einpflegen aktualisierter Einträge in config.plist


    3.1 OpenCore Bootloader Update: Da wir jetzt alle Dateien für das Update haben, können wir beginnen. Das ist zunächst stumpfe Copy/Paste bzw. Drag-and-Drop Arbeit, die sich am einfachsten mit zwei Finder Fenstern bewältigen lässt. In einem Fenster öffnet man den EFI-Ordner der upgedatet werden soll (hier links), im zweiten öffnen man den "OpenCore" Ordner unter Desktop > Kext-Updates (rechts):



    Nun ersetzen wir zunächst per drag-and-drop bzw. copy/paste alle im linken Zielordner vorhandenen Dateien, darunter:


    - EFI > BOOT > BOOTx64.efi
    - EFI > OC > BOOTSTRAP > Bootstrap.efi (falls im Zielordner vorhanden)

    - EFI > OC > Drivers (nur bereits vorhandene .efi-Dateien ersetzen)

    - EFI > TOOLS > Tools im Unterordner ersetzen (sofern vorhanden)
    - EFI > OC > OpenCore.efi


    MERKE: Diese Dateien sind bei bei jedem Update des OpenCore Bootloaders zu ersetzen!


    3.2 Update von Drivers, die nicht Bestandteil des OpenCore packages sind

    Wie man in diesem Beispiel sieht, enthält der "Drivers" Ordner links noch einen weiteren Treiber, den der OpenCore Download rechts nicht enthält. Um diesen upzudaten, wechseln wir rechts zum "EFI Driver" Ordner, und ziehen den entsprechenden Treiber rüber und ersetzen den alten:



    HINWEIS: Da fast jedes System unterschiedlich ist, können sich dementsprechend noch weitere Treiber im Zielordner befinden. Übliche Verdächtige sind unter anderem "APFSDriverLoader", "HFSPlus" oder "VBoxHfs".


    3.3 Update von Kexts


    Als letztes ersetzen wir die Kexts im Zielordner links durch die neuen rechts. Dabei kopieren wir ausschließlich Dateien mit der Endung .kext herüber – keine Ordner!!! (siehe gif-Animation im Anhang)


    Das Update des OpenCore EFI-Ordners wäre somit abgsschlossen. Im letzten Schritt muss nun noch die config.plist upgedatet werden.


    4. Schritt: Änderungen in config.plist übernehmen


    4.1 Als erstes duplizieren wir unsere config.plist und benennen sie um in config_backup.plist o.ä. (als Fallback, falls etwas schief gehen sollte).


    4.2 Nun starten OCConfigCompare.command mit einem Doppelklick und geben "3" ein, ziehen die sample.plist aus Kext Updates > OpenCore > Docs in das Fenster und drücken "Enter":

    Im Haupmenü geben geben wir als nächstes "4" ein, drücken Enter und ziehen dann die config.plist des Zielordners (hier: "EFI Sascha") in das Fenster und bestätigen wieder mit Enter. Am Ende haben wir dann einen Eintrag unter "Current Confiug" und einen unter "Sample Config":

    Als nächstes geben wir "5" ein, um beide plists miteinander zu vergleichen. Dabei kommt in diesem Fall dann folgendes heraus. Wir konzentrieren uns dabei zunächst nur für den oberen Teil "missing values from User plist":

    Die im Abschnitt "Missing from User plist" aufgelisteten Elemente sind Einträge, die in der config.plist entweder fehlen oder mittlerweile anders heißen.


    Nun öffnen wir unsere config.plist, sowie die sample.plist und ordnen sie so an, dass wir Einträge von der Sample.plist (rechts) nach links in die config.plist ziehen können und gleichzeitig das OCConfigCompare Fenster sehen können.


    Jetzt arbeiten wir die Einträge in OCConfigCompare Zeile für Zeile ab. Man kann zwischenzeitlich speichern und in OCConfigCompare ins Hauptmenü zurückkehren und den Vergleich mit "5" nochmal neu starten, um zu sehen, ob die Liste schon kürzer wird.


    Der erste Eintrag lautet: "config.plist -> ACPI - Missing Key: Delete".


    Das sieht beim Vergleich beider plists dann so aus:



    Wir sehen: das Array "Block" unter ACPI (links) wurde im Zuge der Entwicklung in "Delete" umbenannt, Also benennen wir das Array ebenfalls in "Delete" um.


    Alles Weitere sieht man dann in diesem Screencapture:


    [External Media: https://youtu.be/y0F0Q1X-flI]


    Fortsetzung in Post #3

  • 5T33Z0

    Changed the title of the thread from “[GUIDE] OpenCore Update Workflow mit Kext Updater und OCConfigCompare (WORK IN PROGRESS)” to “[GUIDE] OpenCore Update Workflow mit Kext Updater und OCConfigCompare”.
  • 5T33Z0

    Set the Label from In Arbeit to Erledigt
  • Finde ich absolut Klasse, alle zur Verfügung stehenden Daumen nach oben :D


    Hab mich immer davor gescheut OC auf die neueste Version zu bringen. Hab 30 Minuten dafür gebraucht, auf USB zum probieren. Läuft. 0 Probleme. Danke für den Aufwand

    Gigabyte Z490 Vision G
    Intel Core i7-10700k
    Ram 32GB DDR4
    AMD RX 570

  • FORTSETZUNG:


    LÖSCHEN veralteter/nicht mehr unterstützer Einträge aus der config.plist


    Ich habe im ersten Teil des Tutorials vergessen, dass man am Ende noch die Einträge aus der Config entfernen muss, die im Zuge der Entwicklung gelöscht oder umbenannt wurden. Allerdings sind mir die Zeichen ausgegangen, deswegen mache ich hier weiter.


    Wir werfen jetzt einen Blick in den unteren Teil der Liste von OCConfigCompare in der es heißt "Missing from Sample.plist":


    Bei den anderen Einträgen nehmen wir das changelog zu Hilfe. Wir kopieren den Namen der einzelnen Keys und suchen sie im changelog (CMD+F für "Find"):


    Wir stellen fest: "ProtectCSMRegion" wurde durch "ProtectMemoryRegions" ersestzt. Jetzt müssen wir prüfen, ob "ProtectMemoryRegions" dieselben Parameter verwendet, wie "ProtectCSMResion". In diesem Fall nicht:


    Also löschen wir in diesem Beispiel "ProtectCSMRegion" und setzen "ProtectMemoryRegion" auf "YES":


    Und so hangeln wir uns durch die restlichen Einträge. Einträge unter "Device Properties" können wir ignorieren. Also zusammenfassend:


    - Begriff/Key aus OCConfigCompare kopieren

    - Begriff im Changelog mit Brackets suchen

    - herausfinden, was mit dem Feature geschehen ist (Removed? Replaced? Renamed?)

    - falls "Removed", schauen, was stattdessen verwendet wird und mit altem Eintrag vergleichen, anpassen und den alten Eintrag aus config.plist löschen

    - falls "Replaced/Renamed" prüfen, ob Einstellungen des neuen Features (YES/NO) noch zum ursprünglichen EIntrag passen und ggf anpassen.


    Dann speichern und config erneut überprüfen. Wenn es am Ende so aussieht, sind wir fertig (DeviceProperties ignorieren):


    OC EINSTELLUNGEN, die man generell setzen sollte und Einstellungen die man prüfen sollte, falls das System nicht startet:


    Misc > Security > DisableSingleUser = YES. Deaktiviert den Single User Modus, da man damit den Passwortschutz des Admin Accounts umgehen kann.

    Misc > Security > Vault = Optional Deaktiviert File Vault. Kann Systemstart verhindern, falls es auf "Secure", steht aber nicht korrekt konfiguriert ist

    Misc > Security > SecureBootModel = DISABLED. Ich hatte bisher immer Probleme damit, dass Rechner nicht booten, wenn dieses Feature auf "Default" steht. Man sieht dann nur das Apple Logo, aber es passiert nichts weiter. Deswegen deaktivieren, falls es Probleme beim Booten gibt und sicherstellen, dass Vault auf "Optional" steht.

    5. Schritt: EFI Ordner auf USB Bootstick kopieren und Boot testen

    - macOS USB Stick Installationsstick anschließen (alternativ geht auch ein FAT32 formatierten USB Stick mit EFI Ordner)

    - EFI Partion des USB Sticks mounten (bspw. mit MountEFI)

    - EFI Ordner auf EFI-Partition kopieren (die anderen Ordner im Root-Verzeichnis ignorieren):

    - neustarten

    - BIOS Bootmenü aufrufen (oft F12)

    - USB-Stick auswählen

    - Festplatte mit macOS Installation zum Boot auswählen und starten.

    - Wenn der Bootvorgang klappt: Herzlichen Glückwunsch!


    Falls der Bootvorgang fehlschlägt: neustarten von der Festplatte und Backup der originalen config.plist mit der upgedateteten config.plist vergleichen und prüfen, ob und welche Einstellungen abweichen. Dazu kann man OCListMerge verwenden, da es alle Einträge zweier configs miteinder vergleicht und man so sehr schnell sehen kann, welche EInträge abweichen. Diese anpassen, config speichern, auf den USB Stick kopieren und den Boot vom Stick erneut testen. Vorgang wiederholen, bis bis alles funktioniert.


    VIEL ERFOLG!


    Unterschiede sample.plist zwischen einzelnen OC Releases, siehe Post 11

  • Da hat sich jemand 5T33Z0 aber richtig Arbeit gemacht und Mühe gegeben! Sehr gut! :top:

  • 5T33Z0

    Ich finde das auch richtig Klasse von dir, echt Respekt wie detailliert du diese Sachen beschrieben hast.😎

    Hast mein Leben ungemein erleichtert, hast dich ja richtig reingehängt, einfach nur wooow...


    Toll das es so nette Menschen hier im Forum gibt.

    Werde das die Tage auch Mal durchgehen, und danach berichten.


    :danke2:

  • NEWS:


    Hab gerade ein Update auf Build 0.6.2 vom 03.10.2020 durchgeführt und mich gewundert, warum ich einne "No Schema Found" Fehlermeldung für DummyPowerManagement für Kernel > Quirks bekomme.


    Ursache: der Eintrag DummyPowerManagement wurde von Kernel > Quirks in die Kategorie Kernel > Emulate verschoben.

    Wird in OCConfigCompare auch unter "Missing from Sample.plist" aufgelistet. Also diesen Eintrag aus Kernel > Quirks nach Kernel > Emulate verschieben.


    Habe mir auch OCListMerge als mögliche Alternative zum Updaten von OpenCore angesehen. Es ist mir allerdings zu risky für updates, weil es bereits geänderte Settings wieder auf default zurückstellen kann, wenn man nicht aufpasst. Zudem sieht man damit auch nicht so fix, welche Einträge neu und geändert sind. Zum Vergleich der Eintäge zweier config Listen und ihren Einstellungen halte ich es allerdngs für sehr nützlich bei der Fehlersuche. Muss am Ende jeder für sich selbst entscheiden, was er benutzen möchte.

  • Und an dieser "News" sieht man mal wieder wieso OpenCore external Tools derzeit noch unsinnig sind.

    die Entwickler kommen nicht hinterher mit dem was Opencore ändert mit jedem Release und dann wundern sich viele wieso dann Fehler kommen.


    KEIN SUPPORT PER PN!

    julian.png

  • julian91 Wohl wahr. Aber es ist gut, dass sie zumindet parallel daran entwickeln. Denn wenn es bei nem Releasezyklus von 0.0.1 Schritten bei OpenCore pro Monat bliebe, dauert es noch 38 Monate, bis Verision 1.0 erscheint.

  • 5T33Z0


    Hast du das schon mit dem Tool von Brumbaer abgeglichen

    OCListMerge - Config.plist vergleichen und mischen.

  • 5T33Z0

    Tipp: USB-Bootstick einfach als „MS-DOS (FAT)“ formatieren (MBR, Master Boot Record). Wahrscheinlich liegt der - nicht weiter behandelt - eh so vor. Einfach EFI-Ordner rein kopieren, fertig.


    Vorteil: man muss nix extra mounten. Das Ganze funktioniert so trotzdem, weil letztendlich die versteckte EFI-Partition eh so vorliegt innerhalb der GPT.

    ASUS PRIME X299-DELUXE i9-7900X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64

    ASUS WS X299 SAGE/10G  i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • DeckLink 4K Extreme 12G

  • UPDATE::: Sample.plist differences/changes between OC Releases


    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.6.2 to 0.6.3 (Work in Progress)

    #######################################################


    Checking for values missing from User plist:


    config.plist -> PlatformInfo - Missing Key: CustomMemory


    >> Action: Copy above entries from sample.plist to user config.plist when updating from v 0.6.2 to 0.6.3



    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.6.1 to 0.6.2

    #######################################################


    Checking for values missing from User plist:


    Sample.plist -> Kernel -> Emulate - Missing Key: DummyPowerManagement

    Sample.plist -> Kernel -> Emulate - Missing Key: MaxKernel

    Sample.plist -> Kernel -> Emulate - Missing Key: MinKernel

    Sample.plist -> Kernel -> Quirks - Missing Key: ExtendBTFeatureFlags

    Sample.plist -> Kernel -> Quirks - Missing Key: LegacyCommpage
    Sample.plist -> PlatformInfo -> Generic - Missing Key: SystemMemoryStatus

    Sample.plist -> PlatformInfo -> Generic - Missing Key: ProcessorType

    Sample.plist -> UEFI -> ReservedMemory -> Array - Missing Key: Type


    >> Action: Copy above entries from sample.plist to user config.plist when updating from v 0.6.1 to 0.6.2


    Checking for values missing from Sample:


    Sample.plist -> Kernel -> Quirks - Missing Key: DummyPowerManagement


    >> Move entry from Kernel > Quirks to Kernel > Emulate.



    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.6.0 to 0.6.1

    #######################################################


    Checking for values missing from User plist:


    Sample.plist -> Kernel - Missing Key: Force

    Sample.plist -> Kernel - Missing Key: Scheme

    Sample.plist -> Kernel -> Add -> Array - Missing Key: Arch

    Sample.plist -> Kernel -> Block -> Array - Missing Key: Arch

    Sample.plist -> Kernel -> Patch -> Array - Missing Key: Arch

    Sample.plist -> Kernel -> Quirks - Missing Key: DisableLinkeditJettison

    Sample.plist -> Misc -> Security - Missing Key: ApECID

    Sample.plist -> Misc -> Security - Missing Key: DmgLoading

    Sample.plist -> Misc -> Security - Missing Key: EnablePassword

    Sample.plist -> Misc -> Security - Missing Key: PasswordHash

    Sample.plist -> Misc -> Security - Missing Key: PasswordSalt

    Sample.plist -> Misc -> Security - Missing Key: SecureBootModel

    Sample.plist -> UEFI -> ProtocolOverrides - Missing Key: AppleImg4Verification

    Sample.plist -> UEFI -> ProtocolOverrides - Missing Key: AppleSecureBoot


    >> Action: Copy above entries from sample.plist to user config.plist when updating from v 0.6.0 to 0.6.1



    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.5.9 to 0.6.0

    #######################################################


    Checking for values missing from User plist:


    Sample.plist -> Booter -> Quirks - Missing Key: ProvideMaxSlide

    Sample.plist -> Misc -> Debug - Missing Key: SerialInit

    Sample.plist -> NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 - Missing Key: run-efi-updater

    Sample.plist -> UEFI -> APFS - Missing Key: GlobalConnect

    Sample.plist -> UEFI -> Output - Missing Key: UgaPassThrough

    Sample.plist -> UEFI -> ProtocolOverrides - Missing Key: AppleFramebufferInfo


    >> Action: Copy above entries from sample.plist to user config.plist when updating from 0.5.9 to 0.6.0


    Checking for values missing from Sample:


    Sample.plist -> Misc -> Security - Missing Key: BlacklistAppleUpdate (replaced by "run-efi-updater")


    >> Delete entry from user config



    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.5.8 to 0.5.9

    #######################################################


    Checking for values missing from User plist:


    Sample.plist -> ACPI - Missing Key: Delete

    Sample.plist -> DeviceProperties - Missing Key: Delete

    Sample.plist -> NVRAM - Missing Key: Delete


    >> Action: Rename from "Block" to "Delete" in User Config


    Sample.plist -> Misc -> Debug - Missing Key: ApplePanic

    Sample.plist -> Misc -> Debug - Missing Key: SysReport

    Sample.plist -> Misc -> Security - Missing Key: BlacklistAppleUpdate

    Sample.plist -> UEFI -> Quirks - Missing Key: DeduplicateBootOrder

    Sample.plist -> UEFI -> Quirks - Missing Key: TscSyncTimeout


    >> Action: Copy above entries from sample.plist to user config.plist when updating from 0.5.8 to 0.5.9


    Checking for values missing from Sample:


    Sample.plist -> Misc -> Boot - Missing Key: HideSelf

    Sample.plist -> UEFI -> Output - Missing Key: DirectGopCacheMode

    Sample.plist -> UEFI -> Quirks - Missing Key: RequestBootVarFallback


    >> Action: Delete from User Config



    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.5.7 to 0.5.8

    #######################################################


    Checking for values missing from User plist:


    Sample.plist -> Kernel -> Quirks - Missing Key: DisableRtcChecksum

    Sample.plist -> Misc -> Security - Missing Key: BootProtect

    Sample.plist -> NVRAM -> Add - Missing Key: 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102

    Sample.plist -> NVRAM -> Block - Missing Key: 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102

    Sample.plist -> UEFI - Missing Key: APFS

    Sample.plist -> UEFI - Missing Key: ProtocolOverrides

    Sample.plist -> UEFI - Missing Key: ReservedMemory


    >> Action: Copy above entries from sample.plist to user config.plist when updating from v 0.5.7 to 0.5.8


    Checking for values missing from Sample:

    Sample.plist -> UEFI - Missing Key: Protocols (replaced by "ProtocolOverrides")


    >> Action: Delete from User Config


    #######################################################

    # OC Config Compare #

    Sample.plist Changes from OC 0.5.6 to 0.5.7

    #######################################################


    Checking for values missing from User plist:


    Sample.plist -> Booter -> Quirks - Missing Key: ProtectMemoryRegions

    Sample.plist -> Booter -> Quirks - Missing Key: ProtectUefiServices

    Sample.plist -> Booter -> Quirks - Missing Key: RebuildAppleMemoryMap

    Sample.plist -> Booter -> Quirks - Missing Key: SyncRuntimePermissions

    Sample.plist -> Misc -> Boot - Missing Key: ConsoleAttributes

    Sample.plist -> Misc -> Debug - Missing Key: AppleDebug

    Sample.plist -> UEFI -> Input - Missing Key: KeyFiltering

    Sample.plist -> UEFI -> Output - Missing Key: DirectGopCacheMode

    Sample.plist -> UEFI -> Protocols - Missing Key: AppleDebugLog


    >> Action: Copy above entries from sample.plist to user config.plist when updating from v 0.5.6 to 0.5.7


    Checking for values missing from Sample:


    Sample.plist -> Booter -> Quirks - Missing Key: ProtectCsmRegion (replaced by "ProtectMemoryRegions")

    Sample.plist -> Booter -> Quirks - Missing Key: ShrinkMemoryMap (eplaced by "RebuildAppleMemoryMap)

    Sample.plist -> NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 - Missing Key: nvda_drv


    >> Action: Delete from User Config


    IMPORTANT: Since version 0.5.7 "FwRuntimeServices.efi" has been renamed to "OpenRuntime.efi". So replace "FwRuntimeServices.efi" by "OpenRuntime.efi" in OC > Drivers and update the plist to reflect the changes.