All Projects → ReddestDream → Ocquirks

ReddestDream / Ocquirks

Licence: bsd-3-clause
A work-in-progress attempt to port OpenCore's boot quirks to Clover in order to replace AptioMemoryFix.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Ocquirks

Esp8266 Oled Ssd1306
Driver for the SSD1306 and SH1106 based 128x64, 128x32, 64x48 pixel OLED display running on ESP8266/ESP32
Stars: ✭ 1,590 (+1086.57%)
Mutual labels:  driver
Cassandra Sharp
high performance .NET driver for Apache Cassandra
Stars: ✭ 114 (-14.93%)
Mutual labels:  driver
Rethinkdb Go
Go language driver for RethinkDB
Stars: ✭ 1,582 (+1080.6%)
Mutual labels:  driver
Robotiq
Robotiq packages (http://wiki.ros.org/robotiq)
Stars: ✭ 110 (-17.91%)
Mutual labels:  driver
Go Hdb
SAP HANA Database Client for Go
Stars: ✭ 113 (-15.67%)
Mutual labels:  driver
Libfprint
libfrpint driver for a family of Elantech fingerprint sensors
Stars: ✭ 121 (-9.7%)
Mutual labels:  driver
Postgresql Dart
Dart PostgreSQL driver: supports extended query format, binary protocol and statement reuse.
Stars: ✭ 105 (-21.64%)
Mutual labels:  driver
Ccid
CCID driver
Stars: ✭ 125 (-6.72%)
Mutual labels:  driver
Hulaaki
DEPRECATED : An Elixir library (driver) for clients communicating with MQTT brokers(via the MQTT 3.1.1 protocol).
Stars: ✭ 115 (-14.18%)
Mutual labels:  driver
Pgsql
Erlang PostgreSQL driver
Stars: ✭ 123 (-8.21%)
Mutual labels:  driver
Tl Wn722n V2
Drivers for TP-LINK TL-WN722N version 2 .Clean ported for kernel 4.4, 4.8, 4.10 ,4.13 ,4.14 & 4.15 from source which was at 4.3
Stars: ✭ 112 (-16.42%)
Mutual labels:  driver
Wfpstarterkit
An example driver for Windows that shows how to set-up some basic components of the Windows Filtering Platform
Stars: ✭ 113 (-15.67%)
Mutual labels:  driver
Libneo4j Client
neo4j-client -- Neo4j Command Line Interface (CLI)
Stars: ✭ 121 (-9.7%)
Mutual labels:  driver
Go Sonic
Sonic driver written in Go.
Stars: ✭ 110 (-17.91%)
Mutual labels:  driver
Dbcleaner
Clean database for testing, inspired by database_cleaner for Ruby
Stars: ✭ 125 (-6.72%)
Mutual labels:  driver
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-21.64%)
Mutual labels:  driver
Huawei Wmi
Huawei WMI laptop extras linux driver
Stars: ✭ 120 (-10.45%)
Mutual labels:  driver
Msm8994 8992 Nt Arm64 Drivers
Desktop Windows (ARM64) driver collection for MSM8992/8994 SoCs.
Stars: ✭ 132 (-1.49%)
Mutual labels:  driver
Arango
Golang driver for ArangoDB
Stars: ✭ 125 (-6.72%)
Mutual labels:  driver
Esp32 Arduino Can
An Arduino CAN-Bus library for ESP32
Stars: ✭ 121 (-9.7%)
Mutual labels:  driver

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 OpenRuntime.efi, and they must be installed together in the CLOVER EFI drivers directory. OpenRuntime.efi can be found in the release zip and is built along with OcQuirks.

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, OpenRuntime.efi, and OcQuirks.plist 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 configure OcQuirks.plist with parameters that better match your system.

Default settings are based on AptioMemoryFix and are designed with new Intel systems in mind. Your system may require custom settings, (e.g., Z390 may need DevirtualiseMmio+ProtectUefiServices, Older 100-200 series might need EnableWriteUnprotector). It is also assumed that all slides are valid (no slide=X).

Configuration

The parameters listed below can be changed by dropping in OcQuirks.plist into your Clover drivers folder. This can be found in either the release zip or the root of the OcQuirks repository. If no plist is found, then the defaults below are used.

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 False Permits write access to UEFI runtime services code. Use RebuildAppleMemoryMap if possible.
ForceExitBootServices True Ensures that calls to ExitBootServices succeed even with an outdated MemoryMap key.
MmioWhitelist Array Designed to be filled with plist dict values, describing addresses critical for particular firmware functioning when DevirtualiseMmio quirk is in use.
ProtectMemoryRegions False Protect memory regions from incorrect access. Only needed by very old firmwares.
ProtectSecureBoot False Protect UEFI Secure Boot variables from being written.
ProtectUefiServices False Protect UEFI services from being overridden by the firmware.
ProvideConsoleGopEnable True Install Graphics Output Protocol if missing from the console handle.
ProvideCustomSlide True Force macOS to use a pseudorandom value among available slide values.
ProvideMaxSlide 0 Overrides the maximum slide instead of 256 when ProvideCustomSlide is enabled.
RebuildAppleMemoryMap True Generate Memory Map compatible with macOS.
SetupVirtualMap True Workaround issues in some firmwares that access memory after SetVirtualAddress calls often resulting in boot crashes.
SignalAppleOS False This quirk is useful on Mac firmwares, which behave differently in different OS.
SyncRuntimePermissions True Update memory permissions for runtime environment.

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

Building

Building OcQuirks is simple, you just need macOS and time. You do not need to configure OcQuirks before building now, so all you need to do is follow the process below to build.

Clone the Repository

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

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].