diff --git a/README.md b/README.md index af32ec6..1391a03 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ - Force load kexts on unsupported macOS versions. - Use AMD GPUs Navi 23 and Navi 21 with WhateverGreen (default will use NootRX). - Add mode selection for performance and efficiency on supported discrete GPUs for laptops. + - Support AirportItlwm on macOS Sequoia 15 with **temporary workaround**. Manually select AirportItlwm, IOSkywalkFamily and IO80211FamilyLegacy kexts, then apply the root patch from OpenCore Legacy Patcher. ## 🚀 **How To Use** diff --git a/Scripts/config_prodigy.py b/Scripts/config_prodigy.py index 79f0e53..87084c7 100644 --- a/Scripts/config_prodigy.py +++ b/Scripts/config_prodigy.py @@ -239,7 +239,21 @@ class ConfigProdigy: for kext in kexts: if kext.checked: - if kext.name == "WhateverGreen": + if kext.name == "AirportItlwm" and self.utils.parse_darwin_version("24.0.0") <= self.utils.parse_darwin_version(macos_version): + for network_name, network_props in hardware_report.get("Network", {}).items(): + device_id = network_props.get("Device ID") + + if self.utils.contains_any(pci_data.NetworkIDs, device_id, start=21, end=108) and network_props.get("PCI Path"): + deviceproperties_add[network_props.get("PCI Path")] = { + "IOName": "pci14e4,43a0", + "compatible": "pci106b,117", + "device-id": self.utils.hex_to_bytes("A0430000"), + "name": "pci14e4,43a0", + "subsystem-id": self.utils.hex_to_bytes("17010000"), + "subsystem-vendor-id": self.utils.hex_to_bytes("6B100000"), + "vendor-id": self.utils.hex_to_bytes("E4140000") + } + elif kext.name == "WhateverGreen": discrete_gpu = None for gpu_name, gpu_info in hardware_report.get("GPU", {}).items(): if gpu_info.get("Device Type") == "Integrated GPU": @@ -273,7 +287,6 @@ class ConfigProdigy: "device-id": self.utils.to_little_endian_hex(pci_data.SpoofGPUIDs.get(discrete_gpu.get("Device ID")).split("-")[-1]), "model": gpu_name } - break for key, value in deviceproperties_add.items(): for key_child, value_child in value.items(): diff --git a/Scripts/datasets/kext_data.py b/Scripts/datasets/kext_data.py index 030447f..7dd1589 100644 --- a/Scripts/datasets/kext_data.py +++ b/Scripts/datasets/kext_data.py @@ -140,7 +140,7 @@ kexts = [ name = "AirportItlwm", description = "Intel Wi-Fi drivers support the native macOS Wi-Fi interface", category = "Wi-Fi", - max_darwin_version = "23.99.99", + max_darwin_version = "24.99.99", conflict_group_id = "IntelWiFi", github_repo = { "owner": "OpenIntelWireless", diff --git a/Scripts/kext_maestro.py b/Scripts/kext_maestro.py index f7561ab..0e9b895 100644 --- a/Scripts/kext_maestro.py +++ b/Scripts/kext_maestro.py @@ -256,7 +256,9 @@ class KextMaestro: for kext_path, type in kext_paths: if "AirportItlwm" == kext.name: version = macos_version[:2] - if self.utils.parse_darwin_version("23.4.0") <= self.utils.parse_darwin_version(macos_version): + if self.utils.parse_darwin_version("24.0.0") <= self.utils.parse_darwin_version(macos_version): + version = "22" + elif self.utils.parse_darwin_version("23.4.0") <= self.utils.parse_darwin_version(macos_version): version = "23.4" elif self.utils.parse_darwin_version("23.0.0") <= self.utils.parse_darwin_version(macos_version): version = "23.0" @@ -316,6 +318,10 @@ class KextMaestro: executable_path = os.path.join("Contents", "MacOS", bundle_info.get("CFBundleExecutable", "None")) if not os.path.exists(os.path.join(kexts_directory, kext_path, executable_path)): executable_path = "" + + if bundle_info.get("CFBundleExecutable", "None") == "AirportItlwm" and self.utils.parse_darwin_version("24.0.0") <= self.utils.parse_darwin_version(macos_version): + bundle_info["IOKitPersonalities"]["itlwm"]["IOPCIMatch"] += " 0x43A014E4" + self.utils.write_file(os.path.join(kexts_directory, kext_path, plist_path), bundle_info) bundle_list.append({ "BundlePath": kext_path.replace("\\", "/").lstrip("/"),