Coder Social home page Coder Social logo

polipo-dev / ocquirks Goto Github PK

View Code? Open in Web Editor NEW

This project forked from reddestdream/ocquirks

0.0 0.0 0.0 18 KB

A work-in-progress attempt to port OpenCore's boot quirks to Clover in order to replace AptioMemoryFix.

License: BSD 3-Clause "New" or "Revised" License

C 8.92% Shell 71.84% Python 19.24%

ocquirks's Introduction

OcQuirks

OcQuirks is a drop in replacement EFI driver for Clover that replaces AptioMemoryFix and all OsxAptioFix variants. It is built against the OpenCore source tree, and supports OpenCore's quirks model.

Prerequisites

The OcQuirks EFI driver has a dependency on FwRuntimeServices.efi, and they must be installed together in the CLOVER EFI drivers directory. FwRuntimeServices.efi can be found in AppleSupportPkg.

Download AppleSupportPkg from the project's releases page.

Installation

To install OcQuirks, download the latest release or build it using the instructions below and then install it into your EFI replacing any existing memory fix driver.

  • Mount your EFI volume.
  • Back your EFI volume up to a bootable USB drive and verify that it works.
  • Remove AptioMemoryFix, and any OsxAptioFix variants from the Clover drivers folder on your EFI volume.
  • Add OcQuirks.efi and FwRuntimeServices.efi to the Clover drivers folder on your EFI volume.
  • Reboot.

If your system has trouble booting, use your USB stick to boot back into macOS and revert by reversing the process. Inspect the parameters below and build OcQuirks with parameters that better match your system.

Default Parameters

Quirk Default Value Description
AvoidRuntimeDefrag True Fix UEFI runtime services support on many firmwares.
DevirtualiseMmio False Reduce stolen memory footprint from memory map, incompatible with some systems
DisableSingleUser False A security option to ignore single user mode arguments.
DisableVariableWrite False A security option to protect macOS NVRAM write access.
DiscardHibernateMap False A legacy parameter to work around buggy memory maps. Preserves runtime memory size and location after wake from S4 sleep.
EnableSafeModeSlide True Patch the bootloader to enable KASLR in safe mode.
EnableWriteUnprotector True Permits write access to UEFI runtime services code.
ForceExitBootServices True Ensures that calls to ExitBootServices succeed even with an outdated MemoryMap key.
ProtectCsmRegion False Prevents CSM memory regions from relocation or use.
ProvideCustomSlide True Force macOS to use a pseudorandom value among available slide values.
SetupVirtualMap True Workaround issues in some firmwares that access memory after SetVirtualAddress calls often resulting in boot crashes.
ShrinkMemoryMap False Rarely needed on Haswell or newer, attempts to unify contiguous slots of similar types to prevent boot failures.
QuirksProvideConsoleGopEnable True Install Graphics Output Protocol if missing from the console handle.

For a more indepth description of quirks, review the OpenCore Configuration Manual.

Building

Building OcQuirks is simple, you just need macOS and time. Review the table above to determine if you need to make any modifications to OcQuirks before building, and then follow the process below.

Clone the Repository

$ git clone https://github.com/ReddestDream/OcQuirks.git
$ cd OcQuirks

Configure OcQuirks

Run the ConfigureQuirks utility and use the menu system to make any necessary changes to the source.

$ ./ConfigureQuirks.command

Build OcQuirks

Now build OcQuirks using the macbuild tool. You may be prompted to install additional tools before compilation begins.

$ ./macbuild.tool

Installation

Follow the installation procedures found earlier in the documentation, using the newly compiled version of OcQuirks which can be found in the OcQuirks/Binaries/RELEASE folder.

Credits

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.