Skip to content

OC integration

Sergey edited this page Apr 21, 2022 · 22 revisions

OC integration

Rev 5119 commit 620401d

Included OcQuirks and OpenRuntime into Clover repository.

The drivers will be built at Clover compilation.

commit 60901993b

OcQuirks driver and plist now excluded. Now Quirks included into config.plist as separate section

Moreover, they are improved and included in the package.

Quirks: ⇩

## Config.plist Quirks structure

<key>Quirks</key>
        <dict>
            <key>AvoidRuntimeDefrag</key>
            <true/>
            <key>DevirtualiseMmio</key>
            <false/>
            <key>DisableSingleUser</key>
            <false/>
            <key>DisableVariableWrite</key>
            <false/>
            <key>DiscardHibernateMap</key>
            <false/>
            <key>EnableSafeModeSlide</key>
            <true/>
            <key>EnableWriteUnprotector</key>
            <true/>
            <key>ForceExitBootServices</key>
            <false/>
            <key>ForceOcWriteFlash</key>
            <false/>
            <key>MmioWhitelist</key>
            <array>
                <dict>
                    <key>Address</key>
                    <integer>4275159040</integer>
                    <key>Comment</key>
                    <string>Haswell: SB_RCBA is a 0x4 page memory region, containing SPI_BASE at 0x3800 (SPI_BASE_ADDRESS)</string>
                    <key>Enabled</key>
                    <false/>
                </dict>
                <dict>
                    <key>Address</key>
                    <integer>4278190080</integer>
                    <key>Comment</key>
                    <string>Generic: PCI root is a 0x1000 page memory region used by some firmwares</string>
                    <key>Enabled</key>
                    <false/>
                </dict>
            </array>
            <key>ProtectMemoryRegions</key>
            <false/>
            <key>ProtectSecureBoot</key>
            <false/>
            <key>ProtectUefiServices</key>
            <false/>
            <key>ProvideCustomSlide</key>
            <false/>
            <key>ProvideMaxSlide</key>
            <integer>0</integer>
            <key>RebuildAppleMemoryMap</key>
            <false/>
            <key>ResizeAppleGpuBars</key>
            <integer>-1</integer>
            <key>SetupVirtualMap</key>
            <true/>
            <key>SignalAppleOS</key>
            <false/>
            <key>SyncRuntimePermissions</key>
            <true/>
            <key>FuzzyMatch</key>
            <true/>
            <key>KernelCache</key>
            <string>Auto</string>
            <key>AppleXcpmExtraMsrs</key>
            <false/>
            <key>AppleXcpmForceBoost</key>
            <false/>
            <key>DisableIoMapper</key>
            <true/>
            <key>DisableLinkeditJettison</key>
            <true/>
            <key>DummyPowerManagement</key>
            <false/>
            <key>ExtendBTFeatureFlags</key>
            <false/>
            <key>ExternalDiskIcons</key>
            <false/>
            <key>IncreasePciBarSize</key>
            <false/>
            <key>PowerTimeoutKernelPanic</key>
            <false/>
            <key>ThirdPartyDrives</key>
            <false/>
            <key>XhciPortLimit</key>
            <false/>
            <key>ProvideCurrentCpuInfo</key>
            <false/>
        </dict>

OpenRuntime: ⇩

Booting macOS 11 and macOS 12 OpenRuntime.efi is need.

Screen Shot 2022-04-20 at 4 39 08 PM

Rev 5142+ Using new OpenRuntime.efi.

There is incompatibility with older version. Clover before 5142 requires OpenRuntime.efi version 1.1 while 5142+ requires version 1.2.

What to do if you sometime want to reboot with older version?

Screenshot2022-02

Slice made special folder drivers/5142 where I placed OpenRuntime-v12.efi. And common folder drivers/UEFI contains OpenRuntime-v11.efi.

How it works ⤵︎

Old Clover not see the folder 5142 and uses common folder drivers/UEFI and read here openRuntime-v11.efi.

New Clover see the folder drivers/5142 and read here new OpenRuntime-v12.efi which is in priority in the version.

That's all!

OpenCorePkg: ⇩

OpenCorePkg repos used by Clover ☞ OpenCorePkg is used by Clover

OpenCorePkg is not same as original. Based on OpenCore 0.7.5 it is improved up to latest version. Clover uses some part of the package delegating kext injecting and patching abilities to OC libraries. Big respect to vit9696 for these libraries. Clover keeps own syntax for kernel and kext patching and converted them to OC syntax Conversion rulez but the method for binary patching in the OC library is replaced by Clover's method because it has more possibilities.

Some new quirks implemented in new OC versions have no analogs in the Clover's config.plist because they are very specific for rare hardware. If you really need them then search how to do the same by common kext patching. Usually the new quirk is just a shortcut to one kernel or kext patch.


Clone this wiki locally