How to Fix Broadcom WiFi on macOS Sequoia and Later
This guide covers fixing Broadcom WiFi on macOS Sequoia and Later using Clover and OpenCore. By following this guide, you'll be able to enable Broadcom based WiFi on macOS Sequoia and Later using Clover or OpenCore Bootloader. This guide is solely for OpenCore users and may not work with Clover as it has no option to block the kexts permanently other than manually which is done from the Clover GUI picker. This guide will be updated in the future if Clover gets such a feature.This guide must be followed on macOS Sequoia and later only. If you're running a prior version of macOS, there is the original Broadcom WiFi and Bluetooth guide that works up to macOS Ventura:

GUIDE - How to Enable Broadcom WiFi and Bluetooth on macOS [Clover/OpenCore]
How to Enable Broadcom WiFi and Bluetooth on macOS [Clover/OpenCore] This guide describes how to enable Broadcom WiFi and Bluetooth on macOS using Clover and OpenCore. By following this guide, you'll be able to enable Broadcom WiFi and Bluetooth on your non-Apple computer running macOS using...

Overview
Recently, Apple announced their new macOS lineup i.e. macOS Sequoia on June 06, 2023, and publicly released the final version this fall i.e. on September 26, 2023. Unfortunately, with the announcement of macOS Sequoia, Apple has officially dropped support up to Skylake, including IGPU support, followed by macOS Ventura. However, the biggest downfall we see is the removal of Broadcom WiFi support in macOS Sequoia. This has led to a major disappointment with the users who use non-Apple computers with macOS installed.
If you're not new and familiar with non-Apple computers running macOS, you might already know that on non-Apple computers, Broadcom WiFi is generally preferred for a native WiFi/BT function (such as Fenvi T919, BCM94360NG, BCM94352Z, etc). However, since the release of macOS Sequoia, Apple has removed support for all unsoldered Broadcom WiFi so if you have any of such models, the WiFi will not work as of now. If you check S/L/E, you'll notice that the support for older Broadcom based WiFi Cards are absolutely absent and all the related kexts are removed from the respective directory. This means even if you install a native WiFi Card (such as Fenvi T919 or BCM94360NG), the WiFi will still not work due to the lack of required drivers. Third-party WiFi such as Intel will continue to work with third-party kexts. In addition, the USB based WiFi having Realtek/MediaTek chipsets will also work with the supplied drivers from its manufacturer. However, there is still a workaround to get those cards working on macOS Sequoia, thanks to the OCLP team for their continued support for the legacy hardware.
Apple started to give hints from Monterey, where AirPortBrcmNIC was moved to a new location as a plugin, and a new kext IO80211FamilyLegacy.kext was introduced. To support the other latest WiFi models, a new kext AppleBCMWLANBusInterfacePCIeMac.kext was introduced since macOS Ventura and fast forward to macOS Sequoia, the IO80211FamilyLegacy.kext has been completely removed and no longer exists. This clearly tells us that Apple already planned to make the old models obsolete and remove the support in future releases due to their major shift from Intel to their own Apple Silicon based Mac lineups. This is not the first time Apple has done such. This practice is common with Apple and you would have probably known if you're an Apple enthusiast.
You might have a question that generally Apple has been using Broadcom WiFi in their Mac models since a long time
so does this means native supported Mac models which has support for macOS Sequoia, will lack the WiFi function? Well, the answer is no. That's because
Thus, leaving the WiFi/BT card in an unusable/non-working state.
View attachment 6594View attachment 6595
Neither it is available in the Menu bar.
View attachment 6596View attachment 6597
Requirements
Following are the requirements for enabling Broadcom WiFi on macOS. Please ensure you meet the requirements before proceeding with this guide.
WiFi/ BT Hardware |
|
macOS |
|
Bootloader |
|
Kexts |
|
Tools |
|
If you're attempting a clean install or an upgrade, it is highly recommended to perform a clean install or the upgrade first before you follow this guide.
STEP 1: Setup BIOS
The very first step is to set up BIOS to have the Broadcom WiFi/BT enabled on your system. This is because there are a few systems that have the option to Enable WiFi/BT in BIOS which affects the functionality under macOS/OS X.1. On your target computer, boot to BIOS. Refer to your user manual for the BIOS Key
2. Enable WiFi/BT function.
3. Save & Exit Setup.
STEP 2: Verify the WiFi Detection
The next step is to verify whether the installed card is being detected under macOS or not. This step is required in order to ensure you're on the right track and you have the right card as per the compatibility list. If the Card is not detected, even following the guide correctly will not help to get it recognized. In addition, not all WWN slots are M.2. There are a few systems with cNVi slots, where even if you replace the card with a compatible one, the card will not be detected at all. This is because of the proprietary connectivity interface by Intel. This means the particular CNVi slot on the motherboard will accept only Intel-based WiFi/BT Cards therefore if you replace the card, you must verify the detection of the WiFi/BT module. To verify the WiFi/BT detection, follow the steps below.1. Download Hackintool from the Download section.
2. Open Hackintool.
3. Locate your WiFi module under the PCIe section in Hackintool. The WiFi module is usually listed as a Network Controller under the Class and Subclass column.
View attachment 6598
STEP 3: Add Required Kexts
The next step is to install the required kexts in order to enable WiFi and Bluetooth support. Depending on your Card type, choose one from below.I. Apple Airport and Fenvi Cards
To enable the WiFi support, you'll need to add
IOSkywalkFamily.kext
and IO80211FamilyLegacy.kext
along with the child kext AirPortBrcmNIC.kext
. These two kexts are needed together to work in conjunction in order to enable the WiFi for Airport and Fenvi based cards.1. Download IOSkywalkFamily.kext and IO80211FamilyLegacy.kext.
2. Mount your ESP.
3. Copy
IOSkywalkFamily.kext
and IO80211FamilyLegacy.kext
to EFI/OC/Kexts
directory.View attachment 6599
4. Open your
config.plist
and add IOSkywalkFamily.kext
and IO80211FamilyLegacy.kext
entries in the Kernel>Add
section of your config.plist. In addition, you'll need to specify the MinKernel to 23.0.0
to ensure that the kext only loads on macOS Sequoia.View attachment 6600
NOTE: Your kext list and entries may differ as each system is different and will have different requirements.
II. Non-Apple AirPort and Non-Fenvi Cards
With the injection of IOSkywalker.kext+IO80211FamilyLegacy.kext (consists of AirPortBrcmNIC.kext) and patching with OCLP (later in the guide), the native cards will work (such as Fenvi T919, BCM94360NG, etc). However, if you have a card that does not have any of these matching IDs (14E4:43ba, 14e4:43a3, or 14e4:43a0), such as BCM94352Z, you'll also need to inject AirPortBrcmFixup.kext in order to drive them. It's no wonder that despite these cards being supported, they do not work OOTB and have always required AirPortBrcmFixup.kext and the related kexts for Bluetooth to work! This is because mostly these Cards are non-Apple manufactured cards. This step is only required for Non-Apple Airport and Non-Fenvi Cards i.e. cards that do not work OOTB in macOS Ventura or prior (such as BCM94352Z). Skip this step if you have an Apple AirPort and Fenvi Card with a Device ID (14E4:43ba, 14e4:43a3, or 14e4:43a0).
1. Download IOSkywalkFamily.kext, IO80211FamilyLegacy.kext and AirPortBrcmFixup.kext.
2. Mount your ESP.
3. Copy
IOSkywalkFamily.kext
, IO80211FamilyLegacy.kext
and AirPortBrcmFixup.kext
to EFI/OC/Kexts
directory.View attachment 6601
4. Open your
config.plist
and add IOSkywalkFamily.kext
, IO80211FamilyLegacy.kext,
and AirPortBrcmFixup.kext
entries in the Kernel>Add
section of your config.plist. In addition, you'll need to specify the MinKernel and MaxKernel as shown below to ensure that the kext only loads on the appropriate version of macOS, if using the same EFI for booting multiple macOS versions.View attachment 6612
5. You'll have to prevent
AirPortBrcm4360_Injector.kext
from loading. This can be achieved either by (i) removing the kext entry to keep the config.plist more tidy or (ii) using the boot arg to load only one specific driver or (iii) via the Device Properties or (iv) DSDT/SSDT patch or (v) by specifying the MinKernel and MaxKernel.View attachment 6613
NOTES:
- Please ensure the kexts are loading in the correct sorting order.
- Download the latest version for better support.
- Download only the RELEASE.zip file.
- If the kext is already present in the directory, replace it with a new version
- Do not use AirportBrcmFixup.kext.dSYM
- Your kext list and entries may differ as each system is different and will have different requirements.
Despite these Legacy Cards being supported previously at one time, the support has been removed since Sierra for the Broadcom 43224 and Broadcom 4331 since Mojave. To enable the WiFi support for these legacy cards (BCM4331 and BCM43224), you'll need to add
corecaptureElCap.kext
and IO80211ElCap.kext
along with the child kexts (AirPortBrcm4331.kex
t and AirPortBrcm43224.kext
). These two kexts are needed together to work in conjunction in order to enable the WiFi for legacy cards.1. Download corecaptureElCap.kext and IO80211ElCap.kext.
2. Mount your ESP.
3. Copy
corecaptureElCap.kext
and IO80211ElCap.kext
to EFI/OC/Kexts
directory.View attachment 6615
4. Open your
config.plist
and add corecaptureElCap.kext
and IO80211ElCap.kext
entries in the Kernel>Add
section of your config.plist. As this guide is for Broadcom only, you'll need to remove the AirPortAtheros40.kext
entry as shown below. In addition, you'll need to specify the MinKernel as shown below to ensure that the kext only loads on the appropriate version of macOS, if using the same EFI for booting multiple macOS versions. You can also use one of the kext as per your card and remove the irrelevant ones to keep the config.plist more tidy (later in the guide).View attachment 6616
Depending on the card you have e.g. Broadcom 4331, you can keep the
AirPortBrcm4331.kext
and remove the AirPortBrcm43224.kext
to keep the config.plist more tidy.View attachment 6617
Depending on the card you have e.g. Broadcom 43224, you can keep the
AirPortBrcm43224.kext
and remove the AirPortBrcm4331.kext
to keep the config.plist more tidy.View attachment 6618
NOTE: Your kext list and entries may differ as each system is different and will have different requirements.
AMFI
You can either use this step or can use STEP #. Never both.
STEP 4: Block Required Kexts
The next step is to block the IOSkywalk.kext. This step is required for Modern WiFi only regardless of the Apple AirPort and Fenvi or Non-AirPort and Non-Fenvi cards. If you have a legacy card, you can skip this step. Bocking theIOSkywalkFamily.kext
in macOS Sequoia will allow us to manually inject a previous version of IOSkywalkFamily.kext
, therefore allowing us to downgrade. This is required because, unless you don't block this kext, you'll not be able to inject the prior version of IOSkywalkFamily.kext
, and while the previous version of IOSkywalkFamily.kext
is injected with no blocking, it will throw an error when booting from the system drive. To block the IOSkywalk.kext
, follow the steps below.1. Assuming the
config.plist
is still open, add the following under Kernel>Block
section of your config.plist
. In addition, you'll need to specify the MinKernel to 23.0.0
to ensure that the kext is only blocked on macOS Sequoia.Arch | Identifier* | Comment | MinKernel | MaxKernel | MaxKernel | Strategy | Enabled |
---|---|---|---|---|---|---|---|
Any | com.apple.iokit.IOSkywalkFamily | Allow IOSkywalkFamily Downgrade | 23.0.0 | Exclude | YES |
NOTE: If you're using a USB Ethernet Adapter that utilizes the ECM Protocol, you'll have to add ECM-Override.kext to prevent Kernel Panic as Apple's DriverKit stack uses IOSkywalk for ECM Adapters.
STEP 5: Disable the Secure Boot Model
Once you have blocked the IOSkywalk.kext, the next step is to disable the Secure Boot Model. To disable the Secure Boot Model, follow the steps below1. Assuming the
config.plist
is still open, set the SecureBootModel
to Disabled
under the Misc>Security
section of your config.plistView attachment 6620
NOTE: Once you're done with the root patching and the WiFi is enabled, you can set the SecureBootModel to Default again.
STEP 6: Add Bluetooth Parameters
Once you have added the required kexts, the next step is to add the required parameters for Bluetooth functionality. To add the Bluetooth parameters, follow the steps below:1. Assuming the config.plist is still open, add the following keys under the 7C436110-AB2A-4BBB-A880-FE41995C9F82 UUID list in the NVRAM section of your config.plist:
Key: bluetoothExternalDongleFailed
Value: 00
Type: DATA
Key: bluetoothInternalControllerInfo
Value: 00000000 00000000 00000000 0000
Type: DATA
2. Navigate to the Delete section and add the following keys under the 7C436110-AB2A-4BBB-A880-FE41995C9F82 UUID list in the NVRAM section of your config.plist:
- bluetoothExternalDongleFailed
- bluetoothInternalControllerInfo
5. Save your config.plist
NOTE: Values and letters are case sensitive.
STEP 7: Add Boot Args
Once you have disabled the Secure Boot Model, the next step is to add the required boot args. To add the boot args, follow the steps below1. Assuming the
config.plist
is still open, add amfi=0x80
to the boot-args key under the 7C436110-AB2A-4BBB-A880-FE41995C9F82
UUID list in the NVRAM
section of your config.plist.View attachment 6621
QUICK INFO: When using
amfi=0x80
boot arg, certain applications may not respond and eventually crash such as Firefox as reported by @svan71.STEP 8: Disable System Integrity Protection (SIP)
Once you have added the required boot args, the next step is to disable the System Integrity Protection. To disable the SIP, follow the steps below.1. Assuming the
config.plist
is still open, set the csr-active-config
to 03080000
as the DATA value for root patching.View attachment 6622
2. Save your
config.plist
.STEP 9: Add ECM Dongle Fix
This is a complete optional step and is only required if you wish to use USB to Ethernet adapter/dongle that utilizes the ECM protocol.
STEP 9: Boot using the new Configuration
Once you're done with the above steps, you'll need to boot with the updated configuration. Simply restart your system. It is recommended to reset NVRAM twice at least.once you boot with the new configuration, the system will how that the wifi is enabled as the required kexts are injected. However, you won't be able to find and/or connect to any network.
View attachment 6625View attachment 6626
Neither the WiFi Networks are available from the Menubar
View attachment 6627
If you check the IOReg, you'll find that neither the AirPort_BrcmNIC or the IOSkywalk Kexts are loading.
View attachment 6628
STEP 10: Patch System Volume
To patch the system using OCLP, follow the steps below.1. Download OpenCore Legacy Patcher (OCLP) from the download section of this forum.
2. Open OCLP and you'll see something similar to the screenshot attached below.
View attachment 6629
3. Click on Post Install Root Patch and you'll see something similar to the screenshot attached below.
View attachment 6631
As you can see, the OCLP has automatically detected what patch to apply. If the SIP is enabled, you may notice a message stating "SIP is Enabled"
View attachment 6632
If you notice that, make sure to disable it as described in STEP #1.
Click on Start Root Patching and you'll need to run OCLP as root. You'll see something similar to the screenshot attached below.
View attachment 6633
Click on Yes to relaunch OCLP as root. When prompted, enter your system password. You'll see something similar to the screenshot attached below.
View attachment 6638View attachment 6639
Once the OCLP is launched as root, it will start patching the system volume.
View attachment 6640
Once OCLP finishes patching the system volume, it will prompt to reboot. Click on Reboot to restart your system.
View attachment 6641View attachment 6642
STEP 11: Restart your System
After performing all the above steps, restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least.Verifying the WiFi
The next step is to verify whether the WiFi and BT are working or not. Follow the steps to verify the WiFi function.System Report
- Verify the WiFi Interface in About This Mac>System Report>Wi-Fi
System Preferences
- Verify WiFi discoverability in System Preferences>Network
System Report
- Verify the WiFi Interface connection with 2.4GHz and 5GHz in About This Mac>System Report>Wi-Fi
System Preferences
- Verify WiFi connection in System Preferences>Network
Menubar
- Verify connected WiFi Networks and Other Networks
Menubar
- Verify the network details such as signal strength and channel number using the Alt key.
View attachment 6656View attachment 6657
IOReg
- Verify AirPort_BrcmNIC and AirPort_Brcm43xxLLSkywalkInterface is loading in IOReg
Browser
- Verify the speed tests for 2.4GHz and 5GHz Network
View attachment 6662 View attachment 6663
STEP
This is optional step and might be required for your system. On some systems, if the VT-d is enabled, the WiFi interface will keep cycling continuously unless you turn it off. This issue was also documented in the thread. This issue is mostly seen on GIGABYTE Motherboards. To fix this, you'll have to patch the DMAR table. See for more info.
Recommended Configuration
The following configurations are the only valid configurations. Anything else is likely wrong and should not be used.Card Type | Kext Configuration | Kext Install Location |
---|---|---|
Apple Airport and Fenvi |
|
|
Non-AirPort and Non-Fenvi |
|
|
Legacy |
|
|
Miscellaneous
Although, the downgrade will make the WiFi work, there's a catch. macOS has introduced a new driver style "DEXT" which requires the VT-d to function and load the appropriate driver for the ethernet. The ethernet models which has native support on macOS using the DEXT, is dependent on IOSkywalk. The Ethernet depending on the IOSkywalk, will no longer work, as now most of the Ethernet are now supported natively, as long as you have VT-d enabled. To overcome this issue, you’ll have to use the third party kexts for the Ethernet, when patching the WiFi on macOS Sonoma or later. Such as IntelMausi for Intel and AppleIGC (I225/I226). The other NICs such as Atheros which never had native support, will have no problems as its based off a community driver, ported from Linux drivers. Most of these problems for the onboard NICs can be solved by using the alternative kexts. A few exceptions are there like I210/I211.However, another problem is that if you’re going to use high performance Ethernet such as Intel 700 or 800 series or Mellanox, again, the downgraded IOSkywalkFamily (due to patching the BCM cards) will not let you load the drivers (DEXT) as the drivers are native and to function, they require two things: VT-d and Vanilla IOSkywalk. The Vanilla IOSkywalk will not let your BCM WiFi working on macOS Sonoma or later as the support for BCM cards is removed by Apple since Sonoma. So, as of now, the only solution is to patch the BT, use Ethernet to have the full advantage of speed and forget the Broadcom WiFi on newer macOS versions. This limits the AirDrop and Handoff function but you can enjoy your high performance network card. The alternative solution is to either use the BT function only from the BCM cards or switch to an Intel based WiFi with limited support for AirDrop, Handoff and AirPlay. This issue has also been confirmed by @PeterMack and @lopess as well. See for more information.
To those who are looking for solution, currently, there is no other workaround yet which is reliable. If a method is discovered, this article would be updated in the future.
Last edited: