2.04 Defaults.plist und SMBios

  • Was ist die defaults.plist und das SMBios?

    Unter Ozmosis gibt es eine bestimmte Datei in der EFI, die dem User das Hinterlegen vieler Informationen und Befehle erlaubt. In dieser Datei, defaults.plist genannt, können nicht nur Boot Argumente, Grafik Einstellungen und das aktivieren/deaktivieren von Treibern, sondern auch das sogenannte SMBios und weitere Konfigurationseinstellungen vermerkt werden. Diese defaults.plist stellt eine zentrale Rolle für Hackintoshs mit Ozmosis dar und ist in etwa das, was unter Clover die config.plist beschreibt. Im folgenden Artikel werden das Erstellen des SMBios sowie die zentralen Bestandteile der defaults.plist erklärt.


    Grundsätzliches:

    Das SMBIOS definiert welcher Mac dem OS vorgegaukelt wird, mit dem SMBIOS tarnen wir also unseren Hackintosh als einen Mac. Das ganze ist jedoch mehr als nur reine Kosmetik, denn das SMBIOS hat weit mehr Aufgaben als die Anzeige unter "Über diesen Mac" zu befeuern. Vielmehr dient es dazu einen Computer eindeutig zu identifizieren und ganz nebenher beeinflusst es auch einen ganzen Haufen Dinge innerhalb von macOS, die maßgeblich dazu beitragen, ob euer Rechner gut läuft oder eben auch nicht. Das SMBIOS nimmt beispielsweise ganz erheblichen Einfluss darauf, wie das PowerManagement geregelt ist und ob euer Hackintosh bei kompatibler WLAN/Bluetooth Karte Handoff beherrscht oder nicht usw. Ausgestattet mit diesem Wissen sollte es klar sein, dass man ein SMBIOS wählt, das möglichst nahe an der verbauten Hardware liegt, sprich es macht keinen Sinn einen MacPro6.1 zu wählen weil die Tonne so schön stylisch ist, wenn in der Kiste dann am Ende ein i7 8700k steckt, und umgekehrt macht es genauso wenig Sinn stoisch immer nur iMac14,2 zu wählen, weil dies ja das kompatibelste Model sei. Die Zeiten der reinen Kosmetik sind spätestens seit Mavericks vorbei...


    Woher die Werte nehmen?

    Um an passende Werte für den Hackintosh zu kommen bietet sich am besten eine aktuelle Version des OzmosisConfigurators an, mit dem sich ebenfalls eine komplette defaults.plist erstellen lässt. Zudem liefert dessen SMBIOS Generator verlässlich brauchbare Werte. Einmal geladen klicken wir zielstrebig links auf den Punkt SMBIOS und in dem sich dann öffnenden Bereich auf den Auswahl-Button (links oben über dem Fragezeichen), & voilá schon haben wir eine Liste mit allen verfügbaren Systemdefinitionen...


    Aber hier erzähle ich Euch sicher auch nichts neues. Wählt das passende System mit Bedacht aus (Für Desktops geeignet sind am ehesten iMac und MacPro). Wer eine genauere Übersicht über die genaue Hardware der Macs braucht und wissen will welche Hardware sich hinter zB iMac 17.1 verbirgt, sollte sich das kostenlose Programm MacTracker aus dem AppStore laden und so seinen perfekten Mac Doppelgänger herausfinden.

    Einmal einen Mac im Configurator gewählt und mehrfach auf die "Generate New"-Buttons geklickt, habt Ihr fast alle Werte, die nötig sind. Dies kann dann beispielsweise so aussehen:


    Das SMBios kann unter Ozmosis auch per Terminal in den NVRam geschrieben werden. Das Problem hierbei besteht darin, dass alle Informationen nach einem NVRam Reset gelöscht werden. Es empfiehlt sich also daher alle Informationen in einer defaults.plist zu hinterlegen. Alles was in dieser Datei steht, wird von Ozmosis in den NVRam geladen (Näheres dazu später). Alle wichtigen Daten bleiben so also erhalten, auch nach Updates.


    Was brauche ich um die defaults.plist zu erstellen bzw. zu bearbeiten?

    Eine komplette defaults.plist kann mit dem OzmosisConfigurator problemlos erstellt werden. Um jedoch die Aktualität dieses Beitrags zu gewährleisten, wird im folgenden gezeigt, wie eine defaults.plist per Hand geschrieben werden kann. Die Informationen und Anweisungen können jedoch genauso mit dem OzmosisConfigurator befolgt werden.


    Neben der passenden OzmosisDefaults.plist von hier benötigt Ihr noch einen plist-Editor eurer Wahl oder das Programm TextEdit aus OS X. Als plist-Editor eignet sich entweder der in Xcode enthaltene, Apple-eigene plist Editor oder aber PlistEdit Pro welches sich als kostenloses Trial herunterladen lässt. Egal was Ihr verwendet es unterscheidet sich lediglich in der Handhabung, die eingetragenen Werte sind überall die selben. In dieser Anleitung werden wir PlistEdit Pro verwenden.


    Wenn ihr die Vorlage öffnet, seht ihr folgende Struktur:

    Ich werde nun Schritt für Schritt die wichtigsten Informationen in der defaults.plist erklären.

    Fangen wir an mit Knoten 1 (1F8E0C02-58A9-4E34-AE22-2B63745FA101):


    - AAPL,ig-platform-id: hier kann eine Platform ID für Intel HD4000/HD4400/HD4600 Grafikkarten eingetragen werden (im Hexadezimal Format)

    - AAPL,snb-platform-id: hier kann eine Platform ID für Intel HD3000 Grafikkarten eingetragen werden (im Hexadezimal Format)

    - AtiFramebuffer: hier können Besitzer einer AMD/ATI GPU, einen Framebuffer setzen

    - DisableAtiInjection: hier können Besitzer einer AMD/ATI GPU, die ATI Injection de-/aktivieren

    - DisableIntelInjection: hier können Benutzer einer Intel iGPU, die Intel Injection de-/aktivieren

    - DisableNvidiaInjection: hier können Benutzer einer Nvidia GPU, die Nvidia Treiber Injection de-/aktivieren

    - DisableVoodooHda: hier können Benutzer von VoodooHDA (im BIOS), den KEXT für die Benutzung de-/aktivieren

    - UserInterface: hier kann wer will die Ozmosis GUI aktivieren. Diese funktioniert wie eine Bootauswahl bei Systemen mit mehreren Betriebssystemen. Probiert es ruhig mal aus ;)

    - TimeOut: hier kann falls UserInterface=YES, ein TimeOut frei gewählt werden, nachdem die Ozmosis GUI verschwindet und von der ersten Boot Option im BIOS bootet

    Die restlichen Einstellungen sind entweder spezifisch, oder können einfach so beibehalten werden.


    Knoten 2 (4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102):

    Hier wird das SMBios eingestellt. Die meisten Werte stammen aus dem Clover Configurator und können einfach per Copy & Paste übertragen werden. Ich habe in die Rechte Spalte jeweils eingetragen, welcher Wert von wo/aus dem Configurator, wo hin muss. Tragt also in eure Vorlage immer den entsprechenden Wert ein, egal ob es eure Netzwerkadresse ist, oder eine Serien Nummer aus dem Configurator. Alle Abschnitte die rot markiert sind, bleiben unverändert, bzw. werden wie im Bild gesetzt.


    Für High Sierra + Nutzer:

    Um High Sierra und höher zu nutzen, müssen in der defaults.plist aktuelle Werte für FirmwareFeatures und FirmwareFeaturesMask hinterlegt sein, damit dem MacOS eine aktuelle Firmware vorgegaukelt werden kann.

    Die Werte kriegt ihr, indem ihr entweder OzmosisConfigurators, Cloud Clover Editor oder ähnliches benutzt und dort unter SMBios eure System Definition auswählt. Ist dies getan, kriegt ihr einen Hex-Wert für die FirmwareFeatures und FirmwareFeaturesMask, welcher jetzt nur noch (für das Eintragen per PlistEditor) von Hexadezimal nach Dezimal umgewandelt werden muss. Dies funktioniert zB mit diesem Online Rechner, oder der Funktion, die sich hinter dem Doppelpfeil im OzmosisConfigurator ganz unten rechts verbirgt. Einfach ermittelten Firmware-Wert reinkopieren und den Dezimal-Wert ab ins passende Feld der defaults.plist schreiben.


    Ansonsten folgt einfach dem Eintrag/Anleitung auf der rechten Seite dieses Bilds:

    PS: Die BaseBoardSerial muss auf 17 Stellen ergänzt werden. Die letzten Stellen können dabei einfach frei aus dem HEX Sortiment gewählt werden (Also nur 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) Denkt euch was aus ;)


    Knoten 3 (7C436110-AB2A-4BBB-A880-FE41995C9F82):

    Hier sind nur noch 2 Spalten zu finden:

    Unter bootargs könnt ihr, wie der Name sagt, eure Boot-Argumente eintragen, die euer Hackintosh benötigt. Um im Verbose Modus zu booten, tragt ihr hier -v ein, für den Safe Modus ein -x und für den Single User Modus ein -s. Die Bootarg-Liste kann bis ins Unendliche ergänzt werden, Boot-Argumente werden einfach durch ein Leerzeichen getrennt. Will man beispielsweise die layout-ID 1 für AppleALC injecten, setzt man das AppleALC Bootarg alcid=1 und so weiter.

    Unter csr-active-config kommt jetzt nur noch euer Wert für die SIP Konfiguration rein (Weitere Infos hier: Die System Integrity Protection (SIP)). Für die komplette Deaktivierung, muss unter PlistEdit Pro "67000000" (Datentyp: Data) eingetragen werden bzw. im TextEditor "ZwAAAA==". Wenn der Datentyp der csr-active-config "Zahl"/"Integer" lautet, entweder auf "Data" ändern oder einfach "119" als Wert eintragen. Weitere SIP Werte und Teilkonfigurationen kann euch zB. das SIPUtility aus dem Downloadcenter generieren.


    Einmal erzeugt und gespeichert müssen wir Ozmosis jetzt nur noch davon überzeugen unsere defaults.plist auch zu verwenden. Hierzu binden wir zunächst mal die EFI Partition unserer ersten Platte ein (hier sucht OZ per default nach diesen Daten). Mountet dafür einfach eure EFI Partition. Wie dies geht wurde in den vorausgehenden Artikeln beschrieben. Als letzten Schritt müssen wir nur noch unsere eben erstellte defaults.plist, mit selbigen Namen, in das passenden Verzeichnis kopieren. Öffnet ihr die eben eingebundene EFI Partition, gibt es hier einen Ordner „Efi", der 2 Unterordner enthält, einen Namens Apple und einen anderen Namens Oz...


    Die defaults.plist wird nun einfach direkt in den „Oz" Ordner eingefügt und im Anschluss der Rechner heruntergefahren. Wichtig ist hierbei, die "defaults.plist" genau zu benennen, da Ozmosis sie nur dann erkennt! Ist der Rechner heruntergefahren schalten wir Ihn wieder ein und gehen direkt ins Bios. Um die neuen Werte aus der defaults.plist nun zu übernehmen drücken wir im Bios die Tasten Win/CMD+ALT+P+R gleichzeitig, woraufhin sich der Bildschirm erst Rot, dann Gelb und letztlich Grün färbt und der Rechner neu startet.

    Voilá das wars schon, Ihr habt erfolgreich ein SMBIOS gesetzt und eine komplett auf eure Hardware angepasste defaults.plist erstellt! Ihr seit dem vollständig gepatcht und gepimpten Hackintosh jetzt einen riesen Schritt näher!

Teilen