From 96fd706ead7c1b0b5822f0871bb8a9e95b01d7a8 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Fri, 8 Oct 2021 08:42:29 -0600 Subject: [PATCH] Implement EFICheckDisabler Closes https://github.com/dortania/OpenCore-Legacy-Patcher/issues/552 Closes https://github.com/dortania/OpenCore-Legacy-Patcher/issues/551 --- CHANGELOG.md | 2 ++ payloads/Config/config.plist | 18 ++++++++++++++++++ .../Acidanthera/EFICheckDisabler-v1.0.5.zip | Bin 0 -> 2596 bytes .../Kexts/Acidanthera/EFICheckDisabler.md | 1 + resources/build.py | 4 ++++ resources/cli_menu.py | 2 +- resources/constants.py | 4 ++++ 7 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 payloads/Kexts/Acidanthera/EFICheckDisabler-v1.0.5.zip create mode 100644 payloads/Kexts/Acidanthera/EFICheckDisabler.md 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 0000000000000000000000000000000000000000..4f3f0aa601c76e0e5454bd41e99727e65c827eef GIT binary patch literal 2596 zcmWIWW@Zs#00ET(*I+OMN{BHiFu1yTI%lLNXS-w;Cnn{j7U^ZDR+Q+6hVU}5v#yUx z^a@J=&0U=9>sKDpbcoI zCnty|rza#OeDL)N`@kR85zxRiL4sLbK$`KRk^LlyHoJA;6oR) z!b3gmUN$Nvx3t|Rnk_hZV_lBZ=Wllf4k@<(d>MP}=ayTC_1Bu&{ro+_+IZ7e&F*CL z4^iu!TeY@o=Jnrw{qbgFfq&KSkJJAdNd7;^<~McruEI^PFL#?1-eJD~KQ7erXI=fB z@=e_(CS^C;-t+6l9^aci>(%V{_O`Z_MUIuLY9bo8&cC@y>Gm1@8#fsBKa?zvy_c5x zx7qqnsPxq@-@ZSpp7njw=F7*Oo=?frk}@_;Nv{7m_y0QS({bM`g#D*)o7g(>-UA)q zcOG}Y`|7IyWU5#U6Fses{Ur)xCR`e%y1* zpwRAz>AkHv?UN5KoBZ;_9TUmNGBJ5l&R<_IntnxZr*Hf8E7EOQ8@}HUy%D{0#*Kf;FjF8{5MzZb}=i7zV$OqK5t%Y`Qo*Sfp;%lSnO^3`#}FP7E*8-868oZ#?FVFf?e#A}*7ij0eS6SpY#n6+GN^H?sTG&hK&jM`&#sXxn?pRZ89b+>g!_kORt6Rghra>r-fxF|F5)o_x3+C zs9>_)bCBgY69WS%k04584ph@pXj7*nRg{6a(KzypRV zDjbKHUM8>@UMSt$=%2SL71FD}iwynT4 znVz%OwQgOwv2)_Wol9FgAASAcGC|F|_4*}+Su-C#*!d+vj?sVj*)@^scS>{Yg~eH3 zEC{%N;J~39x6WKJu{1n;;EI)nq3%YF%eT&4x^v>_*%J=e@7%fIas9}dLqXRs-MQg$ z{lKN0CvRLhar4U213ir3S|RaFL)dR%(F_XW0B=Sn5oX*KEU3N!fwztz5_?gGQXzt> zT(k-iW(TaoMXr@V6)p_CZ43c2DXo5Cwt-AVPEa5|sHTH~w~n4b|6}(NJXOJqWSlJt zNbteReq^tKYCafv+qev98Qg2wZ6&@Qg!vI>Epm23wsuM55@067ZX4W>IPwjFhy(>K mazX;-RTx;(_=uIDZ{hZnl5+#RS=m6gumRzEpx5HrK|BDc&61q} literal 0 HcmV?d00001 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):