diff --git a/Scripts/compatibility_checker.py b/Scripts/compatibility_checker.py index 0954521..9859906 100644 --- a/Scripts/compatibility_checker.py +++ b/Scripts/compatibility_checker.py @@ -241,15 +241,20 @@ class CompatibilityChecker: def check_storage_compatibility(self): for controller_name, controller_props in self.hardware_report.get("Storage Controllers", {}).items(): - if "PCI" in controller_props.get("Bus Type"): - device_id = controller_props.get("Device ID") + if "PCI" not in controller_props.get("Bus Type"): + continue - if device_id in pci_data.IntelVMDIDs: - self.utils.request_input("\n\nDisable Intel RST VMD in the BIOS before exporting the hardware report and try again with the new report") - self.utils.exit_program() - elif device_id in pci_data.UnsupportedNVMeSSDIDs: - controller_props["Compatibility"] = (None, None) - print("{}- {}: {}".format(" "*3, controller_name if not device_id in pci_data.UnsupportedNVMeSSDIDs else pci_data.UnsupportedNVMeSSDIDs.get(device_id), self.show_macos_compatibility(controller_props.get("Compatibility")))) + device_id = controller_props.get("Device ID") + subsystem_id = controller_props.get("Subsystem ID", "0"*8) + + if device_id in pci_data.IntelVMDIDs: + self.utils.request_input("\n\nDisable Intel RST VMD in the BIOS before exporting the hardware report and try again with the new report") + self.utils.exit_program() + + if next((device for device in pci_data.UnsupportedNVMeSSDIDs if device_id == device[0] and subsystem_id in device[1]), None): + controller_props["Compatibility"] = (None, None) + + print("{}- {}: {}".format(" "*3, controller_name, self.show_macos_compatibility(controller_props.get("Compatibility")))) if all(controller_props.get("Compatibility") == (None, None) for controller_name, controller_props in self.hardware_report.get("Storage Controllers", {}).items()): self.utils.request_input("\n\nNo compatible storage for macOS was found!") @@ -285,7 +290,7 @@ class CompatibilityChecker: if device_compatibility: if device_compatibility[0] is None or not self.utils.parse_darwin_version(device_compatibility[0]) >= self.utils.parse_darwin_version(macos_verison) >= self.utils.parse_darwin_version(device_compatibility[-1]): - unsupported_device["{}: {}".format(device_props.get("Device Type") or device_type, device_name if not device_props.get("Device ID") in pci_data.UnsupportedNVMeSSDIDs else pci_data.UnsupportedNVMeSSDIDs.get(device_props.get("Device ID")))] = device_props + unsupported_device["{}: {}".format(device_props.get("Device Type") or device_type, device_name)] = device_props else: new_hardware_report[device_type][device_name] = device_props else: diff --git a/Scripts/datasets/pci_data.py b/Scripts/datasets/pci_data.py index a10478d..d90a716 100644 --- a/Scripts/datasets/pci_data.py +++ b/Scripts/datasets/pci_data.py @@ -1032,16 +1032,15 @@ IntelVMDIDs = [ ] # Resource: https://pci-ids.ucw.cz/ -UnsupportedNVMeSSDIDs = { - "1344-5410": "Micron 2200S", - "144D-A808": "Samsung SM981/PM981/PM983", - "2646-2263": "Kingston A2000 NVMe SSD SM2263EN", - "1C5C-174A": "SK hynix BC711/PC711", - "1C5C-1639": "SK hynix PC611", - "1C5C-1627": "SK hynix PC601", - "8086-390B": "Intel 760p", - "2646-2263": "Kingston A2000" -} +UnsupportedNVMeSSDIDs = [ + ("144D-A808", ("A811144D")), # Samsung SM981/PM981/PM983" + ("1344-5410", ("01001344")), # Micron 2200S + ("2646-2263", ("22632646")), # Kingston A2000 + ("1C5C-174A", ("174A1C5C")), # SK hynix BC711/PC711 + ("1C5C-1639", ("16391C5C")), # SK hynix PC611 + ("1C5C-1627", ("16271C5C")), # SK hynix PC601 + ("8086-F1A6", ("390B8086")) # Intel 760P +] # Resource: https://pci-ids.ucw.cz/ SpoofGPUIDs = {