Refactor SMBIOS table

This commit is contained in:
Mykola Grymalyuk
2021-10-01 00:04:55 -06:00
parent 06824e6757
commit d563011c72
14 changed files with 1546 additions and 780 deletions

View File

@@ -29,6 +29,7 @@
- PatcherSupportPkg 0.1.5 release
- RestrictEvents 1.0.5 rolling (2430ed0)
- Limit MacBookPro6,2 G State
- Works around crashing when switching GPUs
- Fix OTA updates on T2 SMBIOS
## 0.2.5

11
Data/bluetooth_data.py Normal file
View File

@@ -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

15
Data/cpu_data.py Normal file
View File

@@ -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

16
Data/os_data.py Normal file
View File

@@ -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

View File

@@ -1,6 +1,4 @@
# Array of Device IDs for different devices
class nvidia_ids:
# Courteous of envytools as well as Macrumors:
# https://envytools.readthedocs.io/en/latest/hw/pciid.html
@@ -850,6 +848,13 @@ class intel_ids:
class broadcom_ids:
AppleBCMWLANBusInterfacePCIe = [
0x43DC,
0x4464,
0x4488,
0x4425,
]
AirPortBrcmNIC = [
# AirPortBrcmNIC IDs
0x43BA, # BCM43602

35
Data/sip_data.py Normal file
View File

@@ -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
Data/smbios_data.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -14,7 +14,8 @@ import ast
from pathlib import Path
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):
@@ -71,9 +72,9 @@ class BuildOpenCore:
firmwarefeature = Utilities.get_rom("firmware-features")
if not firmwarefeature:
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:
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_extended(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),
# CPU patches
("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),
("telemetrap.kext", self.constants.telemetrap_version, self.constants.telemetrap_path, lambda: self.model in ModelArray.MissingSSE42),
("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: smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn),
(
"CPUFriend.kext",
self.constants.cpufriend_version,
@@ -169,9 +170,8 @@ class BuildOpenCore:
# IDE patch
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
# 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),
# ("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"]),
]:
self.enable_kext(name, version, path, check)
@@ -179,14 +179,16 @@ class BuildOpenCore:
if self.constants.allow_oc_everywhere is False:
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
# Forces VMM patch instead
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)
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
# Enable for all systems missing RDRAND support
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 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.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
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)
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("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
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("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
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("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
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)
# 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}"
@@ -334,18 +340,19 @@ class BuildOpenCore:
self.get_kext_by_bundle_path("CPUFriendDataProvider.kext")["Enabled"] = True
# 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")
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.iokit.IOHIDFamily")["Enabled"] = True
# 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")
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)
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/
# Apply to Sandy and Ivy Bridge Macs
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"]["Patch"], "Comment", "BUF0 to BUF1")["Enabled"] = True
@@ -605,32 +612,16 @@ class BuildOpenCore:
print("- Fixing Legacy Bluetooth for macOS Monterey")
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)
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")
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")
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)
# 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:
print("- Enabling NVMe boot support")
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("OpenLinuxBoot.efi", "UEFI", "Drivers")["Enabled"] = True
# 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")
shutil.copy(self.constants.exfat_legacy_driver_path, self.constants.drivers_path)
self.get_efi_binary_by_path("ExFatDxeLegacy.efi", "UEFI", "Drivers")["Enabled"] = True
# 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")
self.config["UEFI"]["Output"]["GopPassThrough"] = "Apple"
except KeyError:
pass
# ThirdPartDrives Check
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:
print("- Adding bootmgfw.efi BlessOverride")
self.config["Misc"]["BlessOverride"] += ["\\EFI\\Microsoft\\Boot\\bootmgfw.efi"]
if self.model in ModelArray.dGPU_switch and self.constants.dGPU_switch is True:
print("- Allowing GMUX switching in Windows")
try:
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
except KeyError:
pass
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)
# 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
print(f"- Using Model ID: {spoofed_model}")
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}")
except KeyError:
spoofed_board = ""

View File

