Skip to content

Commit

Permalink
Grammar cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
khronokernel committed Apr 5, 2020
1 parent 3f82b80 commit 434430b
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 37 deletions.
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,31 @@

### About

OpenCore is an open-source unconventional first-in-class piece of software designed to intercept kernel loading to insert a highly advanced rootkit, designed to be an alternative to Clover. OpenCore aims to resolve the constraints and issues imposed by Clover by providing a more versatile and modular system. While OpenCore is primarily designed for Hackintosh systems, it can be used in any scenario where an emulated EFI is needed.
OpenCore is an open-source unconventional first-in-class piece of software designed to intercept kernel loading to insert a highly advanced rootkit, designed to be an alternative to Clover. OpenCore aims to resolve the constraints and issues imposed by Clover by providing a more versatile and modular system. While OpenCore is primarily designed for Hackintosh systems, it can be used in any scenario where an emulated EFI is needed with many using it on KVMs and [real Macs](https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/)

Please remember that OpenCore is still new and currently in beta. Unless you want to be on the bleeding edge of Hackintosh development or are planning on contributing to the project, you probably don't want to migrate if you have a stable system currently.
Please remember that OpenCore is still new and currently in beta. While quite stable, and arguably much more stable than Clover in pretty much every way, is still being frequently updated and so chunks configuartion change quite often(ie. New quirks replacing old ones)

