From ca8e1a7bf02e3828257a8fd2c04e182be00487fa Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Tue, 6 Jun 2023 13:03:28 -0600 Subject: [PATCH] sys_patch.py: Add reference patch set for Broadcom --- data/sys_patch_dict.py | 47 ++++++++++++++++++++++- resources/sys_patch/sys_patch_detect.py | 15 ++++++++ resources/sys_patch/sys_patch_generate.py | 3 ++ 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/data/sys_patch_dict.py b/data/sys_patch_dict.py index 9ff720c85..d42f1a936 100644 --- a/data/sys_patch_dict.py +++ b/data/sys_patch_dict.py @@ -1140,7 +1140,52 @@ class SystemPatchDictionary(): "IO80211.framework": "12.6.2", }, }, - } + }, + # May lord have mercy on our souls + # Applicable for BCM943324, BCM94331, BCM94360, BCM943602 + "Modern Wireless": { + "Display Name": "Networking: Modern Wireless", + "OS Support": { + "Minimum OS Support": { + "OS Major": os_data.os_data.sonoma, + "OS Minor": 0 + }, + "Maximum OS Support": { + "OS Major": os_data.os_data.max_os, + "OS Minor": 99 + }, + }, + "Install Reference": { + "/System/Library/Extensions": { + "IO80211FamilyLegacy.kext": "13.5 Beta 2", + "IONetworkFamily.kext": "13.5 Beta 2", + "IOSkywalkFamily.kext": "13.5 Beta 2", + }, + "/usr/libexec": { + "airportd": "13.5 Beta 2", + "wifianalyticsd": "13.5 Beta 2", + }, + "/System/Library/Frameworks": { + "CoreWLAN.framework": "13.5 Beta 2", + }, + "/System/Library/PrivateFrameworks": { + "CoreAnalytics.framework": "13.5 Beta 2", + "CoreWiFi.framework": "13.5 Beta 2", + "IO80211.framework": "13.5 Beta 2", + "WiFiAnalytics.framework": "13.5 Beta 2", + "WiFiPolicy.framework": "13.5 Beta 2", + }, + }, + "Remove Reference": { + "/System/Library/Extensions": [ + "AppleBCMWLANBusInterfacePCIe.kext", + "AppleBCMWLANBusInterfacePCIeMac.kext", + "AppleBCMWLANCore.kext", + "AppleBCMWLANCoreMac.kext", + "IO80211Family.kext", + ], + }, + }, }, "Brightness": { "Legacy Backlight Control": { diff --git a/resources/sys_patch/sys_patch_detect.py b/resources/sys_patch/sys_patch_detect.py index e2b5f5d17..48a9dd62f 100644 --- a/resources/sys_patch/sys_patch_detect.py +++ b/resources/sys_patch/sys_patch_detect.py @@ -57,6 +57,7 @@ class DetectRootPatch: self.brightness_legacy = False self.legacy_audio = False self.legacy_wifi = False + self.modern_wifi = False self.legacy_gmux = False self.legacy_keyboard_backlight = False self.legacy_uhci_ohci = False @@ -226,6 +227,11 @@ class DetectRootPatch: self.skylake_gpu = True self.amfi_must_disable = True self.supports_metal = True + + if self.constants.detected_os >= os_data.os_data.sonoma: + # Currently all graphics patches require a KDK + self.requires_root_kc = True + if self.supports_metal is True: # Avoid patching Metal and non-Metal GPUs if both present, prioritize Metal GPU # Main concerns are for iMac12,x with Sandy iGPU and Kepler dGPU @@ -537,6 +543,14 @@ class DetectRootPatch: # Due to extracted frameworks for IO80211.framework and co, check library validation self.amfi_must_disable = True + if ( + isinstance(self.constants.computer.wifi, device_probe.Broadcom) + and self.constants.computer.wifi.chipset in [device_probe.Broadcom.Chipsets.AirPortBrcm4360, device_probe.Broadcom.Chipsets.AirportBrcmNIC]): + if self.constants.detected_os > os_data.os_data.ventura: + self.modern_wifi = True + self.amfi_must_disable = True + self.requires_root_kc = True + # if self.model in ["MacBookPro5,1", "MacBookPro5,2", "MacBookPro5,3", "MacBookPro8,2", "MacBookPro8,3"]: if self.model in ["MacBookPro8,2", "MacBookPro8,3"]: # Sierra uses a legacy GMUX control method needed for dGPU switching on MacBookPro5,x @@ -571,6 +585,7 @@ class DetectRootPatch: "Brightness: Legacy Backlight Control": self.brightness_legacy, "Audio: Legacy Realtek": self.legacy_audio, "Networking: Legacy Wireless": self.legacy_wifi, + "Networking: Modern Wireless": self.modern_wifi, "Miscellaneous: Legacy GMUX": self.legacy_gmux, "Miscellaneous: Legacy Keyboard Backlight": self.legacy_keyboard_backlight, "Miscellaneous: Legacy USB 1.1": self.legacy_uhci_ohci, diff --git a/resources/sys_patch/sys_patch_generate.py b/resources/sys_patch/sys_patch_generate.py index 2cdba11d3..be6f6c0d8 100644 --- a/resources/sys_patch/sys_patch_generate.py +++ b/resources/sys_patch/sys_patch_generate.py @@ -166,6 +166,9 @@ class GenerateRootPatchSets: required_patches.update({"Legacy Wireless": all_hardware_patchset["Networking"]["Legacy Wireless"]}) required_patches.update({"Legacy Wireless Extended": all_hardware_patchset["Networking"]["Legacy Wireless Extended"]}) + if self.hardware_details["Networking: Modern Wireless"] is True: + required_patches.update({"Legacy Wireless": all_hardware_patchset["Networking"]["Modern Wireless"]}) + if self.hardware_details["Miscellaneous: Legacy GMUX"] is True: required_patches.update({"Legacy GMUX": all_hardware_patchset["Miscellaneous"]["Legacy GMUX"]})