mirror of
https://github.com/outbackdingo/OpCore-Simplify.git
synced 2026-01-27 10:19:49 +00:00
Add Subsystem ID check for accurate identification of unsupported NVMe SSDs
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user