From d563011c72e737708cfcd258cc8900efe82fb109 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Fri, 1 Oct 2021 00:04:55 -0600 Subject: [PATCH] Refactor SMBIOS table --- CHANGELOG.md | 1 + Data/bluetooth_data.py | 11 + Data/cpu_data.py | 15 + Data/os_data.py | 16 + Resources/PCIIDArray.py => Data/pci_data.py | 9 +- Data/sip_data.py | 35 + Data/smbios_data.py | 1385 +++++++++++++++++++ Resources/Build.py | 83 +- Resources/Constants.py | 162 --- Resources/ModelArray.py | 435 ------ Resources/SMBIOSData.py | 110 -- Resources/SysPatch.py | 5 +- Resources/Utilities.py | 7 +- Resources/device_probe.py | 52 +- 14 files changed, 1546 insertions(+), 780 deletions(-) create mode 100644 Data/bluetooth_data.py create mode 100644 Data/cpu_data.py create mode 100644 Data/os_data.py rename Resources/PCIIDArray.py => Data/pci_data.py (99%) create mode 100644 Data/sip_data.py create mode 100644 Data/smbios_data.py delete mode 100644 Resources/SMBIOSData.py diff --git a/CHANGELOG.md b/CHANGELOG.md index e8ee031c1..03f349827 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Data/bluetooth_data.py b/Data/bluetooth_data.py new file mode 100644 index 000000000..10a1daae3 --- /dev/null +++ b/Data/bluetooth_data.py @@ -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 \ No newline at end of file diff --git a/Data/cpu_data.py b/Data/cpu_data.py new file mode 100644 index 000000000..d372f1103 --- /dev/null +++ b/Data/cpu_data.py @@ -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 diff --git a/Data/os_data.py b/Data/os_data.py new file mode 100644 index 000000000..19ce05dce --- /dev/null +++ b/Data/os_data.py @@ -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 \ No newline at end of file diff --git a/Resources/PCIIDArray.py b/Data/pci_data.py similarity index 99% rename from Resources/PCIIDArray.py rename to Data/pci_data.py index 6974665f4..1c55f0b1b 100644 --- a/Resources/PCIIDArray.py +++ b/Data/pci_data.py @@ -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 diff --git a/Data/sip_data.py b/Data/sip_data.py new file mode 100644 index 000000000..bf8345995 --- /dev/null +++ b/Data/sip_data.py @@ -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 + ] \ No newline at end of file diff --git a/Data/smbios_data.py b/Data/smbios_data.py new file mode 100644 index 000000000..3d3dab86a --- /dev/null +++ b/Data/smbios_data.py @@ -0,0 +1,1385 @@ +# Defines Model Data + +from Resources import device_probe +from Data import cpu_data, os_data, bluetooth_data + +smbios_dictionary = { + "MacBook1,1": { + "Board ID": "Mac-F4208CC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.yonah, + "Max OS Supported": os_data.os_data.snow_leopard, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 13, + "UGA Graphics": True, + + }, + + "MacBook2,1": { + "Board ID": "Mac-F4208CA9", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 13, + "UGA Graphics": True, + }, + + "MacBook3,1": { + "Board ID": "Mac-F22788C8", + "FirmwareFeatures": "0xC0001407", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 13, + "UGA Graphics": True, + }, + + "MacBook4,1": { + "Board ID": "Mac-F22788A9", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + "UGA Graphics": True, + }, + + + "MacBook5,1": { + "Board ID": "Mac-F42D89C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + + "MacBook5,2": { + "Board ID": "Mac-F22788AA", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + + "MacBook6,1": { + "Board ID": "Mac-F22C8AC8", + "FirmwareFeatures": "0xFC0FE13F", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 13, + }, + + + "MacBook7,1": { + "Board ID": "Mac-F22C89C8", + "FirmwareFeatures": "0xFC0FE13F", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 13, + }, + + + "MacBook8,1": { + "Board ID": "Mac-BE0E8AC46FE800CC", + "FirmwareFeatures": "0xFC0FE13F", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.broadwell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 12, + }, + + "MacBook9,1": { + "Board ID": "Mac-9AE82516C7C6B903", + "FirmwareFeatures": "0xFC0FE13F", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.skylake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 12, + }, + + "MacBook10,1": { + "Board ID": "Mac-EE2EBD4B90B839A8", + "FirmwareFeatures": "0xFC0FE13F", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 12, + + }, + + "MacBookAir1,1": { + "Board ID": "Mac-F42C8CC8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + "MacBookAir2,1": { + "Board ID": "Mac-F42D88C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + + "MacBookAir3,1": { + "Board ID": "Mac-942452F5819B1C1B", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 11, + }, + + + "MacBookAir3,2": { + "Board ID": "Mac-942C5DF58193131B", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + + "MacBookAir4,1": { + "Board ID": "Mac-C08A6BB70A942AC2", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 11, + }, + + + "MacBookAir4,2": { + "Board ID": "Mac-742912EFDBEE19B3", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 13, + }, + + + "MacBookAir5,1": { + "Board ID": "Mac-66F35F19FE2A0D05", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + "Screen Size": 11, + }, + + + "MacBookAir5,2": { + "Board ID": "Mac-2E6FAB96566FE58C", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + "Screen Size": 13, + }, + + + "MacBookAir6,1": { + "Board ID": "Mac-35C1E88140C3E6CF", + "FirmwareFeatures": "0xE00FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 11, + }, + + + "MacBookAir6,2": { + "Board ID": "Mac-7DF21CB3ED6977E5", + "FirmwareFeatures": "0xE00FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 13, + }, + + "MacBookAir7,1": { + "Board ID": "Mac-9F18E312C5C2BF0B", + "FirmwareFeatures": "0xFF0FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.broadwell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 11, + }, + + "MacBookAir7,2": { + "Board ID": "Mac-937CB26E2E02BB01", + "FirmwareFeatures": "0xFF0FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.broadwell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 13, + }, + + "MacBookAir8,1": { + "Board ID": "Mac-827FAC58A8FDFA22", + "FirmwareFeatures": "0xFD8FF42E", + "SecureBootModel": "j140kap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookAir8,2": { + "Board ID": "Mac-226CB3C6A851A671", + "FirmwareFeatures": "0xFD8FF42E", + "SecureBootModel": "j140aap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookAir9,1": { + "Board ID": "Mac-0CFF9C7C2B63DF8D", + "FirmwareFeatures": "0xFFAFF06E", + "SecureBootModel": "j230kap", + "CPU Generation": cpu_data.cpu_data.ice_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookPro1,1": { + "Board ID": "Mac-F425BEC8", + "FirmwareFeatures": "", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.yonah, + "Max OS supported": os_data.os_data.snow_leopard, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 15, + "UGA Graphics": True, + }, + + "MacBookPro1,2": { + "Board ID": "Mac-F42DBEC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.yonah, + "Max OS supported": os_data.os_data.snow_leopard, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 17, + "UGA Graphics": True, + }, + + "MacBookPro2,1": { + "Board ID": "Mac-F42189C8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 17, + "UGA Graphics": True, + }, + + "MacBookPro2,2": { + "Board ID": "Mac-F42187C8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 15, + "UGA Graphics": True, + }, + + "MacBookPro3,1": { + "Board ID": "Mac-F4238BC8", + "FirmwareFeatures": "0xC0001407", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "Screen Size": 15, # Shipped with 17 as well + "UGA Graphics": True, + }, + + "MacBookPro4,1": { + "Board ID": "Mac-F42C89C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 15, # Shipped with 17 as well + "Switchable GPUs": True, + "UGA Graphics": True, + }, + + + "MacBookPro5,1": { + "Board ID": "Mac-F42D86C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro5,2": { + "Board ID": "Mac-F2268EC8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 17, + "Switchable GPUs": True, + }, + + + "MacBookPro5,3": { + "Board ID": "Mac-F22587C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro5,4": { + "Board ID": "Mac-F22587A1", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro5,5": { + "Board ID": "Mac-F2268AC8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + + "MacBookPro6,1": { + "Board ID": "Mac-F22589C8", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 17, + "Switchable GPUs": True, + }, + + + "MacBookPro6,2": { + "Board ID": "Mac-F22586C8", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro7,1": { + "Board ID": "Mac-F222BEC8", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "Screen Size": 13, + }, + + + "MacBookPro8,1": { + "Board ID": "Mac-94245B3640C91C81", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 13, + }, + + + "MacBookPro8,2": { + "Board ID": "Mac-94245A3940C91C80", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro8,3": { + "Board ID": "Mac-942459F5819B171B", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + "Screen Size": 17, + "Switchable GPUs": True, + }, + + + "MacBookPro9,1": { + "Board ID": "Mac-4B7AC7E43945597E", + "FirmwareFeatures": "0xC00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro9,2": { + "Board ID": "Mac-6F01561E16C75D06", + "FirmwareFeatures": "0xC10DF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + "Screen Size": 13, + }, + + + "MacBookPro10,1": { + "Board ID": "Mac-C3EC7CD22292981F", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + + "MacBookPro10,2": { + "Board ID": "Mac-AFD8A9D944EA4843", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + "Screen Size": 13, + }, + + + "MacBookPro11,1": { + "Board ID": "Mac-189A3D4F975D5FFC", + "FirmwareFeatures": "0xEB0FF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 13, + }, + + + "MacBookPro11,2": { + "Board ID": "Mac-3CBD00234E554E41", + "FirmwareFeatures": "0xEB0FF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 15, + }, + + + "MacBookPro11,3": { + "Board ID": "Mac-2BD1B31983FE1663", + "FirmwareFeatures": "0xEB0FF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + "MacBookPro11,4": { + "Board ID": "Mac-06F11FD93F0323C5", + "FirmwareFeatures": "0xEB0FF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 15, + }, + + "MacBookPro11,5": { + "Board ID": "Mac-06F11F11946D27C5", + "FirmwareFeatures": "0xEB0FF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + "MacBookPro12,1": { + "Board ID": "Mac-E43C1C25D4880AD6", + "FirmwareFeatures": "0xFD0FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.broadwell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + "Screen Size": 13, + }, + + "MacBookPro13,1": { + "Board ID": "Mac-473D31EABEB93F9B", + "FirmwareFeatures": "0xFC0FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.skylake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 13, + }, + + "MacBookPro13,2": { + "Board ID": "Mac-66E35819EE2D0D05", + "FirmwareFeatures": "0xFC0FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.skylake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 13, + }, + + "MacBookPro13,3": { + "Board ID": "Mac-A5C67F76ED83108C", + "FirmwareFeatures": "0xFC0FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.skylake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + "MacBookPro14,1": { + "Board ID": "Mac-B4831CEBD52A0C4C", + "FirmwareFeatures": "0xFF0FF57E", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 13, + }, + + "MacBookPro14,2": { + "Board ID": "Mac-CAD6701F7CEA0921", + "FirmwareFeatures": "0xFF0FF57E", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 13, + }, + + "MacBookPro14,3": { + "Board ID": "Mac-551B86E5744E2388", + "FirmwareFeatures": "0xFF0FF57E", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703_UART, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + "MacBookPro15,1": { + "Board ID": "Mac-937A206F2EE63C01", + "FirmwareFeatures": "0xFD8FF426", + "SecureBootModel": "j680ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + "MacBookPro15,2": { + "Board ID": "Mac-827FB448E656EC26", + "FirmwareFeatures": "0xFD8FF426", + "SecureBootModel": "j132ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookPro15,3": { + "Board ID": "Mac-1E7E29AD0135F9BC", + "FirmwareFeatures": "0xFD8FF426", + "SecureBootModel": "j780ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 15, + "Switchable GPUs": True, + }, + + "MacBookPro15,4": { + "Board ID": "Mac-53FDB3D8DB8CA971", + "FirmwareFeatures": "0xFD8FF426", + "SecureBootModel": "j213ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookPro16,1": { + "Board ID": "Mac-E1008331FDC96864", + "FirmwareFeatures": "0xFDAFF066", + "SecureBootModel": "j152fap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 16, + "Switchable GPUs": True, + }, + + "MacBookPro16,2": { + "Board ID": "Mac-5F9802EFE386AA28", + "FirmwareFeatures": "0xFFAFF06E", + "SecureBootModel": "j214kap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookPro16,3": { + "Board ID": "Mac-E7203C0F68AA0004", + "FirmwareFeatures": "0xFDAFF066", + "SecureBootModel": "j223ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 13, + }, + + "MacBookPro16,4": { + "Board ID": "Mac-A61BADE1FDAD7B05", + "FirmwareFeatures": "0xFDAFF066", + "SecureBootModel": "j215ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + "Screen Size": 16, + "Switchable GPUs": True, + }, + + "Macmini1,1": { + "Board ID": "Mac-F4208EC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.yonah, + "Max OS supported": os_data.os_data.snow_leopard, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + }, + + "Macmini2,1": { + "Board ID": "Mac-F4208EAA", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + }, + + "Macmini3,1": { + "Board ID": "Mac-F22C86C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "Macmini4,1": { + "Board ID": "Mac-F2208EC8", + "FirmwareFeatures": "0xC00C9423", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + }, + + + "Macmini5,1": { + "Board ID": "Mac-8ED6AF5B48C039E1", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + }, + + + "Macmini5,2": { + "Board ID": "Mac-4BC72D62AD45599E", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + }, + + + "Macmini5,3": { + "Board ID": "Mac-7BA5B2794B2CDB12", + "FirmwareFeatures": "0xD00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2070, + }, + + + "Macmini6,1": { + "Board ID": "Mac-031AEE4D24BFF0B1", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + }, + + + "Macmini6,2": { + "Board ID": "Mac-F65AE981FFA204ED", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + }, + + "Macmini7,1": { + "Board ID": "Mac-35C5E08120C7EEAF", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + "Macmini8,1": { + "Board ID": "Mac-7BA5B2DFE22DDD8C", + "FirmwareFeatures": "0xFD8FF466", + "SecureBootModel": "j174ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "iMac4,1": { + "Board ID": "Mac-F42786C8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.yonah, + "Max OS supported": os_data.os_data.snow_leopard, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "UGA Graphics": True, + }, + + "iMac4,2": { + "Board ID": "Mac-F4218EC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.yonah, + "Max OS supported": os_data.os_data.snow_leopard, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "UGA Graphics": True, + }, + + "iMac5,1": { + "Board ID": "Mac-F4228EC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "UGA Graphics": True, + }, + + "iMac5,2": { + "Board ID": "Mac-F4218EC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "UGA Graphics": True, + }, + + "iMac6,1": { + "Board ID": "Mac-F4218FC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "UGA Graphics": True, + }, + + "iMac7,1": { + "Board ID": "Mac-F42386C8", + "FirmwareFeatures": "0xC0001407", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, # Stock models shipped with Conroe + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "UGA Graphics": True, + }, + + + "iMac8,1": { + "Board ID": "Mac-F227BEC8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + "UGA Graphics": True, + }, + + + "iMac9,1": { + "Board ID": "Mac-F2218FA9", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac10,1": { + "Board ID": "Mac-F221DCC8", + # "Board ID": "Mac-F2268CC8", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac11,1": { + "Board ID": "Mac-F2268DAE", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac11,2": { + "Board ID": "Mac-F2238AC8", + "FirmwareFeatures": "0xC00C9423", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac11,3": { + "Board ID": "Mac-F2238BAE", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac12,1": { + "Board ID": "Mac-942B5BF58194151B", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac12,2": { + "Board ID": "Mac-942B59F58194171B", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.sandy_bridge, + "Max OS supported": os_data.os_data.high_sierra, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "iMac13,1": { + "Board ID": "Mac-00BE6ED71E35EB86", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + }, + + + "iMac13,2": { + "Board ID": "Mac-FC02E91DDD3FA6A4", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + }, + + + "iMac13,3": { + "Board ID": "Mac-7DF2A3B5E5D671ED", + "FirmwareFeatures": "0xE00DE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4360, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v1, + }, + + + "iMac14,1": { + "Board ID": "Mac-031B6874CF7F642A", + "FirmwareFeatures": "0xFB0FF577", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + + "iMac14,2": { + "Board ID": "Mac-27ADBB7B4CEE8E61", + "FirmwareFeatures": "0xE00FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + + "iMac14,3": { + "Board ID": "Mac-77EB7D7DAF985301", + "FirmwareFeatures": "0xE00FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.catalina, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + + "iMac14,4": { + "Board ID": "Mac-81E3E92DD6088272", + "FirmwareFeatures": "0xF00FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + + "iMac15,1": { + "Board ID": "Mac-42FD25EABCABB274", + "FirmwareFeatures": "0xF80FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.haswell, + "Max OS supported": os_data.os_data.big_sur, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + "iMac16,1": { + "Board ID": "Mac-A369DDC4E67F1C45", + "FirmwareFeatures": "0xFC0FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.broadwell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + "iMac16,2": { + "Board ID": "Mac-FFE5EF870D7BA81A", + "FirmwareFeatures": "0xFC0FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.broadwell, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + "iMac17,1": { + "Board ID": "Mac-DB15BD556843C820", + # "Board ID": "Mac-65CE76090165799A", + # "Board ID": "Mac-B809C3757DA9BB8D", + "FirmwareFeatures": "0xFC0FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.skylake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + "iMac18,1": { + "Board ID": "Mac-4B682C642B45593E", + "FirmwareFeatures": "0xFD0FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703, + }, + + "iMac18,2": { + "Board ID": "Mac-77F17D7DA9285301", + "FirmwareFeatures": "0xFD0FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703, + }, + + "iMac18,3": { + "Board ID": "Mac-BE088AF8C5EB4FA2", + "FirmwareFeatures": "0xFD0FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.kaby_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20703, + }, + + "iMac19,1": { + "Board ID": "Mac-AA95B1DDAB278B95", + "FirmwareFeatures": "0xFD8FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "iMac19,2": { + "Board ID": "Mac-63001698E7A34814", + "FirmwareFeatures": "0xFD8FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "iMac20,1": { + "Board ID": "Mac-CFF7D910A743CAAF", + "FirmwareFeatures": "0xFD8FF576", + "SecureBootModel": "j185ap", + "CPU Generation": cpu_data.cpu_data.comet_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "iMac20,2": { + "Board ID": "Mac-AF89B6D9451A490B", + "FirmwareFeatures": "0xFD8FF576", + "SecureBootModel": "j185fap", + "CPU Generation": cpu_data.cpu_data.comet_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "iMacPro1,1": { + "Board ID": "Mac-7BA5B2D9E42DDD94", + "FirmwareFeatures": "0xFD8FF53E", + "SecureBootModel": "j137ap", + "CPU Generation": cpu_data.cpu_data.skylake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "MacPro1,1": { + "Board ID": "Mac-F4208DC8", + "FirmwareFeatures": "0x80000015", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": None, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "UGA Graphics": True, + }, + + "MacPro2,1": { + "Board ID": "Mac-F4208DA9", + "FirmwareFeatures": "0xC0000015", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": None, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "UGA Graphics": True, + }, + + "MacPro3,1": { + "Board ID": "Mac-F42C88C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm43224, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2045, + "UGA Graphics": True, + }, + + + "MacPro4,1": { + "Board ID": "Mac-F221BEC8", + "FirmwareFeatures": "0xE001F537", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": device_probe.Atheros.Chipsets.AirPortAtheros40, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + + "MacPro5,1": { + "Board ID": "Mac-F221BEC8", + "FirmwareFeatures": "0xE80FE137", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.mojave, + "Wireless Model": device_probe.Broadcom.Chipsets.AirPortBrcm4331, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM2046, + }, + + "MacPro6,1": { + "Board ID": "Mac-F60DEB81FF30ACF6", + "FirmwareFeatures": "0xE90FF576", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.ivy_bridge, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AirportBrcmNIC, + "Bluetooth Model": bluetooth_data.bluetooth_data.BRCM20702_v2, + }, + + "MacPro7,1": { + "Board ID": "Mac-27AD2F918AE68F61", + "FirmwareFeatures": "0xFDAFF066", + "SecureBootModel": "j160ap", + "CPU Generation": cpu_data.cpu_data.coffee_lake, + "Max OS supported": None, + "Wireless Model": device_probe.Broadcom.Chipsets.AppleBCMWLANBusInterfacePCIe, + "Bluetooth Model": bluetooth_data.bluetooth_data.UART, + }, + + "Xserve1,1": { + "Board ID": "Mac-F4208AC8", + "FirmwareFeatures": None, + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.conroe, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": None, + "Bluetooth Model": bluetooth_data.bluetooth_data.NonApplicable, + "UGA Graphics": True, + }, + + "Xserve2,1": { + "Board ID": "Mac-F42289C8", + "FirmwareFeatures": "0xC0001403", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.penryn, + "Max OS supported": os_data.os_data.lion, + "Wireless Model": None, + "Bluetooth Model": bluetooth_data.bluetooth_data.NonApplicable, + "UGA Graphics": True, + }, + + "Xserve3,1": { + "Board ID": "Mac-F223BEC8", + "FirmwareFeatures": "0xE001F537", + "SecureBootModel": None, + "CPU Generation": cpu_data.cpu_data.nahalem, + "Max OS supported": os_data.os_data.el_capitan, + "Wireless Model": None, + "Bluetooth Model": bluetooth_data.bluetooth_data.NonApplicable, + }, + +} \ No newline at end of file diff --git a/Resources/Build.py b/Resources/Build.py index d990dc3fa..fb1d2ddac 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -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 = "" diff --git a/Resources/Constants.py b/Resources/Constants.py index 0619b0afc..7c113e6b3 100644 --- a/Resources/Constants.py +++ b/Resources/Constants.py @@ -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", diff --git a/Resources/ModelArray.py b/Resources/ModelArray.py index 95f41650a..78ab84b9d 100644 --- a/Resources/ModelArray.py +++ b/Resources/ModelArray.py @@ -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", ] \ No newline at end of file diff --git a/Resources/SMBIOSData.py b/Resources/SMBIOSData.py deleted file mode 100644 index 2a96d99b5..000000000 --- a/Resources/SMBIOSData.py +++ /dev/null @@ -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", -} diff --git a/Resources/SysPatch.py b/Resources/SysPatch.py index f7981fae6..410e2e10c 100644 --- a/Resources/SysPatch.py +++ b/Resources/SysPatch.py @@ -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 = ( diff --git a/Resources/Utilities.py b/Resources/Utilities.py index 298ee02b3..718861fe0 100644 --- a/Resources/Utilities.py +++ b/Resources/Utilities.py @@ -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: diff --git a/Resources/device_probe.py b/Resources/device_probe.py index a8416b932..e2f06c38d 100644 --- a/Resources/device_probe.py +++ b/Resources/device_probe.py @@ -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