mirror of
https://github.com/outbackdingo/OpCore-Simplify.git
synced 2026-01-28 02:19:47 +00:00
Add support for Atheros Wi-Fi/Bluetooth cards
This commit is contained in:
@@ -243,8 +243,10 @@ class CompatibilityChecker:
|
||||
ocl_patched_min_version = "23.0.0"
|
||||
elif device_index < 12:
|
||||
max_version = "17.99.99"
|
||||
elif device_id in pci_data.AtherosWiFiIDs:
|
||||
elif device_id in pci_data.AtherosWiFiIDs[:8]:
|
||||
max_version = "17.99.99"
|
||||
elif device_id in pci_data.AtherosWiFiIDs[8:]:
|
||||
max_version = "20.99.99"
|
||||
elif device_id in pci_data.IntelI22XIDs:
|
||||
min_version = "19.0.0"
|
||||
elif device_id in pci_data.AquantiaAqtionIDs:
|
||||
@@ -252,7 +254,7 @@ class CompatibilityChecker:
|
||||
|
||||
if device_id in pci_data.WirelessCardIDs:
|
||||
if device_id == primary_wifi_device:
|
||||
if not device_id in pci_data.IntelWiFiIDs:
|
||||
if not device_id in pci_data.IntelWiFiIDs and not device_id in pci_data.AtherosWiFiIDs[8:]:
|
||||
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)
|
||||
@@ -290,6 +292,23 @@ class CompatibilityChecker:
|
||||
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!")
|
||||
self.utils.exit_program()
|
||||
|
||||
def check_bluetooth_compatibility(self):
|
||||
for bluetooth_name, bluetooth_props in self.hardware_report.get("Bluetooth", {}).items():
|
||||
device_id = bluetooth_props.get("Device ID")
|
||||
|
||||
max_version = os_data.get_latest_darwin_version()
|
||||
min_version = os_data.get_lowest_darwin_version()
|
||||
|
||||
if device_id in pci_data.BroadcomBluetoothIDs + pci_data.IntelBluetoothIDs + pci_data.BluetoothDongleIDs:
|
||||
pass
|
||||
elif device_id in pci_data.AtherosBluetoothIDs:
|
||||
max_version = "20.99.99"
|
||||
else:
|
||||
max_version = min_version = None
|
||||
|
||||
bluetooth_props["Compatibility"] = (max_version, min_version)
|
||||
print("{}- {}: {}".format(" "*3, bluetooth_name, self.show_macos_compatibility(bluetooth_props.get("Compatibility"))))
|
||||
|
||||
def check_sd_controller_compatibility(self):
|
||||
for controller_name, controller_props in self.hardware_report.get("SD Controller", {}).items():
|
||||
@@ -305,7 +324,7 @@ class CompatibilityChecker:
|
||||
needs_oclp = False
|
||||
|
||||
for device_type, devices in self.hardware_report.items():
|
||||
if device_type in ("Motherboard", "BIOS", "CPU", "USB Controllers", "Input", "Bluetooth", "System Devices"):
|
||||
if device_type in ("Motherboard", "BIOS", "CPU", "USB Controllers", "Input", "System Devices"):
|
||||
new_hardware_report[device_type] = devices
|
||||
continue
|
||||
|
||||
@@ -350,6 +369,7 @@ class CompatibilityChecker:
|
||||
('Biometric', self.check_biometric_compatibility),
|
||||
('Network', self.check_network_compatibility),
|
||||
('Storage Controllers', self.check_storage_compatibility),
|
||||
('Bluetooth', self.check_bluetooth_compatibility),
|
||||
('SD Controller', self.check_sd_controller_compatibility)
|
||||
]
|
||||
|
||||
|
||||
@@ -308,7 +308,12 @@ class ConfigProdigy:
|
||||
for network_name, network_props in network_items:
|
||||
device_id = network_props.get("Device ID")
|
||||
|
||||
if device_id in pci_data.BroadcomWiFiIDs[:18]:
|
||||
if device_id in pci_data.AtherosWiFiIDs[6:8]:
|
||||
add_device_property(network_props.get("PCI Path"), {
|
||||
"IOName": "pci168c,2a",
|
||||
"device-id": self.utils.hex_to_bytes("2A000000")
|
||||
})
|
||||
elif device_id in pci_data.BroadcomWiFiIDs[:18]:
|
||||
add_device_property(network_props.get("PCI Path"), {
|
||||
"IOName": "pci14e4,43a0"
|
||||
})
|
||||
|
||||
@@ -156,9 +156,31 @@ kexts = [
|
||||
"repo": "itlwm"
|
||||
}
|
||||
),
|
||||
KextInfo(
|
||||
name = "corecaptureElCap",
|
||||
description = "Enable legacy Qualcomm Atheros Wireless cards",
|
||||
category = "Wi-Fi",
|
||||
min_darwin_version = "18.0.0",
|
||||
requires_kexts = ["IO80211ElCap"],
|
||||
download_info = {
|
||||
"id": 348147192,
|
||||
"url": "https://github.com/dortania/OpenCore-Legacy-Patcher/raw/refs/heads/main/payloads/Kexts/Wifi/corecaptureElCap-v1.0.2.zip"
|
||||
}
|
||||
),
|
||||
KextInfo(
|
||||
name = "IO80211ElCap",
|
||||
description = "Enable legacy Qualcomm Atheros Wireless cards",
|
||||
category = "Wi-Fi",
|
||||
min_darwin_version = "18.0.0",
|
||||
requires_kexts = ["corecaptureElCap"],
|
||||
download_info = {
|
||||
"id": 128321732,
|
||||
"url": "https://github.com/dortania/OpenCore-Legacy-Patcher/raw/refs/heads/main/payloads/Kexts/Wifi/IO80211ElCap-v2.0.1.zip"
|
||||
}
|
||||
),
|
||||
KextInfo(
|
||||
name = "IO80211FamilyLegacy",
|
||||
description = "Enable legacy native Apple Wireless adapters",
|
||||
description = "Enable legacy Apple Wireless adapters",
|
||||
category = "Wi-Fi",
|
||||
min_darwin_version = "23.0.0",
|
||||
requires_kexts = ["AMFIPass", "IOSkywalkFamily"],
|
||||
@@ -169,7 +191,7 @@ kexts = [
|
||||
),
|
||||
KextInfo(
|
||||
name = "IOSkywalkFamily",
|
||||
description = "Enable legacy native Apple Wireless adapters",
|
||||
description = "Enable legacy Apple Wireless adapters",
|
||||
category = "Wi-Fi",
|
||||
min_darwin_version = "23.0.0",
|
||||
requires_kexts = ["AMFIPass", "IO80211FamilyLegacy"],
|
||||
@@ -188,6 +210,28 @@ kexts = [
|
||||
"repo": "itlwm"
|
||||
}
|
||||
),
|
||||
KextInfo(
|
||||
name = "Ath3kBT",
|
||||
description = "Uploads firmware to enable Atheros Bluetooth support",
|
||||
category = "Bluetooth",
|
||||
max_darwin_version = "20.99.99",
|
||||
requires_kexts = ["Ath3kBTInjector"],
|
||||
github_repo = {
|
||||
"owner": "zxystd",
|
||||
"repo": "AthBluetoothFirmware"
|
||||
}
|
||||
),
|
||||
KextInfo(
|
||||
name = "Ath3kBTInjector",
|
||||
description = "Uploads firmware to enable Atheros Bluetooth support",
|
||||
category = "Bluetooth",
|
||||
max_darwin_version = "20.99.99",
|
||||
requires_kexts = ["Ath3kBT"],
|
||||
github_repo = {
|
||||
"owner": "zxystd",
|
||||
"repo": "AthBluetoothFirmware"
|
||||
}
|
||||
),
|
||||
KextInfo(
|
||||
name = "BlueToolFixup",
|
||||
description = "Patches Bluetooth stack to support third-party cards",
|
||||
|
||||
@@ -1,4 +1,59 @@
|
||||
BluetoothIDs = [
|
||||
AtherosBluetoothIDs = [
|
||||
"0489-E036",
|
||||
"0489-E03C",
|
||||
"0489-E04D",
|
||||
"0489-E04E",
|
||||
"0489-E056",
|
||||
"0489-E057",
|
||||
"0489-E05F",
|
||||
"0489-E076",
|
||||
"0489-E078",
|
||||
"0489-E095",
|
||||
"04C5-1330",
|
||||
"04CA-3004",
|
||||
"04CA-3005",
|
||||
"04CA-3006",
|
||||
"04CA-3007",
|
||||
"04CA-3008",
|
||||
"04CA-300B",
|
||||
"04CA-300D",
|
||||
"04CA-300F",
|
||||
"04CA-3010",
|
||||
"04CA-3014",
|
||||
"04CA-3018",
|
||||
"0930-0219",
|
||||
"0930-021C",
|
||||
"0930-0220",
|
||||
"0930-0227",
|
||||
"0B05-17D0",
|
||||
"0CF3-0036",
|
||||
"0CF3-3004",
|
||||
"0CF3-3008",
|
||||
"0CF3-311D",
|
||||
"0CF3-311E",
|
||||
"0CF3-311F",
|
||||
"0CF3-3121",
|
||||
"0CF3-817A",
|
||||
"0CF3-817B",
|
||||
"0CF3-E003",
|
||||
"0CF3-E004",
|
||||
"0CF3-E005",
|
||||
"0CF3-E006",
|
||||
"13D3-3362",
|
||||
"13D3-3375",
|
||||
"13D3-3393",
|
||||
"13D3-3395",
|
||||
"13D3-3402",
|
||||
"13D3-3408",
|
||||
"13D3-3423",
|
||||
"13D3-3432",
|
||||
"13D3-3472",
|
||||
"13D3-3474",
|
||||
"13D3-3487",
|
||||
"13D3-3490"
|
||||
]
|
||||
|
||||
BroadcomBluetoothIDs = [
|
||||
# BrcmPatchRAM Plugins
|
||||
"0489-E032",
|
||||
"0489-E042",
|
||||
@@ -98,7 +153,10 @@ BluetoothIDs = [
|
||||
"185F-2167",
|
||||
"19FF-0239",
|
||||
"413C-8143",
|
||||
"413C-8197",
|
||||
"413C-8197"
|
||||
]
|
||||
|
||||
IntelBluetoothIDs = [
|
||||
# IntelBluetoothFirmware.kext
|
||||
"8087-0025",
|
||||
"8087-0026",
|
||||
@@ -113,7 +171,10 @@ BluetoothIDs = [
|
||||
"8087-0A2A",
|
||||
"8087-0A2B",
|
||||
"8087-0AA7",
|
||||
"8087-0AAA",
|
||||
"8087-0AAA"
|
||||
]
|
||||
|
||||
BluetoothDongleIDs = [
|
||||
"0A12-0001"
|
||||
]
|
||||
|
||||
@@ -475,13 +536,13 @@ BroadcomBCM57XXIDs = [
|
||||
|
||||
IntelI22XIDs = [
|
||||
# AppleIGC.kext
|
||||
"8086-3102",
|
||||
"8086-125B",
|
||||
"8086-125C",
|
||||
"8086-125D",
|
||||
"8086-15F2",
|
||||
"8086-15F3",
|
||||
"8086-15F8",
|
||||
"8086-3102"
|
||||
"8086-15F8"
|
||||
]
|
||||
|
||||
IntelMausiIDs = [
|
||||
|
||||
@@ -167,6 +167,10 @@ class KextMaestro:
|
||||
selected_kexts.append("AirportBrcmFixup")
|
||||
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 device_id in pci_data.AtherosWiFiIDs[:8]:
|
||||
selected_kexts.append("corecaptureElCap")
|
||||
if self.utils.parse_darwin_version(macos_version) > self.utils.parse_darwin_version("20.99.99"):
|
||||
selected_kexts.append("AMFIPass")
|
||||
elif device_id in pci_data.IntelI22XIDs:
|
||||
selected_kexts.append("AppleIGC")
|
||||
elif device_id in pci_data.AtherosE2200IDs:
|
||||
@@ -192,13 +196,14 @@ class KextMaestro:
|
||||
for bluetooth_name, bluetooth_props in hardware_report.get("Bluetooth", {}).items():
|
||||
usb_id = bluetooth_props.get("Device ID")
|
||||
|
||||
if usb_id in pci_data.BluetoothIDs:
|
||||
if pci_data.BluetoothIDs.index(usb_id) < 99:
|
||||
selected_kexts.append("BrcmFirmwareData")
|
||||
if pci_data.BluetoothIDs[-1] == usb_id:
|
||||
selected_kexts.append("BlueToolFixup")
|
||||
else:
|
||||
selected_kexts.append("IntelBluetoothFirmware")
|
||||
if usb_id in pci_data.AtherosBluetoothIDs:
|
||||
selected_kexts.extend(("Ath3kBT", "Ath3kBTInjector"))
|
||||
elif usb_id in pci_data.BroadcomBluetoothIDs:
|
||||
selected_kexts.append("BrcmFirmwareData")
|
||||
elif usb_id in pci_data.IntelBluetoothIDs:
|
||||
selected_kexts.append("IntelBluetoothFirmware")
|
||||
elif usb_id in pci_data.BluetoothDongleIDs:
|
||||
selected_kexts.append("BlueToolFixup")
|
||||
|
||||
if "Laptop" in hardware_report.get("Motherboard").get("Platform"):
|
||||
if "SURFACE" in hardware_report.get("Motherboard").get("Name"):
|
||||
@@ -347,7 +352,12 @@ class KextMaestro:
|
||||
kernel_add = []
|
||||
unload_kext = []
|
||||
|
||||
if self.kexts[self.get_kext_index("VoodooSMBus")].checked:
|
||||
if self.kexts[self.get_kext_index("IO80211ElCap")].checked:
|
||||
unload_kext.extend((
|
||||
"AirPortBrcm4331",
|
||||
"AppleAirPortBrcm43224"
|
||||
))
|
||||
elif self.kexts[self.get_kext_index("VoodooSMBus")].checked:
|
||||
unload_kext.append("VoodooPS2Mouse")
|
||||
elif self.kexts[self.get_kext_index("VoodooRMI")].checked:
|
||||
if not self.kexts[self.get_kext_index("VoodooI2C")].checked:
|
||||
|
||||
Reference in New Issue
Block a user