macOS 11 BigSur Dev-Beta Clover Patch

  • Normalerweise bin ich hier ja nicht bekannt dafür mit Clover unterwegs zu sein. Trotzdem hier mal was für die Clover Gemeinde.


    Ich habe in der Vergangenheit schon das ein oder andere mal KernelPatches verfasst, meistens im Bezug auf Ozmosis. Da ich mir mit dem Release von Big Sur wieder KextInjection Patches nach Clover/Ozmosis- (allgemein KernelBooterExtension-) Methode rausgeschrieben habe, dachte ich mir implementier ich sie doch einfach mal in Clover und schau ob Clover mit Big Sur umgehen kann. Ich habe ein paar Tests zusammen mit CMMChris unternommen und nach ein paar Versuchen war es möglich seine bestehende Installation von Big Sur zu booten.

    Daraufhin habe ich mich daran versucht die nötigen Mechanismen in Clover einzubauen. Leider habe ich es bis zum jetzigen Zeitpunkt nicht schaffen können die internen Mechanismen, die mit Big Sur kaputt gegangen sind, wieder zum Leben zu erwecken. Da ich mich nie wirklich mit Clover, insbesondere Clover Source Code beschäftigt habe und letzterer leider mehr als unstrukturiert ist, fehlt mir hier der Durchblick um eine saubere und dauerhafte Lösung in Clover zu implementieren. Ich denke hier ist die Arbeit von langjährigen Clover Devs gefragt, die ihren eigenen Code kennen. Trotzdem will ich die Zwischenergebnisse hier mal veröffentlichen, damit andere darauf aufbauen können und jeder der will ein bisschen rumtesten kann.


    Technischer Hintergrund:

    Die Clover Version im Anhang setzt beim Boot von macOS Big Sur automatisch die NVRam Variablen booter-fileset-kernel und booter-fileset-basesystem, sodass beim Boot einer bestehenden Installation von Big Sur automatisch der prelinked kernel forciert wird. Der Boot eines Installers ist so nicht möglich, da kein passender prelinkedkernel existiert und auf diese Weise geladen werden kann. Selbst bei forciertem prelinkedkernel versagen leider Clovers interne KernelBooterExtension Patches, laut meinen Tests wird die Prozedur nicht gestartet da OnExitBootServices in den Tests wohl nicht eintritt. Beim forcieren des KernelPatchers ohne Event wird der Kernel nicht gefunden. Was hingegen schon funktioniert sind User KernelPatches. Deswegen stelle ich die nötigen KernelBooterExtension-Patches für Big Sur als KernelToPatch Einträge bereit. Die Patches könnten bei Bedarf noch symbolbasiert implementiert werden. In der angehängten Clover Version sind die eigentlichen internen Patchingmechanismen für den Boot von Big Sur (10.16) deaktiviert um Dopplungen zu meiden.

    Alle Patches suchen nach dem Anfang des entsprechenden Procedures und danach nach der passenden Patching Location. Ebenfalls sind alle Patches mit einfachen Wildcards implementiert.

    KbeBS-EXT sucht nach readStartupExtensions (010031FFBE140005), der Patch lautet:

    E8 ?? 00 00 00 EB 05 E8 -->

    E8 ?? 00 00 00 90 90 E8.

    KbeBS-SIP sucht nach loadExecutable (02000041BF010000DC), der Patch lautet:

    E8 ?? ?? ?? 00 85 C0 0F 84 ?? 00 00 00 49 8B 45 -->

    E8 ?? ?? ?? 00 85 C0 90 90 90 90 90 90 49 8B 45.

    KbeBS-KxldUnmap sucht nach removeKextBootstrap (488D152B262500), der Patch lautet:

    FF 80 3D ?? ?? ?? 00 00 0F 85 ?? 01 00 00 41 -->

    FF 80 3D ?? ?? ?? 00 00 90 E9 ?? 01 00 00 41.


    Veränderungen und Plist für macOS Big Sur BETA 3+: KernelToPatch Einträge BETA 3

    Des Weiteren ist die Nutzung von OCQuirks zwingende Voraussetzung zum Boot von Big Sur, da jegliche alte AptioFix Varianten nicht kompatibel sind. In dem neuesten OCQuirks Release sind Änderungen zu AvoidRuntimeDefrag enthalten, ohne die der Boot von macOS Big Sur 10.16/11 nicht möglich ist.


    Benutzung:

    • CLOVERX64.efi (r5119 Mod) auf der EFI durch den Anhang ersetzen
    • Folgende KernelToPatch Einträge in die config.plist einfügen: (Wer nicht weiß wie das geht ist fehl am Platz – sorry)
    • Jegliche benutzten OsxAptioFix.efi oder AptioMemoryFix.efi UEFI Treiber durch den neuesten OCQuirks Release ersetzen und OCQuirks.efi, OpenRuntime.efi und OcQuirks.plist nach /Clover/drivers/UEFI legen.
    • Acidanthera Kexts durch neu kompilierte Versionen ersetzen, oder lilubetaall benutzen.


    Es können ausschließlich vorhandene Installationen von Big Sur gebootet werden. Die Installation von Big Sur per Installer ist nicht möglich.


    Viel Spaß beim Testen und ansonsten mal Abwarten wann etwas von den Clover Entwicklern kommt.

    Dateien

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

    7 Mal editiert, zuletzt von kuckkuck ()

  • Ist es damit auch möglich Catalina 10.15.5 zu booten ?

    Ich bin ja neu und möchte dies erst mal mit Catalina testen und später mit Big Sur.

  • Wieso sollte es nicht möglich sein?!

  • Ja ihr könnte auch das alte System damit problemlos booten. Weitere Änderungen an der Konfiguration sollten i.d.R. auch nicht nötig sein. Bei mir läuft die Catalina Config zumindest 1A mit Big Sur.


    Vergesst nicht OcQuirks in der aktuellen Version zu nutzen sonst startet Big Sur nicht. kuckkuck Solltest du noch im ersten Post einfügen.

    LG Chris


    Meine Hardware:

  • manfredm1970 Die bereitgestellte Clover Version basiert auf r5119 und kann alles was das ganz normale Clover kann. Zusätzlich wird für den Boot von Big Sur der prelinked kernel forciert, der interne KernelPatcher deaktiviert und die nötigen, bereitgestellten KernelPatches durch den User selbst durchgeführt (siehe KernelToPatch Einträge oben), damit die KextInjection möglich ist.


    Wenn du später erst Big Sur testen willst, gibt es vielleicht bereits ein neues Release der Clover Devs. Allgemein zukunftssicherer ist die Nutzung von OC, dort wird bereits an der Implementierung von KernelCollections Support gearbeitet.


    CMMChris Danke für den Hinweis!

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Ja, mit Clover. Aber der Installer funktioniert nicht.

  • Ja. Z.b. Mit einem Mac, oder vm installieren :)

  • Es ist im Prinzip das gleiche wie mit OpenCore aktuell. Wenn der prelinkedkernel lädt (was die Clover Version oben macht) können Kexts injected werden. Im Installer lädt der prelinkedkernel nicht, deswegen funktionieren die Installer nicht.


    Es gibt inzwischen so einige Anleitungen wie man macOS Big Sur beispielsweise mit einer VM auf der Platte installiert und dann mit OC bootet. Das ist jetzt auch mit Clover möglich. Mehr auch erstmal nicht, also nichts wirklich neues bis auf den Bootloader.

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Danke Euch für die tolle Arbeit.


    Könntet ihr bitte auch den LINK mit den Einstellungen für Open Core auch nochmal teilen.


    Damit ich es auf Clover Testen kann, muss ich es Mithilfe Open Core mal am MacPro 5,1 mit

    IMACPRO BIOS installieren.



    Danke nochmal

  • Vielen Dank für die Mühen. Ich habe jedoch das Problem, dass ich trotz der ocquirks, ohne AptioMemoryFix.efi nicht booten kann. Standard

    [EB|#LOG:EXITBS:START Fehlermeldung.

    Meine Hardware


    DELL Optiplex 3040 SFF | i5 - 6500t | Intel HD 530 | Nvidia GT710 2GB | 16 GB DDR3 Ram | BCM94360NG | 256 GB SSD | macOS Monterey 12.0 Beta (21A5304g) | OC 0.7.2 | iMac17,1


    Macbook AIR 2020 M1 512GB

  • Läuft denn Catalina mit dem OCquirks?

    Ist es ein neuer OCquirks?

  • Es ist die verlinkte ocquirks V23, 5 Tage alt.

    Meine Hardware


    DELL Optiplex 3040 SFF | i5 - 6500t | Intel HD 530 | Nvidia GT710 2GB | 16 GB DDR3 Ram | BCM94360NG | 256 GB SSD | macOS Monterey 12.0 Beta (21A5304g) | OC 0.7.2 | iMac17,1


    Macbook AIR 2020 M1 512GB

  • Und kannst du ein anderes macos damit booten?

    Die Version läuft bei mir...

  • kann man den AptioMemoryFix.efi ggf. einfach drin lassen, oder gibt das einen Konflikt?

    Meine Hardware


    DELL Optiplex 3040 SFF | i5 - 6500t | Intel HD 530 | Nvidia GT710 2GB | 16 GB DDR3 Ram | BCM94360NG | 256 GB SSD | macOS Monterey 12.0 Beta (21A5304g) | OC 0.7.2 | iMac17,1


    Macbook AIR 2020 M1 512GB