From bebbf646e17fb76b513cdde1eea502d34612779e Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Mon, 9 Jan 2023 23:03:18 -0700 Subject: [PATCH] sys_patch: Implement RSR handling for root patched Macs Ref: https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1019 --- CHANGELOG.md | 4 ++++ payloads/Config/config.plist | 18 ++++++++++++++ .../Acidanthera/RSRHelper-v1.0.0-DEBUG.zip | Bin 0 -> 11580 bytes .../Acidanthera/RSRHelper-v1.0.0-RELEASE.zip | Bin 0 -> 10431 bytes payloads/Tools/RSRRepair | Bin 0 -> 72352 bytes resources/build/security.py | 6 +++++ resources/constants.py | 9 +++++++ resources/sys_patch/sys_patch.py | 3 +++ resources/sys_patch/sys_patch_helpers.py | 22 +++++++++++++++++- 9 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 payloads/Kexts/Acidanthera/RSRHelper-v1.0.0-DEBUG.zip create mode 100644 payloads/Kexts/Acidanthera/RSRHelper-v1.0.0-RELEASE.zip create mode 100755 payloads/Tools/RSRRepair diff --git a/CHANGELOG.md b/CHANGELOG.md index c874843bf..82f509f0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,10 @@ - Improved menubar blur - Add Nvidia Kepler GOP Driver injection - Primarily for GPUs lacking GOPs and can't have a newer VBIOS flashed +- Resolve Rapid Security Response support for Haswell Macs requiring KDKs + - Implemented via: + - Userspace: RSRRepair at `/etc/rc.server` (2b1c9e3) + - Kernelspace: RSRHelper.kext (cbe1be9) - Increment Binaries: - OpenCorePkg 0.8.8 - release - PatcherSupportPkg 0.8.0 - release diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index 2cb5d5964..83d2492e8 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -1545,6 +1545,24 @@ PlistPath Contents/Info.plist + + Arch + x86_64 + BundlePath + RSRHelper.kext + Comment + RSRHelper + Enabled + + ExecutablePath + Contents/MacOS/RSRHelper + MaxKernel + + MinKernel + 20.0.0 + PlistPath + Contents/Info.plist + Block diff --git a/payloads/Kexts/Acidanthera/RSRHelper-v1.0.0-DEBUG.zip b/payloads/Kexts/Acidanthera/RSRHelper-v1.0.0-DEBUG.zip new file mode 100644 index 0000000000000000000000000000000000000000..b167bad7eb7c5781e294824c074c874cce95ca68 GIT binary patch literal 11580 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 literal 0 HcmV?d00001 diff --git a/payloads/Kexts/Acidanthera/RSRHelper-v1.0.0-RELEASE.zip b/payloads/Kexts/Acidanthera/RSRHelper-v1.0.0-RELEASE.zip new file mode 100644 index 0000000000000000000000000000000000000000..928b4f37ea5559308625c614859d2f91d561842a GIT binary patch literal 10431 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 literal 0 HcmV?d00001 diff --git a/payloads/Tools/RSRRepair b/payloads/Tools/RSRRepair new file mode 100755 index 0000000000000000000000000000000000000000..88eb019616a25e8eb3720bed36a5b023cc2106a5 GIT binary patch literal 72352 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