mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-06-20 14:10:51 +10:00
Refactor SMBIOS table
This commit is contained in:
@@ -29,6 +29,7 @@
|
|||||||
- PatcherSupportPkg 0.1.5 release
|
- PatcherSupportPkg 0.1.5 release
|
||||||
- RestrictEvents 1.0.5 rolling (2430ed0)
|
- RestrictEvents 1.0.5 rolling (2430ed0)
|
||||||
- Limit MacBookPro6,2 G State
|
- Limit MacBookPro6,2 G State
|
||||||
|
- Works around crashing when switching GPUs
|
||||||
- Fix OTA updates on T2 SMBIOS
|
- Fix OTA updates on T2 SMBIOS
|
||||||
|
|
||||||
## 0.2.5
|
## 0.2.5
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
class bluetooth_data:
|
||||||
|
# Bluetooth Chipsets
|
||||||
|
NonApplicable = 0
|
||||||
|
BRCM2045 = 1 # TODO: Rename chipset, currently guessing MacPro1,1-3,1 name
|
||||||
|
BRCM2046 = 2 # BT 2.1
|
||||||
|
BRCM2070 = 3 # BT 2.1
|
||||||
|
BRCM20702_v1 = 4 # BT 4.0 - 2012
|
||||||
|
BRCM20702_v2 = 5 # BT 4.0 - 2013+
|
||||||
|
BRCM20703 = 6 # BT 4.2
|
||||||
|
BRCM20703_UART = 9 # BRCM20703 over UART, BT 4.2
|
||||||
|
UART = 10
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
class cpu_data:
|
||||||
|
pentium_4 = 0
|
||||||
|
yonah = 1
|
||||||
|
conroe = 2
|
||||||
|
penryn = 3
|
||||||
|
nahalem = 4 # (Westmere included)
|
||||||
|
sandy_bridge = 5 # 2000
|
||||||
|
ivy_bridge = 6 # 3000
|
||||||
|
haswell = 7 # 4000
|
||||||
|
broadwell = 8 # 5000
|
||||||
|
skylake = 9 # 6000
|
||||||
|
kaby_lake = 10 # 7000
|
||||||
|
coffee_lake = 11 # 8000
|
||||||
|
comet_lake = 12 # 9000
|
||||||
|
ice_lake = 13 # 10000
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
class os_data:
|
||||||
|
# OS Versions, Based off Major Kernel Version
|
||||||
|
tiger = 8
|
||||||
|
leopard = 9
|
||||||
|
snow_leopard = 10
|
||||||
|
lion = 11
|
||||||
|
mountain_lion = 12
|
||||||
|
mavericks = 13
|
||||||
|
yosemite = 14
|
||||||
|
el_capitan = 15
|
||||||
|
sierra = 16
|
||||||
|
high_sierra = 17
|
||||||
|
mojave = 18
|
||||||
|
catalina = 19
|
||||||
|
big_sur = 20
|
||||||
|
monterey = 21
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
# Array of Device IDs for different devices
|
# Array of Device IDs for different devices
|
||||||
|
|
||||||
|
|
||||||
class nvidia_ids:
|
class nvidia_ids:
|
||||||
# Courteous of envytools as well as Macrumors:
|
# Courteous of envytools as well as Macrumors:
|
||||||
# https://envytools.readthedocs.io/en/latest/hw/pciid.html
|
# https://envytools.readthedocs.io/en/latest/hw/pciid.html
|
||||||
@@ -850,6 +848,13 @@ class intel_ids:
|
|||||||
|
|
||||||
|
|
||||||
class broadcom_ids:
|
class broadcom_ids:
|
||||||
|
AppleBCMWLANBusInterfacePCIe = [
|
||||||
|
0x43DC,
|
||||||
|
0x4464,
|
||||||
|
0x4488,
|
||||||
|
0x4425,
|
||||||
|
]
|
||||||
|
|
||||||
AirPortBrcmNIC = [
|
AirPortBrcmNIC = [
|
||||||
# AirPortBrcmNIC IDs
|
# AirPortBrcmNIC IDs
|
||||||
0x43BA, # BCM43602
|
0x43BA, # BCM43602
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
class system_integrity_protection:
|
||||||
|
csr_values = {
|
||||||
|
# Source: macOS 11.4 (XNU's csr.h)
|
||||||
|
# https://opensource.apple.com/source/xnu/xnu-7195.121.3/bsd/sys/csr.h.auto.html
|
||||||
|
"CSR_ALLOW_UNTRUSTED_KEXTS": False, # 0x1 - Allows Unsigned Kexts - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_UNRESTRICTED_FS": False, # 0x2 - File System Access - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_TASK_FOR_PID": False, # 0x4 - Unrestricted task_for_pid() - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_KERNEL_DEBUGGER": False, # 0x8 - Allow Kernel Debugger - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_APPLE_INTERNAL": False, # 0x10 - Set AppleInternal Features - Introduced in El Capitan # noqa: E241
|
||||||
|
# "CSR_ALLOW_DESTRUCTIVE_DTRACE": False, # 0x20 - Allow destructive DTrace - Deprecated # noqa: E241
|
||||||
|
"CSR_ALLOW_UNRESTRICTED_DTRACE": False, # 0x20 - Unrestricted DTrace usage - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_UNRESTRICTED_NVRAM": False, # 0x40 - Unrestricted NVRAM write - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_DEVICE_CONFIGURATION": False, # 0x80 - Allow custom DeviceTree (iOS) - Introduced in El Capitan # noqa: E241
|
||||||
|
"CSR_ALLOW_ANY_RECOVERY_OS": False, # 0x100 - Skip BaseSystem Verification - Introduced in Sierra # noqa: E241
|
||||||
|
"CSR_ALLOW_UNAPPROVED_KEXTS": False, # 0x200 - Allow Unnotarized Kexts - Introduced in High Sierra # noqa: E241
|
||||||
|
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Override Executable Policy - Introduced in Mojave # noqa: E241
|
||||||
|
"CSR_ALLOW_UNAUTHENTICATED_ROOT": False, # 0x800 - Allow Root Volume Mounting - Introduced in Big Sur # noqa: E241
|
||||||
|
}
|
||||||
|
|
||||||
|
root_patch_sip_mojave = [
|
||||||
|
# Variables required to root patch in Mojave and Catalina
|
||||||
|
"CSR_ALLOW_UNTRUSTED_KEXTS", # 0x1
|
||||||
|
"CSR_ALLOW_UNRESTRICTED_FS", # 0x2
|
||||||
|
"CSR_ALLOW_UNAPPROVED_KEXTS", # 0x200
|
||||||
|
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE", # 0x400
|
||||||
|
]
|
||||||
|
|
||||||
|
root_patch_sip_big_sur = [
|
||||||
|
# Variables required to root patch in Big Sur and Monterey
|
||||||
|
"CSR_ALLOW_UNTRUSTED_KEXTS", # 0x1
|
||||||
|
"CSR_ALLOW_UNRESTRICTED_FS", # 0x2
|
||||||
|
"CSR_ALLOW_UNAPPROVED_KEXTS", # 0x200
|
||||||
|
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE", # 0x400
|
||||||
|
"CSR_ALLOW_UNAUTHENTICATED_ROOT", # 0x800
|
||||||
|
]
|
||||||
+1385
File diff suppressed because it is too large
Load Diff
+41
-42
@@ -14,7 +14,8 @@ import ast
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
from Resources import Constants, ModelArray, Utilities, device_probe, SMBIOSData
|
from Resources import Constants, ModelArray, Utilities, device_probe
|
||||||
|
from Data import smbios_data, bluetooth_data, cpu_data
|
||||||
|
|
||||||
|
|
||||||
def rmtree_handler(func, path, exc_info):
|
def rmtree_handler(func, path, exc_info):
|
||||||
@@ -71,9 +72,9 @@ class BuildOpenCore:
|
|||||||
firmwarefeature = Utilities.get_rom("firmware-features")
|
firmwarefeature = Utilities.get_rom("firmware-features")
|
||||||
if not firmwarefeature:
|
if not firmwarefeature:
|
||||||
print("- Failed to find FirmwareFeatures, falling back on defaults")
|
print("- Failed to find FirmwareFeatures, falling back on defaults")
|
||||||
firmwarefeature = int(SMBIOSData.FirmwareFeatures[self.model], 16)
|
firmwarefeature = int(smbios_data.smbios_dictionary[self.model]["FirmwareFeatures"], 16)
|
||||||
else:
|
else:
|
||||||
firmwarefeature = int(SMBIOSData.FirmwareFeatures[self.model], 16)
|
firmwarefeature = int(smbios_data.smbios_dictionary[self.model]["FirmwareFeatures"], 16)
|
||||||
firmwarefeature = Utilities.enable_apfs(firmwarefeature)
|
firmwarefeature = Utilities.enable_apfs(firmwarefeature)
|
||||||
firmwarefeature = Utilities.enable_apfs_extended(firmwarefeature)
|
firmwarefeature = Utilities.enable_apfs_extended(firmwarefeature)
|
||||||
firmwarefeature = Utilities.enable_large_basesystem(firmwarefeature)
|
firmwarefeature = Utilities.enable_large_basesystem(firmwarefeature)
|
||||||
@@ -152,8 +153,8 @@ class BuildOpenCore:
|
|||||||
("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: self.constants.allow_oc_everywhere is False),
|
("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: self.constants.allow_oc_everywhere is False),
|
||||||
# CPU patches
|
# CPU patches
|
||||||
("AppleMCEReporterDisabler.kext", self.constants.mce_version, self.constants.mce_path, lambda: self.model in ModelArray.DualSocket),
|
("AppleMCEReporterDisabler.kext", self.constants.mce_version, self.constants.mce_path, lambda: self.model in ModelArray.DualSocket),
|
||||||
("AAAMouSSE.kext", self.constants.mousse_version, self.constants.mousse_path, lambda: self.model in ModelArray.SSEEmulator),
|
("AAAMouSSE.kext", self.constants.mousse_version, self.constants.mousse_path, lambda: smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn),
|
||||||
("telemetrap.kext", self.constants.telemetrap_version, self.constants.telemetrap_path, lambda: self.model in ModelArray.MissingSSE42),
|
("telemetrap.kext", self.constants.telemetrap_version, self.constants.telemetrap_path, lambda: smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn),
|
||||||
(
|
(
|
||||||
"CPUFriend.kext",
|
"CPUFriend.kext",
|
||||||
self.constants.cpufriend_version,
|
self.constants.cpufriend_version,
|
||||||
@@ -169,9 +170,8 @@ class BuildOpenCore:
|
|||||||
# IDE patch
|
# IDE patch
|
||||||
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
|
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
|
||||||
# Misc
|
# Misc
|
||||||
("FeatureUnlock.kext", self.constants.featureunlock_version, self.constants.featureunlock_path, lambda: self.model in ModelArray.FeatureUnlockSupport),
|
("FeatureUnlock.kext", self.constants.featureunlock_version, self.constants.featureunlock_path, lambda: smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.kaby_lake),
|
||||||
("DebugEnhancer.kext", self.constants.debugenhancer_version, self.constants.debugenhancer_path, lambda: self.constants.kext_debug is True),
|
("DebugEnhancer.kext", self.constants.debugenhancer_version, self.constants.debugenhancer_path, lambda: self.constants.kext_debug is True),
|
||||||
# ("latebloom.kext", self.constants.latebloom_version, self.constants.latebloom_path, lambda: self.model in ModelArray.PCIRaceCondition),
|
|
||||||
("AppleUSBTrackpad.kext", self.constants.apple_trackpad, self.constants.apple_trackpad_path, lambda: self.model in ["MacBook4,1", "MacBook5,2"]),
|
("AppleUSBTrackpad.kext", self.constants.apple_trackpad, self.constants.apple_trackpad_path, lambda: self.model in ["MacBook4,1", "MacBook5,2"]),
|
||||||
]:
|
]:
|
||||||
self.enable_kext(name, version, path, check)
|
self.enable_kext(name, version, path, check)
|
||||||
@@ -179,14 +179,16 @@ class BuildOpenCore:
|
|||||||
if self.constants.allow_oc_everywhere is False:
|
if self.constants.allow_oc_everywhere is False:
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.driver.AppleSMC")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.driver.AppleSMC")["Enabled"] = True
|
||||||
|
|
||||||
if self.smbios_set(self.model) in ModelArray.T2_Models or self.constants.override_smbios in ModelArray.T2_Models:
|
|
||||||
|
if (smbios_data.smbios_dictionary[self.smbios_set(self.model) or self.constants.override_smbios]["SecureBootModel"]) != None:
|
||||||
# Monterey T2 SMBIOS don't get OS updates without a T2 SBM
|
# Monterey T2 SMBIOS don't get OS updates without a T2 SBM
|
||||||
# Forces VMM patch instead
|
# Forces VMM patch instead
|
||||||
if self.get_kext_by_bundle_path("RestrictEvents.kext")["Enabled"] is False:
|
if self.get_kext_by_bundle_path("RestrictEvents.kext")["Enabled"] is False:
|
||||||
self.enable_kext("RestrictEvents.kext", self.constants.restrictevents_version, self.constants.restrictevents_path)
|
self.enable_kext("RestrictEvents.kext", self.constants.restrictevents_version, self.constants.restrictevents_path)
|
||||||
|
|
||||||
if self.model in ModelArray.PCIRaceCondition:
|
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.sandy_bridge:
|
||||||
# Ref: https://github.com/reenigneorcim/SurPlus
|
# Ref: https://github.com/reenigneorcim/SurPlus
|
||||||
|
# Enable for all systems missing RDRAND support
|
||||||
print("- Adding SurPlus Patch for Race Condition")
|
print("- Adding SurPlus Patch for Race Condition")
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "SurPlus v1 - PART 1 of 2 - Patch read_erandom (inlined in _early_random)")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "SurPlus v1 - PART 1 of 2 - Patch read_erandom (inlined in _early_random)")["Enabled"] = True
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "SurPlus v1 - PART 2 of 2 - Patch register_and_init_prng")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "SurPlus v1 - PART 2 of 2 - Patch register_and_init_prng")["Enabled"] = True
|
||||||
@@ -303,21 +305,25 @@ class BuildOpenCore:
|
|||||||
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
||||||
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
||||||
else:
|
else:
|
||||||
if self.model in ModelArray.WifiBCM94331:
|
if smbios_data.smbios_dictionary[self.model]["Wireless Model"] == device_probe.Broadcom.Chipsets.AirPortBrcm4360:
|
||||||
|
print("- Enabling BCM943224 and BCM94331 Networking Support")
|
||||||
wifi_fake_id(self)
|
wifi_fake_id(self)
|
||||||
elif self.model in ModelArray.WifiBCM94322:
|
elif smbios_data.smbios_dictionary[self.model]["Wireless Model"] == device_probe.Broadcom.Chipsets.AirPortBrcm4331:
|
||||||
|
print("- Enabling BCM94328 Networking Support")
|
||||||
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
||||||
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
||||||
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortBrcm4331.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortBrcm4331.kext")["Enabled"] = True
|
||||||
elif self.model in ModelArray.WifiBCM94328:
|
elif smbios_data.smbios_dictionary[self.model]["Wireless Model"] == device_probe.Broadcom.Chipsets.AirPortBrcm43224:
|
||||||
|
print("- Enabling BCM94328 Networking Support")
|
||||||
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
||||||
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
||||||
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AppleAirPortBrcm43224.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AppleAirPortBrcm43224.kext")["Enabled"] = True
|
||||||
elif self.model in ModelArray.WifiAtheros:
|
elif smbios_data.smbios_dictionary[self.model]["Wireless Model"] == device_probe.Atheros.Chipsets.AirPortAtheros40:
|
||||||
|
print("- Enabling Atheros Networking Support")
|
||||||
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
||||||
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
||||||
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
||||||
else:
|
elif smbios_data.smbios_dictionary[self.model]["Wireless Model"] == device_probe.Broadcom.Chipsets.AirportBrcmNIC:
|
||||||
self.enable_kext("AirportBrcmFixup.kext", self.constants.airportbcrmfixup_version, self.constants.airportbcrmfixup_path)
|
self.enable_kext("AirportBrcmFixup.kext", self.constants.airportbcrmfixup_version, self.constants.airportbcrmfixup_path)
|
||||||
# print(f"- Setting Wireless Card's Country Code: {self.computer.wifi.country_code}")
|
# print(f"- Setting Wireless Card's Country Code: {self.computer.wifi.country_code}")
|
||||||
# self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += f" brcmfx-country={self.computer.wifi.country_code}"
|
# self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += f" brcmfx-country={self.computer.wifi.country_code}"
|
||||||
@@ -334,18 +340,19 @@ class BuildOpenCore:
|
|||||||
self.get_kext_by_bundle_path("CPUFriendDataProvider.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("CPUFriendDataProvider.kext")["Enabled"] = True
|
||||||
|
|
||||||
# HID patches
|
# HID patches
|
||||||
if self.model in ModelArray.LegacyHID:
|
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn:
|
||||||
print("- Adding IOHIDFamily patch")
|
print("- Adding IOHIDFamily patch")
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.iokit.IOHIDFamily")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.iokit.IOHIDFamily")["Enabled"] = True
|
||||||
|
|
||||||
# SSDT patches
|
# SSDT patches
|
||||||
if self.model in ModelArray.pciSSDT:
|
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] == cpu_data.cpu_data.nahalem and not (self.model.startswith("MacPro") or self.model.startswith("Xserve")):
|
||||||
print("- Adding SSDT-CPBG.aml")
|
print("- Adding SSDT-CPBG.aml")
|
||||||
self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-CPBG.aml")["Enabled"] = True
|
self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-CPBG.aml")["Enabled"] = True
|
||||||
shutil.copy(self.constants.pci_ssdt_path, self.constants.acpi_path)
|
shutil.copy(self.constants.pci_ssdt_path, self.constants.acpi_path)
|
||||||
|
|
||||||
if self.model in ModelArray.windows_audio:
|
if cpu_data.cpu_data.sandy_bridge <= smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.ivy_bridge:
|
||||||
# Based on: https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12/
|
# Based on: https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12/
|
||||||
|
# Apply to Sandy and Ivy Bridge Macs
|
||||||
print("- Enabling Windows 10 UEFI Audio support")
|
print("- Enabling Windows 10 UEFI Audio support")
|
||||||
self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-PCI.aml")["Enabled"] = True
|
self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-PCI.aml")["Enabled"] = True
|
||||||
self.get_item_by_kv(self.config["ACPI"]["Patch"], "Comment", "BUF0 to BUF1")["Enabled"] = True
|
self.get_item_by_kv(self.config["ACPI"]["Patch"], "Comment", "BUF0 to BUF1")["Enabled"] = True
|
||||||
@@ -605,32 +612,16 @@ class BuildOpenCore:
|
|||||||
print("- Fixing Legacy Bluetooth for macOS Monterey")
|
print("- Fixing Legacy Bluetooth for macOS Monterey")
|
||||||
self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path)
|
self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path)
|
||||||
self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path)
|
self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path)
|
||||||
elif self.computer.bluetooth_chipset == "BRCM20702 Hub" and self.model in ModelArray.Bluetooth_BRCM20702_v1:
|
elif self.computer.bluetooth_chipset == "BRCM20702 Hub" and smbios_data.smbios_dictionary[self.model]["Bluetooth Model"] == bluetooth_data.bluetooth_data.BRCM20702_v1:
|
||||||
print("- Fixing Legacy Bluetooth for macOS Monterey")
|
print("- Fixing Legacy Bluetooth for macOS Monterey")
|
||||||
self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path)
|
self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path)
|
||||||
elif self.model in ModelArray.Bluetooth_BRCM2070 or self.model in ModelArray.Bluetooth_BRCM2046 or self.model in ModelArray.Bluetooth_BRCM20702_v1:
|
# smbios_data.smbios_dictionary[self.model]["Bluetooth Model"]
|
||||||
|
elif smbios_data.smbios_dictionary[self.model]["Bluetooth Model"] <= bluetooth_data.bluetooth_data.BRCM20702_v1:
|
||||||
print("- Fixing Legacy Bluetooth for macOS Monterey")
|
print("- Fixing Legacy Bluetooth for macOS Monterey")
|
||||||
self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path)
|
self.enable_kext("BlueToolFixup.kext", self.constants.bluetool_version, self.constants.bluetool_path)
|
||||||
if self.model in ModelArray.Bluetooth_BRCM2070 or self.model in ModelArray.Bluetooth_BRCM2046:
|
if smbios_data.smbios_dictionary[self.model]["Bluetooth Model"] <= bluetooth_data.bluetooth_data.BRCM2070:
|
||||||
self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path)
|
self.enable_kext("Bluetooth-Spoof.kext", self.constants.btspoof_version, self.constants.btspoof_path)
|
||||||
|
|
||||||
# Add XhciDxe if firmware doesn't have XHCI controller support and XCHI controller detected
|
|
||||||
# TODO: Fix XhciDxe to work on pre UEFI 2.0 Macs
|
|
||||||
# Ref: https://github.com/acidanthera/bugtracker/issues/1663
|
|
||||||
# if self.model not in ModelArray.XhciSupport and not self.constants.custom_model:
|
|
||||||
# devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
|
||||||
# try:
|
|
||||||
# devices = [i for i in devices if i["class-code"] == binascii.unhexlify(self.constants.classcode_xhci)]
|
|
||||||
# vendor_id = Utilities.hexswap(binascii.hexlify(devices[0]["vendor-id"]).decode()[:4])
|
|
||||||
# device_id = Utilities.hexswap(binascii.hexlify(devices[0]["device-id"]).decode()[:4])
|
|
||||||
# print("- Found XHCI Controller, adding Boot Support")
|
|
||||||
# shutil.copy(self.constants.xhci_driver_path, self.constants.drivers_path)
|
|
||||||
# self.get_efi_binary_by_path("XhciDxe.efi", "UEFI", "Drivers")["Enabled"] = True
|
|
||||||
# except ValueError:
|
|
||||||
# print("- No XHCI Controller Found (V)")
|
|
||||||
# except IndexError:
|
|
||||||
# print("- No XHCI Controller Found (I)")
|
|
||||||
|
|
||||||
if self.constants.nvme_boot is True:
|
if self.constants.nvme_boot is True:
|
||||||
print("- Enabling NVMe boot support")
|
print("- Enabling NVMe boot support")
|
||||||
shutil.copy(self.constants.nvme_driver_path, self.constants.drivers_path)
|
shutil.copy(self.constants.nvme_driver_path, self.constants.drivers_path)
|
||||||
@@ -644,15 +635,19 @@ class BuildOpenCore:
|
|||||||
self.get_efi_binary_by_path("OpenRuntime.efi", "UEFI", "Drivers")["Enabled"] = True
|
self.get_efi_binary_by_path("OpenRuntime.efi", "UEFI", "Drivers")["Enabled"] = True
|
||||||
self.get_efi_binary_by_path("OpenLinuxBoot.efi", "UEFI", "Drivers")["Enabled"] = True
|
self.get_efi_binary_by_path("OpenLinuxBoot.efi", "UEFI", "Drivers")["Enabled"] = True
|
||||||
# Exfat check
|
# Exfat check
|
||||||
if self.model in ModelArray.NoExFat:
|
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] < cpu_data.cpu_data.sandy_bridge:
|
||||||
|
# Sandy Bridge and newer Macs natively support ExFat
|
||||||
print("- Adding ExFatDxeLegacy.efi")
|
print("- Adding ExFatDxeLegacy.efi")
|
||||||
shutil.copy(self.constants.exfat_legacy_driver_path, self.constants.drivers_path)
|
shutil.copy(self.constants.exfat_legacy_driver_path, self.constants.drivers_path)
|
||||||
self.get_efi_binary_by_path("ExFatDxeLegacy.efi", "UEFI", "Drivers")["Enabled"] = True
|
self.get_efi_binary_by_path("ExFatDxeLegacy.efi", "UEFI", "Drivers")["Enabled"] = True
|
||||||
|
|
||||||
# Add UGA to GOP layer
|
# Add UGA to GOP layer
|
||||||
if self.model in ModelArray.UGAtoGOP:
|
try:
|
||||||
|
smbios_data.smbios_dictionary[self.model]["UGA Graphics"]
|
||||||
print("- Adding UGA to GOP Patch")
|
print("- Adding UGA to GOP Patch")
|
||||||
self.config["UEFI"]["Output"]["GopPassThrough"] = "Apple"
|
self.config["UEFI"]["Output"]["GopPassThrough"] = "Apple"
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
# ThirdPartDrives Check
|
# ThirdPartDrives Check
|
||||||
if self.model in ModelArray.SATAPatch and self.constants.allow_oc_everywhere is False:
|
if self.model in ModelArray.SATAPatch and self.constants.allow_oc_everywhere is False:
|
||||||
@@ -721,9 +716,13 @@ class BuildOpenCore:
|
|||||||
if self.constants.validate is False:
|
if self.constants.validate is False:
|
||||||
print("- Adding bootmgfw.efi BlessOverride")
|
print("- Adding bootmgfw.efi BlessOverride")
|
||||||
self.config["Misc"]["BlessOverride"] += ["\\EFI\\Microsoft\\Boot\\bootmgfw.efi"]
|
self.config["Misc"]["BlessOverride"] += ["\\EFI\\Microsoft\\Boot\\bootmgfw.efi"]
|
||||||
if self.model in ModelArray.dGPU_switch and self.constants.dGPU_switch is True:
|
try:
|
||||||
print("- Allowing GMUX switching in Windows")
|
if self.constants.dGPU_switch is True:
|
||||||
|
smbios_data.smbios_dictionary[self.model]["Switchable GPUs"]
|
||||||
|
print("- Allowing GMUX switching in Windows")
|
||||||
self.config["Booter"]["Quirks"]["SignalAppleOS"] = True
|
self.config["Booter"]["Quirks"]["SignalAppleOS"] = True
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
if self.constants.allow_fv_root is True:
|
if self.constants.allow_fv_root is True:
|
||||||
# apfs.kext has an undocumented boot-arg that allows FileVault usage on broken APFS seals (-arv_allow_fv)
|
# apfs.kext has an undocumented boot-arg that allows FileVault usage on broken APFS seals (-arv_allow_fv)
|
||||||
# This is however hidden behind kern.development, thus we patch _apfs_filevault_allowed to always return true
|
# This is however hidden behind kern.development, thus we patch _apfs_filevault_allowed to always return true
|
||||||
@@ -742,7 +741,7 @@ class BuildOpenCore:
|
|||||||
spoofed_model = self.constants.override_smbios
|
spoofed_model = self.constants.override_smbios
|
||||||
print(f"- Using Model ID: {spoofed_model}")
|
print(f"- Using Model ID: {spoofed_model}")
|
||||||
try:
|
try:
|
||||||
spoofed_board = self.constants.board_id[spoofed_model]
|
spoofed_board = smbios_data.smbios_dictionary[spoofed_model]["Board ID"]
|
||||||
print(f"- Using Board ID: {spoofed_board}")
|
print(f"- Using Board ID: {spoofed_board}")
|
||||||
except KeyError:
|
except KeyError:
|
||||||
spoofed_board = ""
|
spoofed_board = ""
|
||||||
|
|||||||
@@ -631,41 +631,6 @@ class Constants:
|
|||||||
def legacy_wifi_libexec(self):
|
def legacy_wifi_libexec(self):
|
||||||
return self.payload_apple_libexec_path / Path("Legacy-Wifi")
|
return self.payload_apple_libexec_path / Path("Legacy-Wifi")
|
||||||
|
|
||||||
csr_values = {
|
|
||||||
# Source: macOS 11.4 (XNU's csr.h)
|
|
||||||
# https://opensource.apple.com/source/xnu/xnu-7195.121.3/bsd/sys/csr.h.auto.html
|
|
||||||
"CSR_ALLOW_UNTRUSTED_KEXTS": False, # 0x1 - Allows Unsigned Kexts - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_UNRESTRICTED_FS": False, # 0x2 - File System Access - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_TASK_FOR_PID": False, # 0x4 - Unrestricted task_for_pid() - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_KERNEL_DEBUGGER": False, # 0x8 - Allow Kernel Debugger - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_APPLE_INTERNAL": False, # 0x10 - Set AppleInternal Features - Introduced in El Capitan # noqa: E241
|
|
||||||
# "CSR_ALLOW_DESTRUCTIVE_DTRACE": False, # 0x20 - Allow destructive DTrace - Deprecated # noqa: E241
|
|
||||||
"CSR_ALLOW_UNRESTRICTED_DTRACE": False, # 0x20 - Unrestricted DTrace usage - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_UNRESTRICTED_NVRAM": False, # 0x40 - Unrestricted NVRAM write - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_DEVICE_CONFIGURATION": False, # 0x80 - Allow custom DeviceTree (iOS) - Introduced in El Capitan # noqa: E241
|
|
||||||
"CSR_ALLOW_ANY_RECOVERY_OS": False, # 0x100 - Skip BaseSystem Verification - Introduced in Sierra # noqa: E241
|
|
||||||
"CSR_ALLOW_UNAPPROVED_KEXTS": False, # 0x200 - Allow Unnotarized Kexts - Introduced in High Sierra # noqa: E241
|
|
||||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Override Executable Policy - Introduced in Mojave # noqa: E241
|
|
||||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT": False, # 0x800 - Allow Root Volume Mounting - Introduced in Big Sur # noqa: E241
|
|
||||||
}
|
|
||||||
|
|
||||||
root_patch_sip_mojave = [
|
|
||||||
# Variables required to root patch in Mojave and Catalina
|
|
||||||
"CSR_ALLOW_UNTRUSTED_KEXTS", # 0x1
|
|
||||||
"CSR_ALLOW_UNRESTRICTED_FS", # 0x2
|
|
||||||
"CSR_ALLOW_UNAPPROVED_KEXTS", # 0x200
|
|
||||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE", # 0x400
|
|
||||||
]
|
|
||||||
|
|
||||||
root_patch_sip_big_sur = [
|
|
||||||
# Variables required to root patch in Big Sur and Monterey
|
|
||||||
"CSR_ALLOW_UNTRUSTED_KEXTS", # 0x1
|
|
||||||
"CSR_ALLOW_UNRESTRICTED_FS", # 0x2
|
|
||||||
"CSR_ALLOW_UNAPPROVED_KEXTS", # 0x200
|
|
||||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE", # 0x400
|
|
||||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT", # 0x800
|
|
||||||
]
|
|
||||||
|
|
||||||
sbm_values = [
|
sbm_values = [
|
||||||
"j137ap", # iMacPro1,1
|
"j137ap", # iMacPro1,1
|
||||||
"j680ap", # MacBookPro15,1
|
"j680ap", # MacBookPro15,1
|
||||||
@@ -695,133 +660,6 @@ class Constants:
|
|||||||
"Mac-7BA5B2D9E42DDD94", # iMacPro1,1
|
"Mac-7BA5B2D9E42DDD94", # iMacPro1,1
|
||||||
]
|
]
|
||||||
|
|
||||||
board_id = {
|
|
||||||
"MacBook1,1": "Mac-F4208CC8",
|
|
||||||
"MacBook2,1": "Mac-F4208CA9",
|
|
||||||
"MacBook3,1": "Mac-F22788C8",
|
|
||||||
"MacBook4,1": "Mac-F22788A9",
|
|
||||||
"MacBook5,1": "Mac-F42D89C8",
|
|
||||||
"MacBook5,2": "Mac-F22788AA",
|
|
||||||
"MacBook6,1": "Mac-F22C8AC8",
|
|
||||||
"MacBook7,1": "Mac-F22C89C8",
|
|
||||||
"MacBook8,1": "Mac-BE0E8AC46FE800CC",
|
|
||||||
"MacBook9,1": "Mac-9AE82516C7C6B903",
|
|
||||||
"MacBook10,1": "Mac-EE2EBD4B90B839A8",
|
|
||||||
"MacBookAir1,1": "Mac-F42C8CC8",
|
|
||||||
"MacBookAir2,1": "Mac-F42D88C8",
|
|
||||||
"MacBookAir3,1": "Mac-942452F5819B1C1B",
|
|
||||||
"MacBookAir3,2": "Mac-942C5DF58193131B",
|
|
||||||
"MacBookAir4,1": "Mac-C08A6BB70A942AC2",
|
|
||||||
"MacBookAir4,2": "Mac-742912EFDBEE19B3",
|
|
||||||
"MacBookAir5,1": "Mac-66F35F19FE2A0D05",
|
|
||||||
"MacBookAir5,2": "Mac-2E6FAB96566FE58C",
|
|
||||||
"MacBookAir6,1": "Mac-35C1E88140C3E6CF",
|
|
||||||
"MacBookAir6,2": "Mac-7DF21CB3ED6977E5",
|
|
||||||
"MacBookAir7,1": "Mac-9F18E312C5C2BF0B",
|
|
||||||
"MacBookAir7,2": "Mac-937CB26E2E02BB01",
|
|
||||||
"MacBookAir8,1": "Mac-827FAC58A8FDFA22",
|
|
||||||
"MacBookAir8,2": "Mac-226CB3C6A851A671",
|
|
||||||
"MacBookAir9,1": "Mac-0CFF9C7C2B63DF8D",
|
|
||||||
"MacBookPro1,1": "Mac-F425BEC8",
|
|
||||||
"MacBookPro1,2": "Mac-F42DBEC8",
|
|
||||||
"MacBookPro2,1": "Mac-F42189C8",
|
|
||||||
"MacBookPro2,2": "Mac-F42187C8",
|
|
||||||
"MacBookPro3,1": "Mac-F4238BC8",
|
|
||||||
"MacBookPro4,1": "Mac-F42C89C8",
|
|
||||||
"MacBookPro5,1": "Mac-F42D86C8",
|
|
||||||
"MacBookPro5,2": "Mac-F2268EC8",
|
|
||||||
"MacBookPro5,3": "Mac-F22587C8",
|
|
||||||
"MacBookPro5,4": "Mac-F22587A1",
|
|
||||||
"MacBookPro5,5": "Mac-F2268AC8",
|
|
||||||
"MacBookPro6,1": "Mac-F22589C8",
|
|
||||||
"MacBookPro6,2": "Mac-F22586C8",
|
|
||||||
"MacBookPro7,1": "Mac-F222BEC8",
|
|
||||||
"MacBookPro8,1": "Mac-94245B3640C91C81",
|
|
||||||
"MacBookPro8,2": "Mac-94245A3940C91C80",
|
|
||||||
"MacBookPro8,3": "Mac-942459F5819B171B",
|
|
||||||
"MacBookPro9,1": "Mac-4B7AC7E43945597E",
|
|
||||||
"MacBookPro9,2": "Mac-6F01561E16C75D06",
|
|
||||||
"MacBookPro10,1": "Mac-C3EC7CD22292981F",
|
|
||||||
"MacBookPro10,2": "Mac-AFD8A9D944EA4843",
|
|
||||||
"MacBookPro11,1": "Mac-189A3D4F975D5FFC",
|
|
||||||
"MacBookPro11,2": "Mac-3CBD00234E554E41",
|
|
||||||
"MacBookPro11,3": "Mac-2BD1B31983FE1663",
|
|
||||||
"MacBookPro11,4": "Mac-06F11FD93F0323C5",
|
|
||||||
"MacBookPro11,5": "Mac-06F11F11946D27C5",
|
|
||||||
"MacBookPro12,1": "Mac-E43C1C25D4880AD6",
|
|
||||||
"MacBookPro13,1": "Mac-473D31EABEB93F9B",
|
|
||||||
"MacBookPro13,2": "Mac-66E35819EE2D0D05",
|
|
||||||
"MacBookPro13,3": "Mac-A5C67F76ED83108C",
|
|
||||||
"MacBookPro14,1": "Mac-B4831CEBD52A0C4C",
|
|
||||||
"MacBookPro14,2": "Mac-CAD6701F7CEA0921",
|
|
||||||
"MacBookPro14,3": "Mac-551B86E5744E2388",
|
|
||||||
"MacBookPro15,1": "Mac-937A206F2EE63C01",
|
|
||||||
"MacBookPro15,2": "Mac-827FB448E656EC26",
|
|
||||||
"MacBookPro15,3": "Mac-1E7E29AD0135F9BC",
|
|
||||||
"MacBookPro15,4": "Mac-53FDB3D8DB8CA971",
|
|
||||||
"MacBookPro16,1": "Mac-E1008331FDC96864",
|
|
||||||
"MacBookPro16,2": "Mac-5F9802EFE386AA28",
|
|
||||||
"MacBookPro16,3": "Mac-E7203C0F68AA0004",
|
|
||||||
"MacBookPro16,4": "Mac-A61BADE1FDAD7B05",
|
|
||||||
"Macmini1,1": "Mac-F4208EC8",
|
|
||||||
"Macmini2,1": "Mac-F4208EAA",
|
|
||||||
"Macmini3,1": "Mac-F22C86C8",
|
|
||||||
"Macmini4,1": "Mac-F2208EC8",
|
|
||||||
"Macmini5,1": "Mac-8ED6AF5B48C039E1",
|
|
||||||
"Macmini5,2": "Mac-4BC72D62AD45599E",
|
|
||||||
"Macmini5,3": "Mac-7BA5B2794B2CDB12",
|
|
||||||
"Macmini6,1": "Mac-031AEE4D24BFF0B1",
|
|
||||||
"Macmini6,2": "Mac-F65AE981FFA204ED",
|
|
||||||
"Macmini7,1": "Mac-35C5E08120C7EEAF",
|
|
||||||
"Macmini8,1": "Mac-7BA5B2DFE22DDD8C",
|
|
||||||
"iMac4,1": "Mac-F42786C8",
|
|
||||||
"iMac4,2": "Mac-F4218EC8",
|
|
||||||
"iMac5,1": "Mac-F4228EC8",
|
|
||||||
"iMac5,2": "Mac-F4218EC8",
|
|
||||||
"iMac6,1": "Mac-F4218FC8",
|
|
||||||
"iMac7,1": "Mac-F42386C8",
|
|
||||||
"iMac8,1": "Mac-F227BEC8",
|
|
||||||
"iMac9,1": "Mac-F2218FA9",
|
|
||||||
"iMac10,1": "Mac-F221DCC8",
|
|
||||||
# "iMac10,1": "Mac-F2268CC8",
|
|
||||||
"iMac11,1": "Mac-F2268DAE",
|
|
||||||
"iMac11,2": "Mac-F2238AC8",
|
|
||||||
"iMac11,3": "Mac-F2238BAE",
|
|
||||||
"iMac12,1": "Mac-942B5BF58194151B",
|
|
||||||
"iMac12,2": "Mac-942B59F58194171B",
|
|
||||||
"iMac13,1": "Mac-00BE6ED71E35EB86",
|
|
||||||
"iMac13,2": "Mac-FC02E91DDD3FA6A4",
|
|
||||||
"iMac13,3": "Mac-7DF2A3B5E5D671ED",
|
|
||||||
"iMac14,1": "Mac-031B6874CF7F642A",
|
|
||||||
"iMac14,2": "Mac-27ADBB7B4CEE8E61",
|
|
||||||
"iMac14,3": "Mac-77EB7D7DAF985301",
|
|
||||||
"iMac14,4": "Mac-81E3E92DD6088272",
|
|
||||||
"iMac15,1": "Mac-42FD25EABCABB274",
|
|
||||||
"iMac16,1": "Mac-A369DDC4E67F1C45",
|
|
||||||
"iMac16,2": "Mac-FFE5EF870D7BA81A",
|
|
||||||
"iMac17,1": "Mac-DB15BD556843C820",
|
|
||||||
# iMac17,1": "Mac-65CE76090165799A",
|
|
||||||
# iMac17,1": "Mac-B809C3757DA9BB8D",
|
|
||||||
"iMac18,1": "Mac-4B682C642B45593E",
|
|
||||||
"iMac18,2": "Mac-77F17D7DA9285301",
|
|
||||||
"iMac18,3": "Mac-BE088AF8C5EB4FA2",
|
|
||||||
"iMac19,1": "Mac-AA95B1DDAB278B95",
|
|
||||||
"iMac19,2": "Mac-63001698E7A34814",
|
|
||||||
"iMac20,1": "Mac-CFF7D910A743CAAF",
|
|
||||||
"iMac20,2": "Mac-AF89B6D9451A490B",
|
|
||||||
"iMacPro1,1": "Mac-7BA5B2D9E42DDD94",
|
|
||||||
"MacPro1,1": "Mac-F4208DC8",
|
|
||||||
"MacPro2,1": "Mac-F4208DA9",
|
|
||||||
"MacPro3,1": "Mac-F42C88C8",
|
|
||||||
"MacPro4,1": "Mac-F221BEC8",
|
|
||||||
"MacPro5,1": "Mac-F221BEC8",
|
|
||||||
"MacPro6,1": "Mac-F60DEB81FF30ACF6",
|
|
||||||
"MacPro7,1": "Mac-27AD2F918AE68F61",
|
|
||||||
"Xserve1,1": "Mac-F4208AC8",
|
|
||||||
"Xserve2,1": "Mac-F42289C8",
|
|
||||||
"Xserve3,1": "Mac-F223BEC8",
|
|
||||||
}
|
|
||||||
|
|
||||||
target_type = {
|
target_type = {
|
||||||
"ADP3,2": "J273",
|
"ADP3,2": "J273",
|
||||||
"MacBookAir10,1": "J313",
|
"MacBookAir10,1": "J313",
|
||||||
|
|||||||
@@ -71,44 +71,12 @@ SupportedSMBIOS = [
|
|||||||
# Xserve
|
# Xserve
|
||||||
"Xserve2,1",
|
"Xserve2,1",
|
||||||
"Xserve3,1",
|
"Xserve3,1",
|
||||||
"Dortania1,1",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# CPU patches
|
# CPU patches
|
||||||
|
|
||||||
MissingSSE42 = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBook6,1",
|
|
||||||
"MacBook7,1",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookAir3,1",
|
|
||||||
"MacBookAir3,2",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"Macmini3,1",
|
|
||||||
"Macmini4,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"iMac10,1",
|
|
||||||
"MacPro3,1",
|
|
||||||
"Xserve2,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
SSEEmulator = ["MacPro3,1", "Xserve2,1", "Dortania1,1"]
|
|
||||||
|
|
||||||
DualSocket = ["MacPro3,1", "MacPro4,1", "MacPro5,1", "Xserve2,1", "Xserve3,1", "Dortania1,1"]
|
DualSocket = ["MacPro3,1", "MacPro4,1", "MacPro5,1", "Xserve2,1", "Xserve3,1", "Dortania1,1"]
|
||||||
|
|
||||||
pciSSDT = ["MacBookPro6,1", "MacBookPro6,2", "iMac11,1", "iMac11,2", "iMac11,3", "Dortania1,1"]
|
|
||||||
|
|
||||||
# Ethernet patches
|
# Ethernet patches
|
||||||
|
|
||||||
EthernetNvidia = [
|
EthernetNvidia = [
|
||||||
@@ -148,57 +116,6 @@ EthernetBroadcom = [
|
|||||||
"Dortania1,1",
|
"Dortania1,1",
|
||||||
]
|
]
|
||||||
|
|
||||||
# Wifi patches
|
|
||||||
|
|
||||||
WifiAtheros = ["iMac10,1", "iMac11,1", "iMac11,2", "iMac11,3", "iMac12,1", "iMac12,2", "MacPro3,1", "MacPro4,1", "Dortania1,1"]
|
|
||||||
|
|
||||||
WifiBCM94328 = ["MacBook4,1", "MacBookAir2,1", "MacBookPro4,1", "iMac7,1", "iMac8,1", "Dortania1,1"]
|
|
||||||
|
|
||||||
WifiBCM94322 = [
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBookAir3,1",
|
|
||||||
"MacBookAir3,2",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"Macmini3,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"MacPro5,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
WifiBCM94331 = [
|
|
||||||
"MacBook6,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
|
||||||
"MacBook7,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
|
||||||
"MacBookAir4,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookAir4,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookAir5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookAir5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro6,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro6,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro8,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro8,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro8,3", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro9,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro9,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro10,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"MacBookPro10,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"Macmini4,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
|
||||||
"Macmini5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"Macmini5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"Macmini5,3", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"Macmini6,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"Macmini6,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
|
||||||
"iMac13,1", # PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)
|
|
||||||
"iMac13,2", # PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)
|
|
||||||
"iMac13,3", # PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
|
|
||||||
LegacyAudio = [
|
LegacyAudio = [
|
||||||
@@ -389,150 +306,8 @@ LegacyBrightness = [
|
|||||||
"iMac9,1",
|
"iMac9,1",
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyHID = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBook6,1",
|
|
||||||
"MacBook7,1",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookAir3,1",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"Macmini3,1",
|
|
||||||
"Macmini4,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"iMac10,1",
|
|
||||||
"MacPro3,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
NVMePatch = ["MacPro3,1", "MacPro4,1", "Xserve3,1", "Dortania1,1"]
|
NVMePatch = ["MacPro3,1", "MacPro4,1", "Xserve3,1", "Dortania1,1"]
|
||||||
|
|
||||||
XhciSupport = [
|
|
||||||
"MacBookAir5,1",
|
|
||||||
"MacBookAir5,2",
|
|
||||||
"MacBookAir6,1",
|
|
||||||
"MacBookAir6,2",
|
|
||||||
"MacBookAir7,1",
|
|
||||||
"MacBookAir7,2",
|
|
||||||
"MacBookPro9,1",
|
|
||||||
"MacBookPro9,2",
|
|
||||||
"MacBookPro10,1",
|
|
||||||
"MacBookPro10,2",
|
|
||||||
"MacBookPro11,1",
|
|
||||||
"MacBookPro11,2",
|
|
||||||
"MacBookPro11,3",
|
|
||||||
"MacBookPro11,4",
|
|
||||||
"MacBookPro11,5",
|
|
||||||
"MacBookPro12,1",
|
|
||||||
"Macmini6,1",
|
|
||||||
"Macmini6,2",
|
|
||||||
"Macmini7,1",
|
|
||||||
"iMac13,1",
|
|
||||||
"iMac13,2",
|
|
||||||
"iMac13,3",
|
|
||||||
"iMac14,1",
|
|
||||||
"iMac14,2",
|
|
||||||
"iMac14,3",
|
|
||||||
"iMac15,1",
|
|
||||||
"iMac16,1",
|
|
||||||
"iMac16,2",
|
|
||||||
"MacPro6,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
FeatureUnlockSupport = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBook6,1",
|
|
||||||
"MacBook7,1",
|
|
||||||
"MacBook8,1",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookAir3,1",
|
|
||||||
"MacBookAir3,2",
|
|
||||||
"MacBookAir4,1",
|
|
||||||
"MacBookAir4,2",
|
|
||||||
"MacBookAir5,1",
|
|
||||||
"MacBookAir5,2",
|
|
||||||
"MacBookAir6,1",
|
|
||||||
"MacBookAir6,2",
|
|
||||||
"MacBookAir7,1",
|
|
||||||
"MacBookAir7,2",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro6,1",
|
|
||||||
"MacBookPro6,2",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"MacBookPro8,1",
|
|
||||||
"MacBookPro8,2",
|
|
||||||
"MacBookPro8,3",
|
|
||||||
"MacBookPro9,1",
|
|
||||||
"MacBookPro9,2",
|
|
||||||
"MacBookPro10,1",
|
|
||||||
"MacBookPro10,2",
|
|
||||||
"MacBookPro11,1",
|
|
||||||
"MacBookPro11,2",
|
|
||||||
"MacBookPro11,3",
|
|
||||||
"MacBookPro11,4",
|
|
||||||
"MacBookPro11,5",
|
|
||||||
"MacBookPro12,1",
|
|
||||||
"MacBookPro13,1",
|
|
||||||
"MacBookPro13,2",
|
|
||||||
"MacBookPro13,3",
|
|
||||||
"MacBookPro14,1",
|
|
||||||
"MacBookPro14,2",
|
|
||||||
"MacBookPro14,3",
|
|
||||||
"Macmini3,1",
|
|
||||||
"Macmini4,1",
|
|
||||||
"Macmini5,1",
|
|
||||||
"Macmini5,2",
|
|
||||||
"Macmini5,3",
|
|
||||||
"Macmini6,1",
|
|
||||||
"Macmini6,2",
|
|
||||||
"Macmini7,1",
|
|
||||||
"Macmini8,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"iMac10,1",
|
|
||||||
"iMac11,1",
|
|
||||||
"iMac11,2",
|
|
||||||
"iMac11,3",
|
|
||||||
"iMac12,1",
|
|
||||||
"iMac12,2",
|
|
||||||
"iMac13,1",
|
|
||||||
"iMac13,2",
|
|
||||||
"iMac13,3",
|
|
||||||
"iMac14,1",
|
|
||||||
"iMac14,2",
|
|
||||||
"iMac14,3",
|
|
||||||
"iMac15,1",
|
|
||||||
"iMac16,1",
|
|
||||||
"iMac16,2",
|
|
||||||
"iMac17,1",
|
|
||||||
"iMac18,1",
|
|
||||||
"iMac18,2",
|
|
||||||
"iMac18,3",
|
|
||||||
"MacPro3,1",
|
|
||||||
"MacPro4,1",
|
|
||||||
"MacPro5,1",
|
|
||||||
"MacPro6,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
DualGPUPatch = [
|
DualGPUPatch = [
|
||||||
"MacBookPro5,1",
|
"MacBookPro5,1",
|
||||||
"MacBookPro5,2",
|
"MacBookPro5,2",
|
||||||
@@ -653,15 +428,6 @@ iMac_iGPU = ["iMac13,1", "iMac13,3", "iMac14,1", "iMac14,4"]
|
|||||||
# Mac Pro and Xserve
|
# Mac Pro and Xserve
|
||||||
MacPro = ["MacPro3,1", "MacPro4,1", "MacPro5,1", "Xserve2,1", "Xserve3,1", "Dortania1,1"]
|
MacPro = ["MacPro3,1", "MacPro4,1", "MacPro5,1", "Xserve2,1", "Xserve3,1", "Dortania1,1"]
|
||||||
|
|
||||||
UGAtoGOP = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"MacPro3,1",
|
|
||||||
"Xserve2,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
SATAPatch = [
|
SATAPatch = [
|
||||||
"MacBook4,1",
|
"MacBook4,1",
|
||||||
"MacBook5,1",
|
"MacBook5,1",
|
||||||
@@ -709,82 +475,6 @@ SATAPatch = [
|
|||||||
"Dortania1,1",
|
"Dortania1,1",
|
||||||
]
|
]
|
||||||
|
|
||||||
NoAPFSsupport = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"Macmini3,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"MacPro3,1",
|
|
||||||
"MacPro4,1",
|
|
||||||
"Xserve2,1",
|
|
||||||
"Xserve3,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
NoExFat = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBook6,1",
|
|
||||||
"MacBook7,1",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro6,1",
|
|
||||||
"MacBookPro6,2",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"Macmini3,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"iMac10,1",
|
|
||||||
"iMac11,1",
|
|
||||||
"MacPro3,1",
|
|
||||||
"MacPro4,1",
|
|
||||||
"MacPro5,1",
|
|
||||||
"Xserve2,1",
|
|
||||||
"Xserve3,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
windows_audio = [
|
|
||||||
"MacBookAir4,1",
|
|
||||||
"MacBookAir4,2",
|
|
||||||
"MacBookAir5,1",
|
|
||||||
"MacBookAir5,2",
|
|
||||||
"MacBookPro8,1",
|
|
||||||
"MacBookPro8,2",
|
|
||||||
"MacBookPro8,3",
|
|
||||||
"MacBookPro9,1",
|
|
||||||
"MacBookPro9,2",
|
|
||||||
"MacBookPro10,1",
|
|
||||||
"MacBookPro10,2",
|
|
||||||
"Macmini5,1",
|
|
||||||
"Macmini5,2",
|
|
||||||
"Macmini5,3",
|
|
||||||
"Macmini6,1",
|
|
||||||
"Macmini6,2",
|
|
||||||
"iMac12,1",
|
|
||||||
"iMac12,2",
|
|
||||||
"iMac13,1",
|
|
||||||
"iMac13,2",
|
|
||||||
"iMac13,3",
|
|
||||||
]
|
|
||||||
|
|
||||||
NoAGPMSupport = ["MacBook4,1", "MacBookPro4,1", "iMac7,1", "iMac8,1", "MacPro3,1", "Xserve2,1", "Dortania1,1"]
|
NoAGPMSupport = ["MacBook4,1", "MacBookPro4,1", "iMac7,1", "iMac8,1", "MacPro3,1", "Xserve2,1", "Dortania1,1"]
|
||||||
|
|
||||||
AGDPSupport = [
|
AGDPSupport = [
|
||||||
@@ -819,39 +509,6 @@ NoFireWireSupport = [
|
|||||||
"MacBookAir3,2",
|
"MacBookAir3,2",
|
||||||
]
|
]
|
||||||
|
|
||||||
PCIRaceCondition = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBook6,1",
|
|
||||||
"MacBook7,1",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookAir3,1",
|
|
||||||
"MacBookAir3,2",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro6,1",
|
|
||||||
"MacBookPro6,2",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"Macmini3,1",
|
|
||||||
"Macmini4,1",
|
|
||||||
"iMac7,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"iMac10,1",
|
|
||||||
"iMac11,1",
|
|
||||||
"iMac11,2",
|
|
||||||
"iMac11,3",
|
|
||||||
"MacPro3,1",
|
|
||||||
"MacPro4,1",
|
|
||||||
"MacPro5,1",
|
|
||||||
"Dortania1,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
# Thunderbolt 1 Macs
|
# Thunderbolt 1 Macs
|
||||||
Thunderbolt_1 = [
|
Thunderbolt_1 = [
|
||||||
"MacBookAir4,1",
|
"MacBookAir4,1",
|
||||||
@@ -974,95 +631,3 @@ Missing_USB_Map = [
|
|||||||
"XServe2,1",
|
"XServe2,1",
|
||||||
"XServe3,1",
|
"XServe3,1",
|
||||||
]
|
]
|
||||||
|
|
||||||
dGPU_switch = [
|
|
||||||
# Allows iGPU and dGPU switching in Windows
|
|
||||||
"MacBookPro8,2",
|
|
||||||
"MacBookPro8,3",
|
|
||||||
"MacBookPro9,1",
|
|
||||||
"MacBookPro10,1",
|
|
||||||
"MacBookPro11,3",
|
|
||||||
"MacBookPro11,5",
|
|
||||||
"MacBookPro13,3",
|
|
||||||
"MacBookPro14,3",
|
|
||||||
"MacBookPro15,1",
|
|
||||||
"MacBookPro15,3",
|
|
||||||
"MacBookPro16,1",
|
|
||||||
"MacBookPro16,4",
|
|
||||||
]
|
|
||||||
|
|
||||||
Bluetooth_BRCM2046 = [
|
|
||||||
"MacBook4,1",
|
|
||||||
"MacBook5,1",
|
|
||||||
"MacBook5,2",
|
|
||||||
"MacBookAir2,1",
|
|
||||||
"MacBookAir3,1",
|
|
||||||
"MacBookAir3,2",
|
|
||||||
"MacBookPro4,1",
|
|
||||||
"MacBookPro5,1",
|
|
||||||
"MacBookPro5,2",
|
|
||||||
"MacBookPro5,3",
|
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro7,1",
|
|
||||||
"Macmini3,1",
|
|
||||||
"iMac8,1",
|
|
||||||
"iMac9,1",
|
|
||||||
"iMac10,1",
|
|
||||||
"iMac11,1",
|
|
||||||
"iMac11,2",
|
|
||||||
"iMac11,3",
|
|
||||||
"iMac12,1",
|
|
||||||
"iMac12,2",
|
|
||||||
"MacPro4,1",
|
|
||||||
"MacPro5,1",
|
|
||||||
]
|
|
||||||
|
|
||||||
Bluetooth_BRCM2070 = [
|
|
||||||
"MacBook6,1",
|
|
||||||
"MacBook7,1",
|
|
||||||
"MacBookAir4,1",
|
|
||||||
"MacBookAir4,2",
|
|
||||||
"MacBookPro6,1",
|
|
||||||
"MacBookPro6,2",
|
|
||||||
"MacBookPro8,1",
|
|
||||||
"MacBookPro8,2",
|
|
||||||
"MacBookPro8,3",
|
|
||||||
"Macmini4,1",
|
|
||||||
"Macmini5,1",
|
|
||||||
"Macmini5,2",
|
|
||||||
"Macmini5,3",
|
|
||||||
]
|
|
||||||
|
|
||||||
Bluetooth_BRCM20702_v1 = [
|
|
||||||
"MacBookAir5,1",
|
|
||||||
"MacBookAir5,2",
|
|
||||||
"MacBookPro9,1",
|
|
||||||
"MacBookPro9,2",
|
|
||||||
"MacBookPro10,1",
|
|
||||||
"MacBookPro10,2",
|
|
||||||
"Macmini6,1",
|
|
||||||
"Macmini6,2",
|
|
||||||
"iMac13,1",
|
|
||||||
"iMac13,2",
|
|
||||||
"iMac13,3",
|
|
||||||
]
|
|
||||||
|
|
||||||
T2_Models = [
|
|
||||||
"MacBookAir8,1",
|
|
||||||
"MacBookAir8,2",
|
|
||||||
"MacBookAir9,1",
|
|
||||||
"MacBookPro15,1",
|
|
||||||
"MacBookPro15,2",
|
|
||||||
"MacBookPro15,3",
|
|
||||||
"MacBookPro15,4",
|
|
||||||
"MacBookPro16,1",
|
|
||||||
"MacBookPro16,2",
|
|
||||||
"MacBookPro16,3",
|
|
||||||
"MacBookPro16,4",
|
|
||||||
"Macmini8,1",
|
|
||||||
"iMac20,1",
|
|
||||||
"iMac20,2",
|
|
||||||
"iMacPro1,1",
|
|
||||||
"MacPro7,1",
|
|
||||||
]
|
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
FirmwareFeatures = {
|
|
||||||
"iMac7,1": "0xC0001407",
|
|
||||||
"iMac8,1": "0xC0001403",
|
|
||||||
"iMac9,1": "0xC0001403",
|
|
||||||
"iMac10,1": "0xE00DE137",
|
|
||||||
"iMac11,1": "0xE00DE137",
|
|
||||||
"iMac11,2": "0xC00C9423",
|
|
||||||
"iMac11,3": "0xE00DE137",
|
|
||||||
"iMac12,1": "0xE00DE137",
|
|
||||||
"iMac12,2": "0xE00DE137",
|
|
||||||
"iMac13,1": "0xE00DE137",
|
|
||||||
"iMac13,2": "0xE00DE137",
|
|
||||||
"iMac13,3": "0xE00DE137",
|
|
||||||
"iMac14,1": "0xFB0FF577",
|
|
||||||
"iMac14,2": "0xE00FE137",
|
|
||||||
"iMac14,3": "0xE00FE137",
|
|
||||||
"iMac14,4": "0xF00FE137",
|
|
||||||
"iMac15,1": "0xF80FE137",
|
|
||||||
"iMac16,1": "0xFC0FE137",
|
|
||||||
"iMac16,2": "0xFC0FE137",
|
|
||||||
"iMac17,1": "0xFC0FE137",
|
|
||||||
"iMac18,1": "0xFD0FF576",
|
|
||||||
"iMac18,2": "0xFD0FF576",
|
|
||||||
"iMac18,3": "0xFD0FF576",
|
|
||||||
"iMac19,1": "0xFD8FF576",
|
|
||||||
"iMac19,2": "0xFD8FF576",
|
|
||||||
"iMac20,1": "0xFD8FF576",
|
|
||||||
"iMac20,2": "0xFD8FF576",
|
|
||||||
"iMacPro1,1": "0xFD8FF53E",
|
|
||||||
"MacBook3,1": "0xC0001407",
|
|
||||||
"MacBook4,1": "0xC0001403",
|
|
||||||
"MacBook5,1": "0xC0001403",
|
|
||||||
"MacBook5,2": "0xC0001403",
|
|
||||||
"MacBook6,1": "0xFC0FE13F",
|
|
||||||
"MacBook7,1": "0xFC0FE13F",
|
|
||||||
"MacBook8,1": "0xFC0FE13F",
|
|
||||||
"MacBook9,1": "0xFC0FE13F",
|
|
||||||
"MacBook10,1": "0xFC0FE13F",
|
|
||||||
"MacBookAir1,1": "0xC0001403",
|
|
||||||
"MacBookAir2,1": "0xC0001403",
|
|
||||||
"MacBookAir3,1": "0xD00DE137",
|
|
||||||
"MacBookAir3,2": "0xD00DE137",
|
|
||||||
"MacBookAir4,1": "0xD00DE137",
|
|
||||||
"MacBookAir4,2": "0xD00DE137",
|
|
||||||
"MacBookAir5,1": "0xE00DE137",
|
|
||||||
"MacBookAir5,2": "0xE00DE137",
|
|
||||||
"MacBookAir6,1": "0xE00FE137",
|
|
||||||
"MacBookAir6,2": "0xE00FE137",
|
|
||||||
"MacBookAir7,1": "0xFF0FF576",
|
|
||||||
"MacBookAir7,2": "0xFF0FF576",
|
|
||||||
"MacBookAir8,1": "0xFD8FF42E",
|
|
||||||
"MacBookAir8,2": "0xFD8FF42E",
|
|
||||||
"MacBookAir9,1": "0xFFAFF06E",
|
|
||||||
"MacBookPro3,1": "0xC0001407",
|
|
||||||
"MacBookPro4,1": "0xC0001403",
|
|
||||||
"MacBookPro5,1": "0xC0001403",
|
|
||||||
"MacBookPro5,2": "0xC0001403",
|
|
||||||
"MacBookPro5,3": "0xC0001403",
|
|
||||||
"MacBookPro5,4": "0xC0001403",
|
|
||||||
"MacBookPro5,5": "0xC0001403",
|
|
||||||
"MacBookPro6,1": "0xC00DE137",
|
|
||||||
"MacBookPro6,2": "0xC00DE137",
|
|
||||||
"MacBookPro7,1": "0xC00DE137",
|
|
||||||
"MacBookPro8,1": "0xC00DE137",
|
|
||||||
"MacBookPro8,2": "0xC00DE137",
|
|
||||||
"MacBookPro8,3": "0xC00DE137",
|
|
||||||
"MacBookPro9,1": "0xC00DE137",
|
|
||||||
"MacBookPro9,2": "0xC10DF577",
|
|
||||||
"MacBookPro10,1": "0xE00DE137",
|
|
||||||
"MacBookPro10,2": "0xE00DE137",
|
|
||||||
"MacBookPro11,1": "0xEB0FF577",
|
|
||||||
"MacBookPro11,2": "0xEB0FF577",
|
|
||||||
"MacBookPro11,3": "0xEB0FF577",
|
|
||||||
"MacBookPro11,4": "0xEB0FF577",
|
|
||||||
"MacBookPro11,5": "0xEB0FF577",
|
|
||||||
"MacBookPro12,1": "0xFD0FF576",
|
|
||||||
"MacBookPro13,1": "0xFC0FE137",
|
|
||||||
"MacBookPro13,2": "0xFC0FE137",
|
|
||||||
"MacBookPro13,3": "0xFC0FE137",
|
|
||||||
"MacBookPro14,1": "0xFF0FF57E",
|
|
||||||
"MacBookPro14,2": "0xFF0FF57E",
|
|
||||||
"MacBookPro14,3": "0xFF0FF57E",
|
|
||||||
"MacBookPro15,1": "0xFD8FF426",
|
|
||||||
"MacBookPro15,2": "0xFD8FF426",
|
|
||||||
"MacBookPro15,3": "0xFD8FF426",
|
|
||||||
"MacBookPro15,4": "0xFD8FF426",
|
|
||||||
"MacBookPro16,1": "0xFDAFF066",
|
|
||||||
"MacBookPro16,2": "0xFFAFF06E",
|
|
||||||
"MacBookPro16,3": "0xFDAFF066",
|
|
||||||
"MacBookPro16,4": "0xFDAFF066",
|
|
||||||
"Macmini3,1": "0xC0001403",
|
|
||||||
"Macmini4,1": "0xC00C9423",
|
|
||||||
"Macmini5,1": "0xD00DE137",
|
|
||||||
"Macmini5,2": "0xD00DE137",
|
|
||||||
"Macmini5,3": "0xD00DE137",
|
|
||||||
"Macmini6,1": "0xE00DE137",
|
|
||||||
"Macmini6,2": "0xE00DE137",
|
|
||||||
"Macmini7,1": "0xE00DE137",
|
|
||||||
"Macmini8,1": "0xFD8FF466",
|
|
||||||
"MacPro1,1": "0x80000015",
|
|
||||||
"MacPro2,1": "0xC0000015",
|
|
||||||
"MacPro3,1": "0xC0001403",
|
|
||||||
"MacPro4,1": "0xE001F537",
|
|
||||||
"MacPro5,1": "0xE80FE137",
|
|
||||||
"MacPro6,1": "0xE90FF576",
|
|
||||||
"MacPro7,1": "0xFDAFF066",
|
|
||||||
"Xserve2,1": "0xC0001403",
|
|
||||||
"Xserve3,1": "0xE001F537",
|
|
||||||
"Dortania1,1": "0xFDAFF066",
|
|
||||||
}
|
|
||||||
@@ -12,6 +12,7 @@ import zipfile
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from Resources import Constants, device_probe, ModelArray, SysPatchArray, Utilities
|
from Resources import Constants, device_probe, ModelArray, SysPatchArray, Utilities
|
||||||
|
from Data import sip_data
|
||||||
|
|
||||||
|
|
||||||
class PatchSysVolume:
|
class PatchSysVolume:
|
||||||
@@ -758,8 +759,8 @@ set million colour before rebooting"""
|
|||||||
)
|
)
|
||||||
|
|
||||||
def verify_patch_allowed(self):
|
def verify_patch_allowed(self):
|
||||||
sip = self.constants.root_patch_sip_big_sur if self.constants.detected_os > self.constants.catalina else self.constants.root_patch_sip_mojave
|
sip = sip_data.system_integrity_protection.root_patch_sip_big_sur if self.constants.detected_os > self.constants.catalina else sip_data.system_integrity_protection.root_patch_sip_mojave
|
||||||
if sip == self.constants.root_patch_sip_mojave:
|
if sip == sip_data.system_integrity_protection.root_patch_sip_mojave:
|
||||||
sip_value = "For Hackintoshes, please set csr-active-config to '03060000' (0x603)\nFor non-OpenCore Macs, please run 'csrutil disable' in RecoveryOS"
|
sip_value = "For Hackintoshes, please set csr-active-config to '03060000' (0x603)\nFor non-OpenCore Macs, please run 'csrutil disable' in RecoveryOS"
|
||||||
else:
|
else:
|
||||||
sip_value = (
|
sip_value = (
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ except ImportError:
|
|||||||
raise Exception("Missing requests library!\nPlease run the following before starting OCLP:\npip3 install requests")
|
raise Exception("Missing requests library!\nPlease run the following before starting OCLP:\npip3 install requests")
|
||||||
|
|
||||||
from Resources import Constants, ioreg, device_probe
|
from Resources import Constants, ioreg, device_probe
|
||||||
|
from Data import sip_data
|
||||||
|
|
||||||
|
|
||||||
def hexswap(input_hex: str):
|
def hexswap(input_hex: str):
|
||||||
@@ -120,13 +121,13 @@ def csr_decode(csr_active_config, os_sip):
|
|||||||
csr_active_config = b"\x00\x00\x00\x00"
|
csr_active_config = b"\x00\x00\x00\x00"
|
||||||
sip_int = int.from_bytes(csr_active_config, byteorder="little")
|
sip_int = int.from_bytes(csr_active_config, byteorder="little")
|
||||||
i = 0
|
i = 0
|
||||||
for current_sip_bit in Constants.Constants.csr_values:
|
for current_sip_bit in sip_data.system_integrity_protection.csr_values:
|
||||||
if sip_int & (1 << i):
|
if sip_int & (1 << i):
|
||||||
Constants.Constants.csr_values[current_sip_bit] = True
|
sip_data.system_integrity_protection.csr_values[current_sip_bit] = True
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
|
||||||
# Can be adjusted to whatever OS needs patching
|
# Can be adjusted to whatever OS needs patching
|
||||||
sip_needs_change = all(Constants.Constants.csr_values[i] for i in os_sip)
|
sip_needs_change = all(sip_data.system_integrity_protection.csr_values[i] for i in os_sip)
|
||||||
if sip_needs_change is True:
|
if sip_needs_change is True:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
|||||||
+28
-24
@@ -10,7 +10,8 @@ import subprocess
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import Any, ClassVar, Optional, Type, Union
|
from typing import Any, ClassVar, Optional, Type, Union
|
||||||
|
|
||||||
from Resources import PCIIDArray, Utilities, ioreg
|
from Resources import Utilities, ioreg
|
||||||
|
from Data import pci_data
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -168,11 +169,11 @@ class NVIDIA(GPU):
|
|||||||
|
|
||||||
def detect_arch(self):
|
def detect_arch(self):
|
||||||
# G80/G80GL
|
# G80/G80GL
|
||||||
if self.device_id in PCIIDArray.nvidia_ids.tesla_ids:
|
if self.device_id in pci_data.nvidia_ids.tesla_ids:
|
||||||
self.arch = NVIDIA.Archs.Tesla
|
self.arch = NVIDIA.Archs.Tesla
|
||||||
elif self.device_id in PCIIDArray.nvidia_ids.fermi_ids:
|
elif self.device_id in pci_data.nvidia_ids.fermi_ids:
|
||||||
self.arch = NVIDIA.Archs.Fermi
|
self.arch = NVIDIA.Archs.Fermi
|
||||||
elif self.device_id in PCIIDArray.nvidia_ids.kepler_ids:
|
elif self.device_id in pci_data.nvidia_ids.kepler_ids:
|
||||||
self.arch = NVIDIA.Archs.Kepler
|
self.arch = NVIDIA.Archs.Kepler
|
||||||
else:
|
else:
|
||||||
self.arch = NVIDIA.Archs.Unknown
|
self.arch = NVIDIA.Archs.Unknown
|
||||||
@@ -195,17 +196,17 @@ class AMD(GPU):
|
|||||||
arch: Archs = field(init=False)
|
arch: Archs = field(init=False)
|
||||||
|
|
||||||
def detect_arch(self):
|
def detect_arch(self):
|
||||||
if self.device_id in PCIIDArray.amd_ids.legacy_gcn_ids:
|
if self.device_id in pci_data.amd_ids.legacy_gcn_ids:
|
||||||
self.arch = AMD.Archs.Legacy_GCN
|
self.arch = AMD.Archs.Legacy_GCN
|
||||||
elif self.device_id in PCIIDArray.amd_ids.terascale_1_ids:
|
elif self.device_id in pci_data.amd_ids.terascale_1_ids:
|
||||||
self.arch = AMD.Archs.TeraScale_1
|
self.arch = AMD.Archs.TeraScale_1
|
||||||
elif self.device_id in PCIIDArray.amd_ids.terascale_2_ids:
|
elif self.device_id in pci_data.amd_ids.terascale_2_ids:
|
||||||
self.arch = AMD.Archs.TeraScale_2
|
self.arch = AMD.Archs.TeraScale_2
|
||||||
elif self.device_id in PCIIDArray.amd_ids.polaris_ids:
|
elif self.device_id in pci_data.amd_ids.polaris_ids:
|
||||||
self.arch = AMD.Archs.Polaris
|
self.arch = AMD.Archs.Polaris
|
||||||
elif self.device_id in PCIIDArray.amd_ids.vega_ids:
|
elif self.device_id in pci_data.amd_ids.vega_ids:
|
||||||
self.arch = AMD.Archs.Vega
|
self.arch = AMD.Archs.Vega
|
||||||
elif self.device_id in PCIIDArray.amd_ids.navi_ids:
|
elif self.device_id in pci_data.amd_ids.navi_ids:
|
||||||
self.arch = AMD.Archs.Navi
|
self.arch = AMD.Archs.Navi
|
||||||
else:
|
else:
|
||||||
self.arch = AMD.Archs.Unknown
|
self.arch = AMD.Archs.Unknown
|
||||||
@@ -231,23 +232,23 @@ class Intel(GPU):
|
|||||||
arch: Archs = field(init=False)
|
arch: Archs = field(init=False)
|
||||||
|
|
||||||
def detect_arch(self):
|
def detect_arch(self):
|
||||||
if self.device_id in PCIIDArray.intel_ids.iron_ids:
|
if self.device_id in pci_data.intel_ids.iron_ids:
|
||||||
self.arch = Intel.Archs.Iron_Lake
|
self.arch = Intel.Archs.Iron_Lake
|
||||||
elif self.device_id in PCIIDArray.intel_ids.sandy_ids:
|
elif self.device_id in pci_data.intel_ids.sandy_ids:
|
||||||
self.arch = Intel.Archs.Sandy_Bridge
|
self.arch = Intel.Archs.Sandy_Bridge
|
||||||
elif self.device_id in PCIIDArray.intel_ids.ivy_ids:
|
elif self.device_id in pci_data.intel_ids.ivy_ids:
|
||||||
self.arch = Intel.Archs.Ivy_Bridge
|
self.arch = Intel.Archs.Ivy_Bridge
|
||||||
elif self.device_id in PCIIDArray.intel_ids.haswell_ids:
|
elif self.device_id in pci_data.intel_ids.haswell_ids:
|
||||||
self.arch = Intel.Archs.Haswell
|
self.arch = Intel.Archs.Haswell
|
||||||
elif self.device_id in PCIIDArray.intel_ids.broadwell_ids:
|
elif self.device_id in pci_data.intel_ids.broadwell_ids:
|
||||||
self.arch = Intel.Archs.Broadwell
|
self.arch = Intel.Archs.Broadwell
|
||||||
elif self.device_id in PCIIDArray.intel_ids.skylake_ids:
|
elif self.device_id in pci_data.intel_ids.skylake_ids:
|
||||||
self.arch = Intel.Archs.Skylake
|
self.arch = Intel.Archs.Skylake
|
||||||
elif self.device_id in PCIIDArray.intel_ids.kaby_lake_ids:
|
elif self.device_id in pci_data.intel_ids.kaby_lake_ids:
|
||||||
self.arch = Intel.Archs.Kaby_Lake
|
self.arch = Intel.Archs.Kaby_Lake
|
||||||
elif self.device_id in PCIIDArray.intel_ids.coffee_lake_ids:
|
elif self.device_id in pci_data.intel_ids.coffee_lake_ids:
|
||||||
self.arch = Intel.Archs.Coffee_Lake
|
self.arch = Intel.Archs.Coffee_Lake
|
||||||
elif self.device_id in PCIIDArray.intel_ids.ice_lake_ids:
|
elif self.device_id in pci_data.intel_ids.ice_lake_ids:
|
||||||
self.arch = Intel.Archs.Ice_Lake
|
self.arch = Intel.Archs.Ice_Lake
|
||||||
else:
|
else:
|
||||||
self.arch = Intel.Archs.Unknown
|
self.arch = Intel.Archs.Unknown
|
||||||
@@ -259,6 +260,7 @@ class Broadcom(WirelessCard):
|
|||||||
|
|
||||||
class Chipsets(enum.Enum):
|
class Chipsets(enum.Enum):
|
||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
|
AppleBCMWLANBusInterfacePCIe = "AppleBCMWLANBusInterfacePCIe supported"
|
||||||
AirportBrcmNIC = "AirportBrcmNIC supported"
|
AirportBrcmNIC = "AirportBrcmNIC supported"
|
||||||
AirPortBrcm4360 = "AirPortBrcm4360 supported"
|
AirPortBrcm4360 = "AirPortBrcm4360 supported"
|
||||||
AirPortBrcm4331 = "AirPortBrcm4331 supported"
|
AirPortBrcm4331 = "AirPortBrcm4331 supported"
|
||||||
@@ -268,13 +270,15 @@ class Broadcom(WirelessCard):
|
|||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
if self.device_id in PCIIDArray.broadcom_ids.AirPortBrcmNIC:
|
if self.device_id in pci_data.broadcom_ids.AppleBCMWLANBusInterfacePCIe:
|
||||||
|
self.chipset = Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe
|
||||||
|
elif self.device_id in pci_data.broadcom_ids.AirPortBrcmNIC:
|
||||||
self.chipset = Broadcom.Chipsets.AirportBrcmNIC
|
self.chipset = Broadcom.Chipsets.AirportBrcmNIC
|
||||||
elif self.device_id in PCIIDArray.broadcom_ids.AirPortBrcm4360:
|
elif self.device_id in pci_data.broadcom_ids.AirPortBrcm4360:
|
||||||
self.chipset = Broadcom.Chipsets.AirPortBrcm4360
|
self.chipset = Broadcom.Chipsets.AirPortBrcm4360
|
||||||
elif self.device_id in PCIIDArray.broadcom_ids.AirPortBrcm4331:
|
elif self.device_id in pci_data.broadcom_ids.AirPortBrcm4331:
|
||||||
self.chipset = Broadcom.Chipsets.AirPortBrcm4331
|
self.chipset = Broadcom.Chipsets.AirPortBrcm4331
|
||||||
elif self.device_id in PCIIDArray.broadcom_ids.AppleAirPortBrcm43224:
|
elif self.device_id in pci_data.broadcom_ids.AppleAirPortBrcm43224:
|
||||||
self.chipset = Broadcom.Chipsets.AirPortBrcm43224
|
self.chipset = Broadcom.Chipsets.AirPortBrcm43224
|
||||||
else:
|
else:
|
||||||
self.chipset = Broadcom.Chipsets.Unknown
|
self.chipset = Broadcom.Chipsets.Unknown
|
||||||
@@ -293,7 +297,7 @@ class Atheros(WirelessCard):
|
|||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
if self.device_id in PCIIDArray.atheros_ids.AtherosWifi:
|
if self.device_id in pci_data.atheros_ids.AtherosWifi:
|
||||||
self.chipset = Atheros.Chipsets.AirPortAtheros40
|
self.chipset = Atheros.Chipsets.AirPortAtheros40
|
||||||
else:
|
else:
|
||||||
self.chipset = Atheros.Chipsets.Unknown
|
self.chipset = Atheros.Chipsets.Unknown
|
||||||
|
|||||||
Reference in New Issue
Block a user