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/payloads/Config/config.plist b/payloads/Config/config.plist index 18daca1c3..51c90b3f6 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -610,6 +610,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 6c0f8cf93..2e0858dd6 100644 --- a/resources/build.py +++ b/resources/build.py @@ -708,6 +708,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 7b6557d1e..3b6105a06 100644 --- a/resources/cli_menu.py +++ b/resources/cli_menu.py @@ -854,7 +854,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 09b69bf59..32abb26fe 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -256,6 +256,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):