mirror of
https://github.com/outbackdingo/OpCore-Simplify.git
synced 2026-01-27 10:19:49 +00:00
Improve SMBIOS model handling to preserve user settings
This commit is contained in:
@@ -312,8 +312,9 @@ class OCPE:
|
||||
smbios_model = self.s.select_smbios_model(hardware_report, macos_version)
|
||||
if not self.ac.ensure_dsdt():
|
||||
self.ac.select_acpi_tables()
|
||||
self.ac.select_acpi_patches(hardware_report, unsupported_devices, smbios_model)
|
||||
self.k.select_required_kexts(hardware_report, smbios_model, macos_version, needs_oclp, self.ac.patches)
|
||||
self.ac.select_acpi_patches(hardware_report, unsupported_devices)
|
||||
self.k.select_required_kexts(hardware_report, macos_version, needs_oclp, self.ac.patches)
|
||||
self.s.smbios_specific_options(hardware_report, smbios_model, macos_version, self.ac.patches, self.k)
|
||||
elif option < 7:
|
||||
try:
|
||||
hardware_report
|
||||
@@ -325,14 +326,15 @@ class OCPE:
|
||||
macos_version = self.select_macos_version(native_macos_version, ocl_patched_macos_version)
|
||||
hardware_report, unsupported_devices, needs_oclp = self.c.get_unsupported_devices(macos_version)
|
||||
smbios_model = self.s.select_smbios_model(hardware_report, macos_version)
|
||||
self.k.select_required_kexts(hardware_report, smbios_model, macos_version, needs_oclp, self.ac.patches)
|
||||
self.k.select_required_kexts(hardware_report, macos_version, needs_oclp, self.ac.patches)
|
||||
self.s.smbios_specific_options(hardware_report, smbios_model, macos_version, self.ac.patches, self.k)
|
||||
elif option == 3:
|
||||
self.ac.customize_patch_selection(hardware_report, unsupported_devices, smbios_model)
|
||||
self.ac.customize_patch_selection(hardware_report, unsupported_devices)
|
||||
elif option == 4:
|
||||
self.k.kext_configuration_menu(hardware_report, smbios_model, macos_version, self.ac.patches)
|
||||
elif option == 5:
|
||||
smbios_model = self.s.customize_smbios_model(hardware_report, smbios_model, macos_version)
|
||||
self.k.select_required_kexts(hardware_report, smbios_model, macos_version, needs_oclp, self.ac.patches)
|
||||
self.s.smbios_specific_options(hardware_report, smbios_model, macos_version, self.ac.patches, self.k)
|
||||
elif option == 6:
|
||||
self.gathering_files(macos_version)
|
||||
self.build_opencore_efi(hardware_report, unsupported_devices, smbios_model, macos_version, needs_oclp)
|
||||
|
||||
@@ -3001,7 +3001,7 @@ DefinitionBlock ("", "SSDT", 2, "ZPSS", "UsbReset", 0x00001000)
|
||||
return index
|
||||
return None
|
||||
|
||||
def select_acpi_patches(self, hardware_report, unsupported_devices, smbios_model):
|
||||
def select_acpi_patches(self, hardware_report, unsupported_devices):
|
||||
selected_patches = []
|
||||
|
||||
if "Laptop" in hardware_report.get("Motherboard").get("Platform") and \
|
||||
@@ -3033,9 +3033,6 @@ DefinitionBlock ("", "SSDT", 2, "ZPSS", "UsbReset", 0x00001000)
|
||||
"Ivy Bridge" in hardware_report.get("CPU").get("Codename") and hardware_report.get("Intel MEI").get("Device ID") in "8086-1C3A":
|
||||
selected_patches.append("IMEI")
|
||||
|
||||
if "Intel" in hardware_report.get("CPU").get("Manufacturer") or not "MacPro" in smbios_model:
|
||||
selected_patches.append("MCHC")
|
||||
|
||||
if self.utils.contains_any(chipset_data.IntelChipsets, hardware_report.get("Motherboard").get("Chipset"), start=89, end=101):
|
||||
selected_patches.append("PMC")
|
||||
|
||||
@@ -3084,7 +3081,7 @@ DefinitionBlock ("", "SSDT", 2, "ZPSS", "UsbReset", 0x00001000)
|
||||
for patch in self.patches:
|
||||
patch.checked = patch.name in selected_patches
|
||||
|
||||
def customize_patch_selection(self, hardware_report, unsupported_devices, smbios_model):
|
||||
def customize_patch_selection(self, hardware_report, unsupported_devices):
|
||||
while True:
|
||||
contents = []
|
||||
contents.append("")
|
||||
@@ -3117,7 +3114,7 @@ DefinitionBlock ("", "SSDT", 2, "ZPSS", "UsbReset", 0x00001000)
|
||||
return
|
||||
|
||||
if option.lower() == "r":
|
||||
self.select_acpi_patches(hardware_report, unsupported_devices, smbios_model)
|
||||
self.select_acpi_patches(hardware_report, unsupported_devices)
|
||||
else:
|
||||
indices = [int(i.strip()) -1 for i in option.split(",") if i.strip().isdigit()]
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ class KextMaestro:
|
||||
if other_kext.conflict_group_id == kext.conflict_group_id and other_kext.name != kext.name:
|
||||
other_kext.checked = False
|
||||
|
||||
def select_required_kexts(self, hardware_report, smbios_model, macos_version, needs_oclp, acpi_patches):
|
||||
def select_required_kexts(self, hardware_report, macos_version, needs_oclp, acpi_patches):
|
||||
for kext in self.kexts:
|
||||
kext.checked = kext.required
|
||||
|
||||
@@ -117,7 +117,7 @@ class KextMaestro:
|
||||
|
||||
if not (" Core" in hardware_report.get("CPU").get("Processor Name") and \
|
||||
self.utils.contains_any(cpu_data.IntelCPUGenerations, hardware_report.get("CPU").get("Codename"), start=4)) or \
|
||||
self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("23.0.0") or "MacPro7,1" in smbios_model:
|
||||
self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("23.0.0"):
|
||||
selected_kexts.append("RestrictEvents")
|
||||
|
||||
if hardware_report.get("Sound"):
|
||||
@@ -248,9 +248,6 @@ class KextMaestro:
|
||||
else:
|
||||
selected_kexts.append("XHCI-unsupported")
|
||||
|
||||
if smbios_model in (device.name for device in mac_model_data.mac_devices[31:34] + mac_model_data.mac_devices[48:50] + mac_model_data.mac_devices[51:61]):
|
||||
selected_kexts.append("NoTouchID")
|
||||
|
||||
if "Sandy Bridge" in hardware_report.get("CPU").get("Codename"):
|
||||
selected_kexts.append("ASPP-Override")
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from Scripts.datasets.mac_model_data import mac_devices
|
||||
from Scripts.datasets import os_data
|
||||
from Scripts import gathering_files
|
||||
from Scripts import run
|
||||
from Scripts import utils
|
||||
@@ -58,6 +59,22 @@ class SMBIOS:
|
||||
"SystemUUID": str(uuid.uuid4()).upper(),
|
||||
}
|
||||
|
||||
def smbios_specific_options(self, hardware_report, smbios_model, macos_version, acpi_patches, kext_maestro):
|
||||
for patch in acpi_patches:
|
||||
if patch.name == "MCHC":
|
||||
patch.checked = "Intel" in hardware_report.get("CPU").get("Manufacturer") and not "MacPro" in smbios_model
|
||||
|
||||
selected_kexts = []
|
||||
|
||||
if "MacPro7,1" in smbios_model:
|
||||
selected_kexts.append("RestrictEvents")
|
||||
|
||||
if smbios_model in (device.name for device in mac_devices[31:34] + mac_devices[48:50] + mac_devices[51:61]):
|
||||
selected_kexts.append("NoTouchID")
|
||||
|
||||
for name in selected_kexts:
|
||||
kext_maestro.check_kext(kext_maestro.get_kext_index(name), macos_version, "Beta" in os_data.get_macos_name_by_darwin(macos_version))
|
||||
|
||||
def select_smbios_model(self, hardware_report, macos_version):
|
||||
platform = "NUC" if "NUC" in hardware_report.get("Motherboard").get("Name") else hardware_report.get("Motherboard").get("Platform")
|
||||
codename = hardware_report.get("CPU").get("Codename")
|
||||
|
||||
Reference in New Issue
Block a user