Lastly, this guide is only meant to be a starting point in your journey with OpenCore and not recommended for beginners unless absolutely necessary. For those starting, please see the [r/Hackintosh Vanilla Desktop Guide](https://hackintosh.gitbook.io/-r-hackintosh-vanilla-desktop-guide/). And those who have issues can visit both the [r/Hackintosh subreddit](https://www.reddit.com/r/hackintosh/) and [r/Hackintosh discord](https://discord.gg/u8V7N5C) for more help.

**This guide supports 0.5.6**, newer versions will require you to read the [Differences.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Differences/Differences.pdf). Guide will be updated soon after each [OpenCore release](https://github.com/acidanthera/OpenCorePkg/releases)

### Advantages of OpenCore

* On average, OpenCore systems boot faster than those using Clover as less auto-patching is done
* OpenCore offers better overall security with better support for FileVault, no need to disable SIP and even secure boot support via [Vaulting](/post-install/security.md#Vault)
* On average, OpenCore systems boot faster than those using Clover as less unnessary patching is done
* Better overall stability as patches can be much more persise: [macOS 10.15.4 update](https://www.reddit.com/r/hackintosh/comments/fo9bfv/macos_10154_update/) as an example
* OpenCore offers better overall security with better support for FileVault, no need to disable System Integrity Protection(SIP) and even secure boot-like functionality support via [Vaulting](/post-install/security.md#Vault)
* OpenCore supports boot hotkey support via `boot.efi` - hold `Option` or `ESC` at startup to choose a boot device, `Cmd+R` to enter Recovery or `Cmd+Opt+P+R` to reset NVRAM.
* OpenCore is designed with the future in mind and uses modern methods to load 3rd party kernel extensions without breaking System Integrity Protection which [Clover uses](https://github.com/CloverHackyColor/CloverBootloader/blob/master/rEFIt_UEFI/Platform/kext_inject.cpp#L920)
* BootCamp switching and boot device selection are supported by reading NVRAM variables set by Startup Disk just like a real mac.
* Future development for [AptioMemoryFix](https://github.com/acidanthera/AptioFixPkg) is directly tied to OpenCore, specifically being absorbed into OpenCore itself with the FwRuntimeVariable.efi being used as an extension.
* UEFI and Legacy boot modes are supported.
* Mask patching means macOS updates have very little chance of breaking AMD systems, with [AMD OSX patches](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore) supporting all versions of High Sierra, Mojave and Catalina. **All future AMD OSX development is tied to Opencore**, so for 10.15.2+ you'll need OpenCore
* UEFI and Legacy boot modes are supported
* More sophisticated patching such as mask patching means macOS updates have very little chance of breaking AMD systems, with [AMD OSX patches](https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore) supporting all versions of High Sierra, Mojave and Catalina. **All future AMD OSX development is tied to Opencore**, so for 10.15.2+ you'll need OpenCore

### OpenCore Tips

* Kernel extensions are loaded in the order specified in your config file, so you must load an extension's dependencies before you load the extension itself. For example, Lilu must be loaded before WhateverGreen or VirtualSMC.
* ACPI patches and SSDTs are applied to all operating systems. Adjust your SSDTs with `If (_OSI ("Darwin")) {}` or use [rEFind](http://rodsbooks.com/refind/) in conjunction with OpenCore.
* SMBIOS data, ACPI patches and DSDT/SSDTs are applied to all operating systems. Adjust your SSDTs with `If (_OSI ("Darwin")) {}`
* Note that all SSDTs mentioned in this guide have been updated accordingly and should not affect booting
* Some systems require pure UEFI mode to boot. \(This setting is commonly called "Windows 8.1/10 UEFI Mode" by motherboard manufacturers. See also on [flashing a UEFI ROM onto older GPUs](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.Radeon.en.md)\)
* Issues can occur if NVMe devices are set up as SATA devices in the BIOS.
* OpenCore requires a version of macOS that supports a prelinked kernel, this means any installs of OS X 10.7 Lion or newer are supported with some later versions of OS X 10.6 Snow Leopard also having support.
Expand All @@ -48,11 +50,10 @@ Lastly, this guide is only meant to be a starting point in your journey with Ope

**Enable:**

* VT-x
* VT-X
* Above 4G decoding
* Hyper-Threading
* Execute Disable Bit
* EHCI/XHCI Hand-off
* OS type: Windows 8.1/10 UEFI Mode
* Legacy RTC Device\(Relevant for Z370+\)

10 changes: 5 additions & 5 deletions installer-guide/opencore-efi.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ Requirements:

* [OpenCorePkg](https://github.com/acidanthera/OpenCorePkg/releases), highly recommend running the debug version to show more info
* [AppleSupportPkg](https://github.com/acidanthera/AppleSupportPkg/releases)
* [ProperTree](https://github.com/corpnewt/ProperTree) or Xcode to edit .plist files (OpenCore Configurator is another tool but is heavily outdated and the Mackie version is known for corruption. **Please avoid these kinds of tools at all costs!**).
* [ProperTree](https://github.com/corpnewt/ProperTree) to edit .plist files (OpenCore Configurator is another tool but is heavily outdated and the Mackie version is known for corruption. **Please avoid these kinds of tools at all costs!**).
* Cleaned NVRAM(This is seriously important if you used Clover before, as many variables will remain causing conflicts. Luckily with OC you can press `CleanNvram` in the boot picker when `AllowNvramReset` is enabled in your config)
* Basic knowledge of how a Hackintosh works and what files yours requires(ie: Type of network controller).
* You must remove Clover from your system entirely if you wish to use it as your main boot-loader. Keep a backup of your Clover based EFI. See here on what needs to be cleaned: [Clover Conversion](https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/tree/master/clover-conversion)

# Making the installer

Depending on which OS you're on, see your specific section on making the USB, then return here on setting up Opencore:
Depending on which OS you're on, see your specific section on making the USB, then once done return here on setting up OpenCore:

* [macOS users](/installer-guide/mac-install.md)
* [Windows users](/installer-guide/winblows-install.md)
Expand Down Expand Up @@ -63,9 +63,9 @@ Here's what a populated EFI can look like:

**Reminder**:

* SSDTs and custom DSDTs go in ACPI folder
* Kexts go in Kexts folder
* Firmware drivers(.efi) go in the Drivers folder
* SSDTs and custom DSDTs(`.aml`) go in ACPI folder
* Kexts(`.kext`) go in Kexts folder
* Firmware drivers(`.efi`) go in the Drivers folder

## Now head to [Gathering Files](/ktext.md) to get the needed kexts and firmware drivers

34 changes: 11 additions & 23 deletions ktext.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ These are the drivers used by OpenCore, for the majority of systems you only nee

* [ApfsDriverLoader.efi](https://github.com/acidanthera/AppleSupportPkg/releases)
* Needed for seeing APFS volumes(ie. macOS)
* [VboxHfs.efi](https://github.com/acidanthera/AppleSupportPkg/releases) **or** [HfsPlus.efi](https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus.efi)
* [HfsPlus.efi](https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus.efi) **or** [VboxHfs.efi](https://github.com/acidanthera/AppleSupportPkg/releases)
* Needed for seeing HFS volumes(ie. macOS Installers and Recovery partitions/images). **Do not mix HFS drivers**
* [FwRuntimeServices.efi](https://github.com/acidanthera/OpenCorePkg/releases)
* Replacement for [AptioMemoryFix.efi](https://github.com/acidanthera/AptioFixPkg), used as an extension for OpenCore to help with patching boot.efi for NVRAM fixes and better memory management.
Expand All @@ -29,7 +29,7 @@ For legacy users:
* [XhciDxe.efi](https://github.com/acidanthera/OpenCorePkg/releases)
* Used for Sandy Bridge and older when no XHCI driver is built into the firmware, not needed if you're not using a USB 3.0 expansion card
* [HfsPlusLegacy.efi](https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlusLegacy.efi)
* Legacy variant of HfsPlus, used for systems that lack RDRAND instruction support. This is generally seen on SandyBridge and older
* Legacy variant of HfsPlus, used for systems that lack RDRAND instruction support. This is generally seen on Sandy Bridge and older

For a full list of compatible drivers, see 11.2 Properties in the [OpenCorePkg Docs](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf). These files will go in your Drivers folder in your EFI

Expand Down Expand Up @@ -64,6 +64,7 @@ All kext listed below can be found **pre-compiled** in the [Kext Repo](http://ke

* [WhateverGreen](https://github.com/acidanthera/WhateverGreen/releases)
* Used for graphics patching DRM, boardID, framebuffer fixes, etc, all GPUs benefit from this kext.
* Note the SSDT-PNLF.dsl file included is only required for laptops and AIOs, see * [Getting started with ACPI](/extras/acpi.md) for more info

**Audio**:

Expand Down Expand Up @@ -91,6 +92,7 @@ All kext listed below can be found **pre-compiled** in the [Kext Repo](http://ke

* [XHCI-unsupported](https://github.com/RehabMan/OS-X-USB-Inject-All)
* Needed for non-native USB controllers
* AMD CPU based systems don't need this
* Common chipsets needing this:
* H370
* B360
Expand All @@ -106,7 +108,7 @@ All kext listed below can be found **pre-compiled** in the [Kext Repo](http://ke
* [AirportBrcmFixup](https://github.com/acidanthera/AirportBrcmFixup/releases)
* Used for patching non-Apple Broadcom cards, **will not work on intel, Killer, Realtek, etc**
* [BrcmPatchRAM](https://github.com/acidanthera/BrcmPatchRAM/releases)
* Used for uploading firmware on broadcom bluetooth chipset, required for all non-Apple Airport cards.
* Used for uploading firmware on broadcom bluetooth chipset, required for all non-Apple/Fenvi Airport cards.
* To be paired with BrcmFirmwareData.kext
* BrcmPatchRAM3 for 10.14+ (must be paired with BrcmBluetoothInjector)
* BrcmPatchRAM2 for 10.11-10.14
Expand All @@ -121,9 +123,9 @@ The order in `Kernel -> Add` should be:
**AMD CPU Specific kexts**:

* [~~NullCPUPowerManagment~~](https://www.youtube.com/watch?v=dQw4w9WgXcQ)
* Thanks to OpenCore 0.5.5, we have a much better solution known as `DummyPowerManagement` found under `Kernel -> Quirks`s
* We have a much better solution known as `DummyPowerManagement` found under `Kernel -> Quirks`
* [XLNCUSBFIX](https://cdn.discordapp.com/attachments/566705665616117760/566728101292408877/XLNCUSBFix.kext.zip)
* USB fix for AMD FX systems, no effect on Ryzen
* USB fix for AMD FX systems, not recommended for Ryzen
* [VoodooHDA](https://sourceforge.net/projects/voodoohda/)
* Audio for FX systems and front panel Mic+Audio support for Ryzen system, do not mix with AppleALC. Audio quality is noticably worse than AppleALC on Zen CPUs

Expand Down Expand Up @@ -174,6 +176,7 @@ So you see all those SSDTs in the AcpiSamples folder and wonder whether you need
A quick TL;DR of needed SSDTs(This is source code, you will have to compile them into a .aml file):

**Desktop Ivy Bridge:**

* [SSDT-EC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl)
* [CPU-PM](https://github.com/Piker-Alpha/ssdtPRGen.sh)

Expand All @@ -192,7 +195,7 @@ A quick TL;DR of needed SSDTs(This is source code, you will have to compile them
**Desktop Coffeelake:**
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
* [SSDT AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
* [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)
* [SSDT-PMC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl)

**Haswell-E:**
Expand All @@ -206,24 +209,9 @@ A quick TL;DR of needed SSDTs(This is source code, you will have to compile them
**Skylake-X:**
* [SSDT-PLUG](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl)
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)
* [SSDT-AWAC](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-AWAC.dsl)

**Desktop AMD:**
* [SSDT-EC-USBX](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl)

# Now head to your specific CPU section to setup your config.plist

**Intel Config.plist**

* [Ivy Bridge](/config.plist/ivy-bridge.md)
* [Haswell](/config.plist/haswell.md)
* [Skylake](/config.plist/skylake.md)
* [Kaby Lake](/config.plist/kaby-lake.md)
* [Coffee Lake](/config.plist/coffee-lake.md)

**Intel HEDT Config.plist**

* [Skylake-X](/config-HEDT/skylake-x.md)

**AMD Config.plist**

* [AMD](/AMD/AMD-config.md)
# Now head [Getting Started With ACPI](https://khronokernel.github.io/Getting-Started-With-ACPI/)
4 changes: 4 additions & 0 deletions post-install/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ This section is benificial for all, regardless of hardware.
Used for Intel's consumer line

* [Fixing Intel USB](https://usb-map.gitbook.io/project/)
* [Fixing CFG Lock](extras/msr-lock.md)


For sandy and Ivy Bridge:
Expand All @@ -34,6 +35,9 @@ Used for Intel's High End and Server line
* [Fixing Intel USB](https://usb-map.gitbook.io/project/)
* [Emulating NVRAM](/post-install/nvram.md)

For Sandy and Ivy Bridge E:
* [Fixing Power Management](https://github.com/Piker-Alpha/ssdtPRGen.sh)

## AMD

Used for AMD CPU based hardware
Expand Down

0 comments on commit 434430b

Please sign in to comment.