Support AirportItlwm on macOS Sequoia 15 with temporary workaround

This commit is contained in:
Hoang Hong Quan
2024-10-20 07:05:00 +07:00
parent d8511d1710
commit 0cdc2692cb
4 changed files with 24 additions and 4 deletions
+15 -2
View File
@@ -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():
+1 -1
View File
@@ -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",
+7 -1
View File
@@ -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("/"),