@@ -631,41 +631,6 @@ class Constants:
def legacy_wifi_libexec(self):
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 = [
"j137ap", # iMacPro1,1
"j680ap", # MacBookPro15,1
@@ -695,133 +660,6 @@ class Constants:
"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 = {
"ADP3,2": "J273",
"MacBookAir10,1": "J313",

View File

@@ -71,44 +71,12 @@ SupportedSMBIOS = [
# Xserve
"Xserve2,1",
"Xserve3,1",
"Dortania1,1",
]
# 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"]
pciSSDT = ["MacBookPro6,1", "MacBookPro6,2", "iMac11,1", "iMac11,2", "iMac11,3", "Dortania1,1"]
# Ethernet patches
EthernetNvidia = [
@@ -148,57 +116,6 @@ EthernetBroadcom = [
"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
LegacyAudio = [
@@ -389,150 +306,8 @@ LegacyBrightness = [
"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"]
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 = [
"MacBookPro5,1",
"MacBookPro5,2",
@@ -653,15 +428,6 @@ iMac_iGPU = ["iMac13,1", "iMac13,3", "iMac14,1", "iMac14,4"]
# Mac Pro and Xserve
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 = [
"MacBook4,1",
"MacBook5,1",
@@ -709,82 +475,6 @@ SATAPatch = [
"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"]
AGDPSupport = [
@@ -819,39 +509,6 @@ NoFireWireSupport = [
"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 = [
"MacBookAir4,1",
@@ -973,96 +630,4 @@ Missing_USB_Map = [
"MacPro4,1",
"XServe2,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",
]

View File

@@ -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",
}

View File

@@ -12,6 +12,7 @@ import zipfile
from pathlib import Path
from Resources import Constants, device_probe, ModelArray, SysPatchArray, Utilities
from Data import sip_data
class PatchSysVolume:
@@ -758,8 +759,8 @@ set million colour before rebooting"""
)
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
if sip == 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 == 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"
else:
sip_value = (

View File

@@ -21,6 +21,7 @@ except ImportError:
raise Exception("Missing requests library!\nPlease run the following before starting OCLP:\npip3 install requests")
from Resources import Constants, ioreg, device_probe
from Data import sip_data
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"
sip_int = int.from_bytes(csr_active_config, byteorder="little")
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):
Constants.Constants.csr_values[current_sip_bit] = True
sip_data.system_integrity_protection.csr_values[current_sip_bit] = True
i = i + 1
# 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:
return False
else:

View File

@@ -10,7 +10,8 @@ import subprocess
from dataclasses import dataclass, field
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
@@ -168,11 +169,11 @@ class NVIDIA(GPU):
def detect_arch(self):
# 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
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
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
else:
self.arch = NVIDIA.Archs.Unknown
@@ -195,17 +196,17 @@ class AMD(GPU):
arch: Archs = field(init=False)
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
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
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
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
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
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
else:
self.arch = AMD.Archs.Unknown
@@ -231,23 +232,23 @@ class Intel(GPU):
arch: Archs = field(init=False)
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
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
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
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
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
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
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
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
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
else:
self.arch = Intel.Archs.Unknown
@@ -259,6 +260,7 @@ class Broadcom(WirelessCard):
class Chipsets(enum.Enum):
# pylint: disable=invalid-name
AppleBCMWLANBusInterfacePCIe = "AppleBCMWLANBusInterfacePCIe supported"
AirportBrcmNIC = "AirportBrcmNIC supported"
AirPortBrcm4360 = "AirPortBrcm4360 supported"
AirPortBrcm4331 = "AirPortBrcm4331 supported"
@@ -268,13 +270,15 @@ class Broadcom(WirelessCard):
chipset: Chipsets = field(init=False)
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
elif self.device_id in PCIIDArray.broadcom_ids.AirPortBrcm4360:
elif self.device_id in pci_data.broadcom_ids.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
elif self.device_id in PCIIDArray.broadcom_ids.AppleAirPortBrcm43224:
elif self.device_id in pci_data.broadcom_ids.AppleAirPortBrcm43224:
self.chipset = Broadcom.Chipsets.AirPortBrcm43224
else:
self.chipset = Broadcom.Chipsets.Unknown
@@ -293,7 +297,7 @@ class Atheros(WirelessCard):
chipset: Chipsets = field(init=False)
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
else:
self.chipset = Atheros.Chipsets.Unknown