diff --git a/CHANGELOG.md b/CHANGELOG.md index c1e62e2e1..580a29a94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,8 @@ - Resolves Brightness control - Add AppleGVA patch set for HD3000 machines - Mainly applicable for iMac12,x and iGPU-only MacBooks +- Add EFICheckDisabler + - Based off stripped RestrictEvents.kext ## 0.2.5 diff --git a/README.md b/README.md index 93f2f7c8c..f74825ef1 100644 --- a/README.md +++ b/README.md @@ -55,10 +55,12 @@ Nightly builds can be found here courteous of nightly.link: * Mac Pro on OpenCore Patch set and documentation * [Innie](https://github.com/cdf/Innie) and [NightShiftEnabler](https://github.com/cdf/NightShiftEnabler) * [Syncretic](https://forums.macrumors.com/members/syncretic.1173816/) - * [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/) and [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) + * [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/), [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) and [SurPlus](https://github.com/reenigneorcim/SurPlus) * [dosdude1](https://github.com/dosdude1) * Main author of GUI * Development of previous patchers, laying out much of what needs to be patched +* [parrotgeek1](https://github.com/parrotgeek1) + * [VMM Patch Set](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/4a8f61a01da72b38a4b2250386cc4b497a31a839/payloads/Config/config.plist#L1222-L1281) * [BarryKN](https://github.com/BarryKN) * Development of previous patchers, laying out much of what needs to be patched * [mario_bros_tech](https://github.com/mariobrostech) and the rest of the Unsupported Mac Discord diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index ffdd51dd8..d62698ba5 100755 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -134,7 +134,6 @@ module.exports = { 'TERMS', 'HOW', 'PATCHEXPLAIN', - 'CLI', ] }, diff --git a/docs/CLI.md b/docs/CLI.md deleted file mode 100644 index 861aad6aa..000000000 --- a/docs/CLI.md +++ /dev/null @@ -1,41 +0,0 @@ -# Command Line Args - -With OpenCore Legacy Patcher, we include an extra binary called [OCLP-CLI](https://github.com/dortania/OpenCore-Legacy-Patcher/releases/). The purpose of this binary is to easily run our OpenCore build process for other programs to hook onto. Below is documentation on currently supported arguments. - -### Build Arguments - -* **--build**: Build OpenCore - * **--model xxxx**: override default model detection - * ex. **--model iMac11,2** - * **--metal_gpu xxxx**: override default GPU detection (ie. Nvidia, AMD) - * **--metal_gpu Nvidia** - * **--smbios_spoof xxxx**: set spoofing mode, defaults to Minimal if no arg provided (ie. Minimal, Moderate, Advanced) - * ex. **--smbios_spoof Moderate** - * **--verbose**: enable verbose booting - * **--debug_oc**: enable debug OpenCore - * **--debug_kext**: enable debug kexts - * **--skip_wifi**: skip wifi patch - * **--hide_picker**: hide OpenCore's picker - * **--disable_sip**: disables SIP - * **--disable_smb**: disables SecureBootModel - * **--vault**: enable OpenCore vaulting - -Example usage: - -```bash -./OCLP-CLI --build --verbose --debug_oc --debug_kext --model iMac11,2 -``` - -Note, when building OpenCore the output folder will be next to the OCLP binary as OpenCore-RELEASE or OpenCore-DEBUG folder. - -### Patch System Arguments - -* **--patch_sys_vol**: patches root volume with detected hardware - -Example usage: - -```bash -sudo ./OCLP-CLI --patch_sys_vol -``` - -Note, root volume patching needs to be run as sudo diff --git a/docs/LICENSE.md b/docs/LICENSE.md index 3be9c3b8a..37698bc5b 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -16,6 +16,8 @@ This patcher is made of multiple external applications from different people and * All rights reserved to respective authors * [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/) - Syncretic * [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) - Syncretic + * [SurPlus](https://github.com/reenigneorcim/SurPlus) - Syncretic + * [VMM Patch Set](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/4a8f61a01da72b38a4b2250386cc4b497a31a839/payloads/Config/config.plist#L1222-L1281) - parrotgeek1 * Apple Binaries - Apple Inc. Remaining files within OpenCore Legacy Patcher are copyrighted 2020-2021 Mykola Grymalyuk & Dhinak G. For integration into other projects, please request written permission. diff --git a/docs/PATCHEXPLAIN.md b/docs/PATCHEXPLAIN.md index 319a66ed3..1be2edccc 100644 --- a/docs/PATCHEXPLAIN.md +++ b/docs/PATCHEXPLAIN.md @@ -19,7 +19,7 @@ Below is a run down of the main logic OpenCore Legacy Patcher uses to gain nativ * EHCx and XHC1 Patches * Reason: Required for proper USB operation * Logic: Avoids USB maps of newer models attaching and breaking USB port functionality - * Models: All models require + * Models: All models require when spoofing with Moderate or Advanced SMBIOS ### Booter -> Quirks @@ -53,11 +53,11 @@ Below is a run down of the main logic OpenCore Legacy Patcher uses to gain nativ * SMC Patch * Reason: Required to avoid SMC Firmware updates * Logic: Patches out `smc-version` in AppleSMC.kext, requires SMC-Spoof.kext for full functionality - * Models: All models require + * Models: All models require when spoofing SMBIOS * IOHIDFamily Patch * Reason: Required for HID peripheral support in macOS on older hardware * Logic: Tricks IOHIDFamily into thinking it's always booting recovery - * Models: [2010 and older](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/79ab028b0a039e97a528e0b99c876d95d9c2d41d/Resources/ModelArray.py#L310-L332) + * Models: Penryn CPUs (Core2 series) ### Kernel -> Quirks @@ -196,15 +196,13 @@ Below is an explanation of what Kexts OpenCore Legacy Patcher will inject into m Unfortunately certain on-disk patches are required to achieve full functionality. Below is a breakdown of patches supported -Note, GPU Acceleration Patches are not public yet, the below section is simply documentation for easier research with new aids. - ::: details Audio Patches ### Extensions * AppleHDA - * Reason: Re-add High Sierra's AppleHDA to achieve audio support - * Models: 2011 and older Macs (excluding MacPro4,1+) + * Reason: Re-add El Capitan's AppleHDA to achieve audio support + * Models: iMac7,1 and iMac8,1 ::: diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 8662c9ad0..47686d270 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -659,6 +659,24 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + Comment + Disable EFI Checks + Enabled + + MaxKernel + + MinKernel + + BundlePath + EFICheckDisabler.kext + ExecutablePath + + PlistPath + Contents/Info.plist + Arch x86_64 diff --git a/payloads/Kexts/Acidanthera/EFICheckDisabler-v1.0.5.zip b/payloads/Kexts/Acidanthera/EFICheckDisabler-v1.0.5.zip new file mode 100644 index 000000000..4f3f0aa60 Binary files /dev/null and b/payloads/Kexts/Acidanthera/EFICheckDisabler-v1.0.5.zip differ diff --git a/payloads/Kexts/Acidanthera/EFICheckDisabler.md b/payloads/Kexts/Acidanthera/EFICheckDisabler.md new file mode 100644 index 000000000..528124964 --- /dev/null +++ b/payloads/Kexts/Acidanthera/EFICheckDisabler.md @@ -0,0 +1 @@ +Based off RestrictEvents.kext, stripped binary to block Apple's EFICheck driver diff --git a/resources/build.py b/resources/build.py index 11021feb7..1b25e6c2e 100644 --- a/resources/build.py +++ b/resources/build.py @@ -745,6 +745,10 @@ class BuildOpenCore: self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.filesystems.apfs")["Enabled"] = True # Lets us check in sys_patch.py if config supports FileVault self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Settings"] += " -allow_fv" + if self.get_kext_by_bundle_path("RestrictEvents.kext")["Enabled"] is False: + # Ensure this is done at the end so all previous RestrictEvents patches are applied + # RestrictEvents and EFICheckDisabler will confilict if both are injected + self.enable_kext("EFICheckDisabler.kext", self.constants.restrictevents_version, self.constants.efi_disabler_path) def set_smbios(self): spoofed_model = self.model diff --git a/resources/cli_menu.py b/resources/cli_menu.py index fb5f48998..6bdec62ba 100644 --- a/resources/cli_menu.py +++ b/resources/cli_menu.py @@ -715,12 +715,17 @@ the event there's issues. """Many thanks to the following: - Acidanthera:\tOpenCore, kexts and other tools - - Khronokernel:\tWriting and maintaining this patcher - DhinakG:\t\tWriting and maintaining this patcher + - Khronokernel:\tWriting and maintaining this patcher - ASentientBot:\tLegacy Acceleration Patches - Ausdauersportler:\tLinking fixes for SNBGraphicsFB and AMDX3000 - - Syncretic:\t\tAAAMouSSE and telemetrap - - cdf:\t\tNightShiftEnabler and Innie""" + - Syncretic:\t\tAAAMouSSE, telemetrap, and SurPlus + - cdf:\t\tNightShiftEnabler and Innie + - parrotgeek1:\tVMM Patch Set + +Source Code: +https://github.com/dortania/OpenCore-Legacy-Patcher + """ ], ).start() @@ -852,7 +857,7 @@ system_profiler SPHardwareDataType | grep 'Model Identifier' # MenuOptions(self.constants.custom_model or self.constants.computer.real_model, self.constants).set_amfi, # ], [ - f"Set System Intrgity Protection (SIP):\tCurrently {self.constants.sip_status}", + f"Set System Integrity Protection (SIP):\tCurrently {self.constants.sip_status}", MenuOptions(self.constants.custom_model or self.constants.computer.real_model, self.constants).change_sip, ], [ diff --git a/resources/constants.py b/resources/constants.py index f189ed999..1b1537f7a 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -257,6 +257,10 @@ class Constants: @property def restrictevents_path(self): return self.payload_kexts_path / Path(f"Acidanthera/RestrictEvents-v{self.restrictevents_version}.zip") + + @property + def efi_disabler_path(self): + return self.payload_kexts_path / Path(f"Acidanthera/EFICheckDisabler-v{self.restrictevents_version}.zip") @property def restrictevents_mbp_path(self):