diff --git a/Scripts/acpi_guru.py b/Scripts/acpi_guru.py index 640b7e1..94c0a91 100644 --- a/Scripts/acpi_guru.py +++ b/Scripts/acpi_guru.py @@ -1909,11 +1909,10 @@ DefinitionBlock ("", "SSDT", 2, "ZPSS", "DGPU", 0x00000000) ssdt_content += """\n }\n }\n}""" - elif "Network" in device_name and device_props.get("Bus Type") == "PCI" and \ - (not device_props.get("Device ID") in pci_data.NetworkIDs or 20 < pci_data.NetworkIDs.index(device_props.get("Device ID")) < 108 ): - ssdt_name = "SSDT-Disable_WiFi_{}".format(device_props.get("ACPI Path").split(".")[2]) + elif "Network" in device_name and device_props.get("Bus Type") == "PCI": + ssdt_name = "SSDT-Disable_Network_{}".format(device_props.get("ACPI Path").split(".")[2]) ssdt_content = """ -DefinitionBlock ("", "SSDT", 2, "ZPSS", "DWIFI", 0x00000000) +DefinitionBlock ("", "SSDT", 2, "ZPSS", "DNET", 0x00000000) { External ([[DevicePath]], DeviceObj) @@ -3074,7 +3073,7 @@ DefinitionBlock ("", "SSDT", 2, "ZPSS", "UsbReset", 0x00001000) else: selected_patches.append("PLUG") - if not any(network_props.get("Device ID") in pci_data.NetworkIDs[108:326] for network_props in hardware_report.get("Network", {}).values()): + if not any(network_props.get("Device ID") in pci_data.WirelessCardIDs + pci_data.EthernetIDs for network_props in hardware_report.get("Network", {}).values()): selected_patches.append("RMNE") if hardware_report.get("Motherboard").get("Chipset") in ("C610/X99", "Wellsburg", "X299"): diff --git a/Scripts/compatibility_checker.py b/Scripts/compatibility_checker.py index 9a7aa15..f38d2d7 100644 --- a/Scripts/compatibility_checker.py +++ b/Scripts/compatibility_checker.py @@ -220,45 +220,45 @@ class CompatibilityChecker: print("{}- {}: {}".format(" "*3, biometric_device, self.show_macos_compatibility(biometric_props.get("Compatibility")))) def check_network_compatibility(self): - primary_wifi_device = next((device_props.get("Device ID") for device_name, device_props in self.hardware_report.get("Network", {}).items() if device_props.get("Device ID") in pci_data.NetworkIDs and pci_data.NetworkIDs.index(device_props.get("Device ID")) < 21), None) + primary_wifi_device = next((device_props.get("Device ID") for device_name, device_props in self.hardware_report.get("Network", {}).items() if device_props.get("Device ID") in pci_data.BroadcomWiFiIDs), None) if not primary_wifi_device: - primary_wifi_device = next((device_props.get("Device ID") for device_name, device_props in self.hardware_report.get("Network", {}).items() if device_props.get("Device ID") in pci_data.NetworkIDs and pci_data.NetworkIDs.index(device_props.get("Device ID")) < 108), None) + primary_wifi_device = next((device_props.get("Device ID") for device_name, device_props in self.hardware_report.get("Network", {}).items() if device_props.get("Device ID") in pci_data.IntelWiFiIDs), None) + if not primary_wifi_device: + primary_wifi_device = next((device_props.get("Device ID") for device_name, device_props in self.hardware_report.get("Network", {}).items() if device_props.get("Device ID") in pci_data.AtherosWiFiIDs), None) for device_name, device_props in self.hardware_report.get("Network", {}).items(): bus_type = device_props.get("Bus Type") device_id = device_props.get("Device ID") - try: - device_index = pci_data.NetworkIDs.index(device_id) + max_version = os_data.get_latest_darwin_version() + min_version = os_data.get_lowest_darwin_version() + ocl_patched_max_version = max_version + ocl_patched_min_version = "20.0.0" - max_version = os_data.get_latest_darwin_version() - min_version = os_data.get_lowest_darwin_version() - ocl_patched_max_version = max_version - ocl_patched_min_version = "20.0.0" + if device_id in pci_data.BroadcomWiFiIDs: + device_index = pci_data.BroadcomWiFiIDs.index(device_id) - if 109 < device_index < 115: - min_version = "19.0.0" + if device_index == 13 or 17 < device_index < 21: + max_version = "22.99.99" + ocl_patched_min_version = "23.0.0" + elif device_index < 12: + max_version = "17.99.99" + elif device_id in pci_data.AtherosWiFiIDs: + max_version = "17.99.99" + elif device_id in pci_data.IntelI22XIDs: + min_version = "19.0.0" + elif device_id in pci_data.AquantiaAqtionIDs: + min_version = "21.0.0" - if 262 < device_index < 280: - min_version = "21.0.0" - - if pci_data.NetworkIDs.index(device_id) < 108: - if device_id == primary_wifi_device: - if device_index == 13 or 17 < device_index < 21: - max_version = "22.99.99" - ocl_patched_min_version = "23.0.0" - elif device_index < 12: - max_version = "17.99.99" - - if device_index < 21: - device_props["OCLP Compatibility"] = (ocl_patched_max_version, ocl_patched_min_version) - self.ocl_patched_macos_version = (ocl_patched_max_version, self.ocl_patched_macos_version[-1] if self.ocl_patched_macos_version and self.utils.parse_darwin_version(self.ocl_patched_macos_version[-1]) < self.utils.parse_darwin_version(device_props.get("OCLP Compatibility")[-1]) else device_props.get("OCLP Compatibility")[-1]) - device_props["Compatibility"] = (max_version, min_version) - primary_wifi_device = None - else: + if device_id in pci_data.WirelessCardIDs: + if device_id == primary_wifi_device: + if not device_id in pci_data.IntelWiFiIDs: + device_props["OCLP Compatibility"] = (ocl_patched_max_version, ocl_patched_min_version) + self.ocl_patched_macos_version = (ocl_patched_max_version, self.ocl_patched_macos_version[-1] if self.ocl_patched_macos_version and self.utils.parse_darwin_version(self.ocl_patched_macos_version[-1]) < self.utils.parse_darwin_version(device_props.get("OCLP Compatibility")[-1]) else device_props.get("OCLP Compatibility")[-1]) device_props["Compatibility"] = (max_version, min_version) - except: - pass + primary_wifi_device = None + elif device_id in pci_data.EthernetIDs + pci_data.WirelessUSBIDs: + device_props["Compatibility"] = (max_version, min_version) if bus_type.startswith("PCI") and not device_props.get("Compatibility"): device_props["Compatibility"] = (None, None) diff --git a/Scripts/config_prodigy.py b/Scripts/config_prodigy.py index 75fcf66..2101853 100644 --- a/Scripts/config_prodigy.py +++ b/Scripts/config_prodigy.py @@ -253,7 +253,7 @@ class ConfigProdigy: for network_name, network_props in hardware_report.get("Network", {}).items(): device_id = network_props.get("Device ID") - if device_id in pci_data.NetworkIDs[21:108] and network_props.get("PCI Path"): + if device_id in pci_data.IntelWiFiIDs and network_props.get("PCI Path"): add_device_property(network_props.get("PCI Path"), {"IOName": "pci14e4,43a0"}) elif kext.name == "WhateverGreen": discrete_gpu = None @@ -308,19 +308,16 @@ class ConfigProdigy: for network_name, network_props in network_items: device_id = network_props.get("Device ID") - try: - device_index = pci_data.NetworkIDs.index(device_id) - except: - continue - - if device_index < 18: - add_device_property(network_props.get("PCI Path"), {"IOName": "pci14e4,43a0"}) - elif 228 < device_index < 258: + if device_id in pci_data.BroadcomWiFiIDs[:18]: + add_device_property(network_props.get("PCI Path"), { + "IOName": "pci14e4,43a0" + }) + elif device_id in pci_data.BroadcomBCM57XXIDs[:-5]: add_device_property(network_props.get("PCI Path"), { "IOName": "pci14e4,16b4", "device-id": self.utils.hex_to_bytes("B4160000") }) - elif 277 < device_index < 280: + elif device_id in pci_data.AquantiaAqtionIDs[:2]: add_device_property(network_props.get("PCI Path"), { "IOName": "1D6A-91B1" }) @@ -387,7 +384,7 @@ class ConfigProdigy: if "AMD" in cpu_manufacturer: kernel_patch.extend(self.g.get_kernel_patches("AMD Vanilla Patches", self.g.amd_vanilla_patches_url)) - if any(network_props.get("Device ID") in pci_data.NetworkIDs[263:280] for network_props in networks.values()): + if any(network_props.get("Device ID") in pci_data.AquantiaAqtionIDs for network_props in networks.values()): kernel_patch.extend(self.g.get_kernel_patches("Aquantia macOS Patches", self.g.aquantia_macos_patches_url)) for kext in kexts: @@ -601,7 +598,7 @@ class ConfigProdigy: config["Kernel"]["Quirks"]["CustomSMBIOSGuid"] = True config["Kernel"]["Quirks"]["DisableIoMapper"] = not "AMD" in hardware_report.get("CPU").get("Manufacturer") config["Kernel"]["Quirks"]["DisableRtcChecksum"] = "ASUS" in hardware_report.get("Motherboard").get("Name") or "HP " in hardware_report.get("Motherboard").get("Name") - config["Kernel"]["Quirks"]["ForceAquantiaEthernet"] = any(network_props.get("Device ID") in pci_data.NetworkIDs[263:280] for network_props in hardware_report.get("Network", {}).values()) + config["Kernel"]["Quirks"]["ForceAquantiaEthernet"] = any(network_props.get("Device ID") in pci_data.AquantiaAqtionIDs for network_props in hardware_report.get("Network", {}).values()) config["Kernel"]["Quirks"]["LapicKernelPanic"] = "HP " in hardware_report.get("Motherboard").get("Name") config["Kernel"]["Quirks"]["PanicNoKextDump"] = config["Kernel"]["Quirks"]["PowerTimeoutKernelPanic"] = True config["Kernel"]["Quirks"]["ProvideCurrentCpuInfo"] = "AMD" in hardware_report.get("CPU").get("Manufacturer") or hardware_report.get("CPU").get("Codename") in cpu_data.IntelCPUGenerations[1:3] diff --git a/Scripts/datasets/pci_data.py b/Scripts/datasets/pci_data.py index f7d0d8c..9837e25 100644 --- a/Scripts/datasets/pci_data.py +++ b/Scripts/datasets/pci_data.py @@ -222,8 +222,25 @@ InputIDs = [ "SYNA7DAB", "SYNA7DB5" ] - -NetworkIDs = [ + +AtherosWiFiIDs = [ + # AirPortAtheros40.kext + "106B-0086", + "168C-001C", + "168C-0023", + "168C-0024", + "168C-002A", + "168C-0030", + "168C-002B", + "168C-002E", + "168C-0032", + "168C-0033", + "168C-0034", + "168C-0036", + "168C-0037" +] + +BroadcomWiFiIDs = [ # AirportBrcmFixup.kext "14E4-4311", "14E4-4312", @@ -245,7 +262,10 @@ NetworkIDs = [ "14E4-4353", "14E4-43A0", "14E4-43A3", - "14E4-43BA", + "14E4-43BA" +] + +IntelWiFiIDs = [ # itlwm.kext "8086-0060", "8086-0064", @@ -333,15 +353,77 @@ NetworkIDs = [ "8086-7F70", "8086-9DF0", "8086-A0F0", - "8086-A370", - # AppleIGC.kext - "8086-125B", - "8086-125C", - "8086-125D", - "8086-15F2", - "8086-15F3", - "8086-15F8", - "8086-3102", + "8086-A370" +] + +WirelessCardIDs = AtherosWiFiIDs + BroadcomWiFiIDs + IntelWiFiIDs + +AppleIGBIDs = [ + # AppleIGB.kext + "8086-034A", + "8086-0438", + "8086-043C", + "8086-0440", + "8086-10A7", + "8086-10A9", + "8086-10C9", + "8086-10D6", + "8086-10E6", + "8086-10E7", + "8086-10E8", + "8086-150A", + "8086-150D", + "8086-150E", + "8086-150F", + "8086-1510", + "8086-1511", + "8086-1516", + "8086-1518", + "8086-1521", + "8086-1522", + "8086-1523", + "8086-1524", + "8086-1526", + "8086-1527", + "8086-1533", + "8086-1534", + "8086-1535", + "8086-1536", + "8086-1537", + "8086-1538", + "8086-1539", + "8086-1546", + "8086-157B", + "8086-157C", + "8086-1F40", + "8086-1F41", + "8086-1F45" +] + +AquantiaAqtionIDs = [ + # Aquantia AQC100 + "1D6A-00B1", + "1D6A-80B1", + # Aquantia AQC107 + "1D6A-0001", + "1D6A-07B1", + "1D6A-D107", + "1D6A-80B1", + "1D6A-87B1", + "1D6A-88B1", + "1D6A-89B1", + "1D6A-91B1", + "1D6A-92B1", + # Aquantia AQC113 + "1D6A-00C0", + "1D6A-04C0", + "1D6A-14C0", + "1D6A-34C0", + "1D6A-93C0", + "1D6A-94C0" +] + +AtherosE2200IDs = [ # AtherosE2200Ethernet.kext "1969-1090", "1969-1091", @@ -349,7 +431,60 @@ NetworkIDs = [ "1969-10A1", "1969-E091", "1969-E0A1", - "1969-E0B1", + "1969-E0B1" +] + +BroadcomBCM57XXIDs = [ + # FakePCIID_BCM57XX_as_BCM57765.kext + "14E4-1641", + "14E4-1642", + "14E4-1643", + "14E4-1644", + "14E4-1645", + "14E4-1646", + "14E4-1647", + "14E4-1655", + "14E4-1656", + "14E4-1657", + "14E4-1665", + "14E4-1683", + "14E4-1687", + "14E4-1688", + "14E4-1689", + "14E4-1690", + "14E4-1691", + "14E4-1692", + "14E4-1693", + "14E4-1694", + "14E4-1699", + "14E4-16A0", + "14E4-16B1", + "14E4-16B2", + "14E4-16B3", + "14E4-16B5", + "14E4-16B6", + "14E4-16B7", + "14E4-16F3", + # CatalinaBCM5701Ethernet.kext + "14E4-1682", + "14E4-1684", + "14E4-1686", + "14E4-16B0", + "14E4-16B4" +] + +IntelI22XIDs = [ + # AppleIGC.kext + "8086-125B", + "8086-125C", + "8086-125D", + "8086-15F2", + "8086-15F3", + "8086-15F8", + "8086-3102" +] + +IntelMausiIDs = [ # IntelMausiEthernet.kext "8086-10EA", "8086-10EB", @@ -411,113 +546,10 @@ NetworkIDs = [ "8086-550E", "8086-550F", "8086-5510", - "8086-5511", - # LucyRTL8125Ethernet.kext - "10EC-3000", - "10EC-8125", - "1186-8125", - # RealtekRTL8100.kext - "10EC-8136", - # RealtekRTL8111.kext - "10EC-8168", - "1186-8168", - "10EC-2502", - "10EC-2600", - # AppleIGB.kext - "8086-034A", - "8086-0438", - "8086-043C", - "8086-0440", - "8086-10A7", - "8086-10A9", - "8086-10C9", - "8086-10D6", - "8086-10E6", - "8086-10E7", - "8086-10E8", - "8086-150A", - "8086-150D", - "8086-150E", - "8086-150F", - "8086-1510", - "8086-1511", - "8086-1516", - "8086-1518", - "8086-1521", - "8086-1522", - "8086-1523", - "8086-1524", - "8086-1526", - "8086-1527", - "8086-1533", - "8086-1534", - "8086-1535", - "8086-1536", - "8086-1537", - "8086-1538", - "8086-1539", - "8086-1546", - "8086-157B", - "8086-157C", - "8086-1F40", - "8086-1F41", - "8086-1F45", - # FakePCIID_BCM57XX_as_BCM57765.kext - "14E4-1641", - "14E4-1642", - "14E4-1643", - "14E4-1644", - "14E4-1645", - "14E4-1646", - "14E4-1647", - "14E4-1655", - "14E4-1656", - "14E4-1657", - "14E4-1665", - "14E4-1683", - "14E4-1687", - "14E4-1688", - "14E4-1689", - "14E4-1690", - "14E4-1691", - "14E4-1692", - "14E4-1693", - "14E4-1694", - "14E4-1699", - "14E4-16A0", - "14E4-16B1", - "14E4-16B2", - "14E4-16B3", - "14E4-16B5", - "14E4-16B6", - "14E4-16B7", - "14E4-16F3", - # CatalinaBCM5701Ethernet.kext - "14E4-1682", - "14E4-1684", - "14E4-1686", - "14E4-16B0", - "14E4-16B4", - # Aquantia AQC107 - "1D6A-0001", - "1D6A-07B1", - "1D6A-D107", - "1D6A-80B1", - "1D6A-87B1", - "1D6A-88B1", - "1D6A-89B1", - "1D6A-91B1", - "1D6A-92B1", - # Aquantia AQC113 - "1D6A-00C0", - "1D6A-04C0", - "1D6A-14C0", - "1D6A-34C0", - "1D6A-93C0", - "1D6A-94C0", - # Aquantia AQC100 - "1D6A-00B1", - "1D6A-80B1", + "8086-5511" +] + +IntelX500IDs = [ # IntelLucy.kext "8086-10B6", "8086-10C6", @@ -564,7 +596,32 @@ NetworkIDs = [ "8086-15CE", "8086-15D1", "8086-15E4", - "8086-15E5", + "8086-15E5" +] + +RealtekRTL8100IDs = [ + # RealtekRTL8100.kext + "10EC-8136" +] + +RealtekRTL8111IDs = [ + # RealtekRTL8111.kext + "10EC-8168", + "1186-8168", + "10EC-2502", + "10EC-2600" +] + +RealtekRTL8125IDs = [ + # LucyRTL8125Ethernet.kext + "10EC-3000", + "10EC-8125", + "1186-8125" +] + +EthernetIDs = AppleIGBIDs + AquantiaAqtionIDs + AtherosE2200IDs + BroadcomBCM57XXIDs + IntelI22XIDs + IntelMausiIDs + IntelX500IDs + RealtekRTL8100IDs + RealtekRTL8111IDs + RealtekRTL8125IDs + +WirelessUSBIDs = [ # RtWlanU.kext, RtWlanU1827.kext and RT2870USBWirelessDriver.kext "0409-0408", "0411-0242", diff --git a/Scripts/kext_maestro.py b/Scripts/kext_maestro.py index 068d391..1ed6630 100644 --- a/Scripts/kext_maestro.py +++ b/Scripts/kext_maestro.py @@ -55,7 +55,7 @@ class KextMaestro: elif match_key == "IONameMatch": for pci_id in properties[match_key]: vendor_id = pci_id[3:7] - device_id = pci_id[-4:] + device_id = pci_id.split(",")[1].zfill(4) pci_ids.append("{}-{}".format(vendor_id, device_id).upper()) elif match_key == "idProduct": vendor_id = self.utils.int_to_hex(properties["idVendor"]).zfill(4) @@ -154,41 +154,36 @@ class KextMaestro: for network_name, network_props in hardware_report.get("Network", {}).items(): device_id = network_props.get("Device ID") - try: - device_index = pci_data.NetworkIDs.index(device_id) - except: - continue + ethernet_device = ethernet_device or device_id in pci_data.EthernetIDs - ethernet_device = ethernet_device or 107 < device_index < 326 - - if device_index < 21 and self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("23.0.0"): + if device_id in pci_data.BroadcomWiFiIDs and self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("23.0.0"): selected_kexts.append("IOSkywalkFamily") - if device_index < 15: + if device_id in pci_data.BroadcomWiFiIDs[:15]: selected_kexts.append("AirportBrcmFixup") - elif device_index == 15 and self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("19.0.0"): + elif device_id == pci_data.BroadcomWiFiIDs[15] and self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("19.0.0"): selected_kexts.append("AirportBrcmFixup") - elif 15 < device_index < 18 and self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("20.0.0"): + elif device_id in pci_data.BroadcomWiFiIDs[16:18] and self.utils.parse_darwin_version(macos_version) >= self.utils.parse_darwin_version("20.0.0"): selected_kexts.append("AirportBrcmFixup") - elif 20 < device_index < 108: + elif device_id in pci_data.IntelWiFiIDs: selected_kexts.append("AirportItlwm" if self.utils.parse_darwin_version(macos_version) < self.utils.parse_darwin_version("23.0.0") else "itlwm") - elif 107 < device_index < 115: + elif device_id in pci_data.IntelI22XIDs: selected_kexts.append("AppleIGC") - elif 114 < device_index < 122: + elif device_id in pci_data.AtherosE2200IDs: selected_kexts.append("AtherosE2200Ethernet") - elif 121 < device_index < 183: + elif device_id in pci_data.IntelMausiIDs: selected_kexts.append("IntelMausiEthernet") - elif 182 < device_index < 186: + elif device_id in pci_data.RealtekRTL8125IDs: selected_kexts.append("LucyRTL8125Ethernet") - elif device_index == 186: + elif device_id in pci_data.RealtekRTL8100IDs: selected_kexts.append("RealtekRTL8100") - elif 186 < device_index < 191: + elif device_id in pci_data.RealtekRTL8111IDs: selected_kexts.append("RealtekRTL8111") - elif 190 < device_index < 229: + elif device_id in pci_data.AppleIGBIDs: selected_kexts.append("AppleIGB") - elif 228 < device_index < 263: + elif device_id in pci_data.BroadcomBCM57XXIDs: selected_kexts.append("CatalinaBCM5701Ethernet") - elif 279 < device_index < 326: + elif device_id in pci_data.IntelX500IDs: selected_kexts.append("IntelLucy") if not ethernet_device: