mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-06-20 14:10:51 +10:00
Allow for setting custom SIP values via TUI
Closes https://github.com/dortania/OpenCore-Legacy-Patcher/issues/516
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
# OpenCore Legacy Patcher changelog
|
# OpenCore Legacy Patcher changelog
|
||||||
|
|
||||||
## 0.3.1
|
## 0.3.1
|
||||||
|
- Allow for setting custom SIP values via TUI
|
||||||
|
|
||||||
## 0.3.0
|
## 0.3.0
|
||||||
- Fix Nvidia Tesla Acceleration in Monterey Beta 7+
|
- Fix Nvidia Tesla Acceleration in Monterey Beta 7+
|
||||||
|
|||||||
+6
-1
@@ -692,7 +692,12 @@ class BuildOpenCore:
|
|||||||
print("- Setting Vault configuration")
|
print("- Setting Vault configuration")
|
||||||
self.config["Misc"]["Security"]["Vault"] = "Secure"
|
self.config["Misc"]["Security"]["Vault"] = "Secure"
|
||||||
self.get_efi_binary_by_path("OpenShell.efi", "Misc", "Tools")["Enabled"] = False
|
self.get_efi_binary_by_path("OpenShell.efi", "Misc", "Tools")["Enabled"] = False
|
||||||
if self.constants.sip_status is False:
|
if self.constants.custom_sip_value:
|
||||||
|
print(f"- Setting SIP value to: {self.constants.custom_sip_value}")
|
||||||
|
sip = self.constants.custom_sip_value.lstrip("0x")
|
||||||
|
# Ensure SIP is 8 characters long
|
||||||
|
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["csr-active-config"] = utilities.string_to_hex(self.constants.custom_sip_value)
|
||||||
|
elif self.constants.sip_status is False:
|
||||||
print("- Disabling SIP")
|
print("- Disabling SIP")
|
||||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["csr-active-config"] = binascii.unhexlify("030E0000")
|
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["csr-active-config"] = binascii.unhexlify("030E0000")
|
||||||
# if self.constants.amfi_status is False:
|
# if self.constants.amfi_status is False:
|
||||||
|
|||||||
+28
-2
@@ -160,7 +160,7 @@ Note: For security reasons, OpenShell will be disabled when Vault is set.
|
|||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set System Integrity protection"])
|
utilities.header(["Set System Integrity protection"])
|
||||||
print(
|
print(
|
||||||
"""SIP is used to ensure proper secuirty measures are set,
|
f"""SIP is used to ensure proper secuirty measures are set,
|
||||||
however to patch the root volume this must be disabled.
|
however to patch the root volume this must be disabled.
|
||||||
Only disable is absolutely necessary. SIP value = 0xE03
|
Only disable is absolutely necessary. SIP value = 0xE03
|
||||||
|
|
||||||
@@ -168,6 +168,7 @@ Valid options:
|
|||||||
|
|
||||||
1. Enable SIP
|
1. Enable SIP
|
||||||
2. Disable SIP
|
2. Disable SIP
|
||||||
|
3. Set Custom SIP value {self.constants.custom_sip_value}
|
||||||
Q. Return to previous menu
|
Q. Return to previous menu
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -177,6 +178,8 @@ Q. Return to previous menu
|
|||||||
self.constants.sip_status = True
|
self.constants.sip_status = True
|
||||||
elif change_menu == "2":
|
elif change_menu == "2":
|
||||||
self.constants.sip_status = False
|
self.constants.sip_status = False
|
||||||
|
elif change_menu == "3":
|
||||||
|
self.set_custom_sip_value()
|
||||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
@@ -763,6 +766,29 @@ the event there's issues.
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.set_surplus()
|
self.set_surplus()
|
||||||
|
|
||||||
|
def set_custom_sip_value(self):
|
||||||
|
utilities.cls()
|
||||||
|
utilities.header(["Set Custom SIP Value"])
|
||||||
|
print(
|
||||||
|
"""
|
||||||
|
By default OCLP will use the SIP value of 0x00 as the enabled and
|
||||||
|
0xE03 for machines that require root patching. For users who wish
|
||||||
|
to flip additional bits in SIP may use this option.
|
||||||
|
|
||||||
|
To disable SIP outright, set it to 0xFEF
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
change_menu = input("Set Custom SIP Value (0xFEF): ")
|
||||||
|
try:
|
||||||
|
# Verify whether input is a valid hex value
|
||||||
|
int(change_menu, 16)
|
||||||
|
# Convert to binary hex
|
||||||
|
self.constants.custom_sip_value = change_menu
|
||||||
|
except ValueError:
|
||||||
|
print("Invalid input, returning to previous menu")
|
||||||
|
self.set_custom_sip_value()
|
||||||
|
|
||||||
|
|
||||||
def credits(self):
|
def credits(self):
|
||||||
utilities.TUIOnlyPrint(
|
utilities.TUIOnlyPrint(
|
||||||
@@ -911,7 +937,7 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
|||||||
# MenuOptions(self.constants.custom_model or self.constants.computer.real_model, self.constants).set_amfi,
|
# MenuOptions(self.constants.custom_model or self.constants.computer.real_model, self.constants).set_amfi,
|
||||||
# ],
|
# ],
|
||||||
[
|
[
|
||||||
f"Set System Integrity Protection (SIP):\tCurrently {self.constants.sip_status}",
|
f"Set System Integrity Protection (SIP):\tCurrently {self.constants.custom_sip_value or self.constants.sip_status}",
|
||||||
MenuOptions(self.constants.custom_model or self.constants.computer.real_model, self.constants).change_sip,
|
MenuOptions(self.constants.custom_model or self.constants.computer.real_model, self.constants).change_sip,
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ class Constants:
|
|||||||
self.force_latest_psp = False # Force latest PatcherSupportPkg
|
self.force_latest_psp = False # Force latest PatcherSupportPkg
|
||||||
self.disable_msr_power_ctl = False # Disable MSR Power Control (missing battery throttling)
|
self.disable_msr_power_ctl = False # Disable MSR Power Control (missing battery throttling)
|
||||||
self.software_demux = False # Enable Software Demux patch set
|
self.software_demux = False # Enable Software Demux patch set
|
||||||
|
self.custom_sip_value = None # Set custom SIP value
|
||||||
|
|
||||||
# OS Versions
|
# OS Versions
|
||||||
## Based off Major Kernel Version
|
## Based off Major Kernel Version
|
||||||
|
|||||||
Reference in New Issue
Block a user