AppleBCMWLANCompanion.kext 是黑苹果屋搜集到的Airport Broadcom/博通 WiFi卡所需的补丁。需要配合Lilu使用。无需 root 补丁即可在 macOS Sonoma、Sequoia 和 Tahoe 上恢复旧版 Broadcom Wi-Fi 卡.
- macOS Tahoe
- 26.0(25A354)
- macOS 红杉
- 15.7(24G222)
- macOS 索诺玛
14.8(23J21)(尚未验证)
其他系统尚未测试。由于维护负担过重,旧系统将不再受支持。
芯片名称 | 设备 ID | 名称 |
---|---|---|
BCM43602 | 0x14E4, 0x43BA | BCM943602BAED、BCM943602CDP、BCM943602CS、DW1830 |
BCM4350 | 0x14E4, 0x43A3 | BCM94350ZAE,DW1820A |
使用方式
假设您已了解如何编辑引导加载程序配置文件config.plist
以及如何通过引导加载程序安装内核扩展 (kext)。请仔细阅读每个步骤。
请检查 PCI 设备 ID,确保您的 Wi-Fi 芯片受支持。
请确保您当前的 macOS 版本受支持。
BCMC 依赖于 Apple 新的 Broadcom Wi-Fi 驱动程序和 802.11 无线网络堆栈,因此您必须确保与这些组件相关的系统框架和库保持未受污染。请注意,BCMC 无需禁用系统完整性保护 (SIP)或Apple 的移动文件完整性 (AMFI)即可正常运行。
OpenCore 旧版补丁程序用户
如果您已通过 OpenCore Legacy Patcher 应用了与 Wi-Fi 相关的 root 补丁,则必须先还原它们。这包括从 中删除相关的 kext 和配置config.plist
。以下是需要检查的 kext 和配置列表。请注意,此列表可能不完整,因此请参考您应用 root 补丁时使用的指南。
- 删除
AMFIPass.kext
关闭 Apple 移动文件完整性保护的程序。 - 删除
IOSkywalkFamily.kext
会降低 Skywalk 网络堆栈的版本。 - 删除
IO80211FamilyLegacy.kext
及其插件(例如AirPortBrcmNIC.kext
),这会降低 802.11 无线网络堆栈和驱动程序的性能。 - 删除
Block
阻止 vanillaIOSkywalkFamily.kext
加载的条目。 csr-active-config
通过设置为来启用系统完整性保护 (SIP)00000000
。
强烈建议您在测试 BCMC 之前进行全新安装并保持系统完整性保护 (SIP)处于活动状态。
Apple 的 Broadcom Wi-Fi 驱动程序依赖于AppleVTD
和IOMapper
,因此您需要在 BIOS 设置中启用VT-d
。根据您的机器配置,您可能需要修补该DMAR
表(修复 指南)。
Broadcom FullMAC Wi-Fi 卡依靠固件才能正常工作。您可以本文附件下载与您的 Wi-Fi 芯片匹配的固件。建议将固件存储在 中/usr/local/share/firmware/wifi/
。如果这些目录不存在,您可以在终端中运行以下命令来创建它们:
sudo mkdir -p /usr/local/share/firmware/wifi/
此存储库还提供每个 Wi-Fi 固件的 SHA-256 校验和。建议您验证下载的固件文件的校验和。您可以在终端中运行以下命令来执行此操作。请注意,您需要相应地调整固件文件名。
shasum -a 256 /usr/local/share/firmware/wifi/brcmfmac43602-pcie_7.35.177.61.bin
FireWolf@MacPro ~ % shasum -a 256 /usr/local/share/firmware/wifi/brcmfmac43602-pcie_7.35.177.61.bin
bf4cfc23ee952a3d82ef33a0f5f87853201c98f1bed034876a910f354f37862d /usr/local/share/firmware/wifi/brcmfmac43602-pcie_7.35.177.61.bin
检查校验和是否与本仓库提供的校验和匹配。如果匹配,则记录校验和以供下一步使用。
您可以使用Hackintool检索设备路径。
示例设备路径是PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
。
您需要更新引导加载程序配置文件config.plist
,为您的 Wi-Fi 卡添加以下属性。例如,如果您使用的是 OpenCore,则可以在 下添加设备属性DeviceProperties/Add/<DevicePath>
,其中<DevicePath>
是您在上一步中获得的路径。
Device Property Name | Type | Value | Required | Notes |
---|---|---|---|---|
bcmc-firmware-path | String | /usr/local/share/firmware/wifi/<FirmwareName>.bin |
Yes | <FirmwareName>.bin is the firmware file name. |
bcmc-firmware-hash | Data | The SHA-256 checksum of the firmware you are using | Yes | Refer to the previous step. |
bcmc-srom-slide | Data | 00000000 for BCM43602, 40000000 for BCM4350 |
Yes* | Required for BCM4350. Not Required for BCM43602. |
虽然上表仅列出了 BCMC 的基本设备属性,但您还可以使用其他属性来自定义 Wi-Fi 卡的行为(例如,设置国家/地区代码)。请参阅手册以获取完整的设备属性列表。
OpenCore 的 config.plist 中针对 BCM43602 的示例代码片段
<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>
<key>PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)</key>
<dict>
<key>bcmc-firmware-path</key>
<string>/usr/local/share/firmware/wifi/brcmfmac43602-pcie_7.35.177.61.bin</string>
<key>bcmc-firmware-hash</key>
<data>
v0z8I+6VKj2C7zOg9fh4UyAcmPG+0DSHapEPNU83hi0=
</data>
<key>bcmc-srom-slide</key>
<data>
AAAAAA==
</data>
</dict>
</dict>
</dict>
在本文下载地址中下载最新版本,并需要更新您的引导加载程序配置文件config.plist
。由于 BCMC 包含 Lilu 插件,因此您必须确保在之后AppleBCMWLANCompanion.kext
注入。 Lilu.kext
正常情况下,您应该始终使用该RELEASE
版本,以避免因过多日志记录而导致性能下降。
BCMC 路由附加功能以简化对 Wi-Fi 驱动程序的研究,因此如果您使用该版本,您还需要和DEBUG
的特殊版本:Lilu
DebugEnhancer
LiluXL
:预先分配 16 MB 的临时可执行内存,以允许路由大量功能。DebugEnhancer64
msgbuf
:为过多的内核日志记录分配 64 MB 消息缓冲区( )。
您必须添加以下启动参数:
wlan.pcie.detectsabotage=0
这会阻止 Wi-Fi 驱动程序检查芯片。如果您忘记添加此参数,您的 Wi-Fi 芯片可能会在完全重置之前无法响应。
强烈建议您将它添加-v
到您的启动参数中。
您现在可以重新启动计算机,并且原生 Wi-Fi 支持应该已准备就绪。
您可以通过在终端中运行以下命令来验证 BCMC 是否已加载:
kextstat | grep bcmc
您应该能够看到 kext 包标识符science.firewolf.bcmc
。
您可以通过在终端中运行以下命令来获取日志:
sudo dmesg | grep bcmc
您应该能够看到类似这样的内容:
[ 1.136079]: bcmc: void AppleBCMWLANCompanion::start() PInfo: AppleBCMWLANCompanion 1.0.0 (3369554) starts on Darwin 25.0.0.
[ 1.139448]: bcmc: void AppleBCMWLANCompanion::start() PInfo: Build Date: Wed Sep 17 08:34:03 UTC 2025.
[ 1.142183]: bcmc: void AppleBCMWLANCompanion::start() PInfo: Copyright (C) 2023-2025 FireWolf @ FireWolf Pl. All Rights Reserved.
[ 1.145731]: bcmc: void AppleBCMWLANCompanion::start() DInfo: Callback functions have been registered.
[ 2.035510]: bcmc: void AppleBCMWLANCompanion::processKernel(KernelPatcher &) DInfo: Processing the kernel with the patcher at 0xffffff801a60a890.
以下列出了 BCMC 支持的启动参数的完整列表。正常情况下,您根本不需要它们。
如果启动参数有Boolean
类型,则将启动参数字符串添加到引导加载程序配置文件或boot-args
NVRAM 中的条目中。
如果启动参数是数字类型(例如UInt32
),则将启动参数字符串与值一起以 的形式添加<Name>=<Value>
。例如,如果名称为bcmcval
,值为10
,<Name>=<Value>
则变为bcmcval=10
。
本节介绍与 BCMC 中的 Lilu 插件相关的启动参数。
- Name:
-bcmcoff
- Value Type:
Boolean
- Default Value:
false
- 描述:添加此启动参数以关闭 BCMC 中的 Lilu 插件。
- Name:
-bcmcdbg
- Value Type:
Boolean
- Default Value:
false
- 描述:添加此启动参数以启用 BCMC 中 Lilu 插件的调试输出。
- 注意:由于 BCMC 使用其自己的调试输出机制,因此此启动参数已过时。
- Name:
-bcmcbeta
- Value Type:
Boolean
- Default Value:
false
- 描述:添加此启动参数以在不受支持的操作系统上启用 BCMC 中的 Lilu 插件。
- 注意:由于 BCMC 支持 macOS Sonoma、Sequoia 和 Tahoe,因此永远不需要此启动参数,并且根据 Apple 的说法,Tahoe 是最后一个支持 Intel 的 macOS。
本节介绍与 BCMC 中的芯片配置器组件相关的启动参数。
- Name:
-bcmcpbo
- Value Type:
Boolean
- Default Value:
false
- 描述:添加此启动参数以收集有关 Wi-Fi 芯片的信息,而无需加载其余驱动程序。
本节介绍与更改本机 Wi-Fi 驱动程序行为相关的启动参数。
- Name:
-bcmcnocore
- Value Type:
Boolean
- Default Value:
false
- 描述:添加此启动参数以防止核心层被初始化。当此启动参数存在时,驱动程序将不会被加载。
描述了 BCMC 的局限性和已知问题。
本节介绍 BCMC 支持的所有 Wi-Fi 卡的常见问题。
目前,BCMC 支持的 Wi-Fi 卡不支持 AWDL。与旧版 Broadcom Wi-Fi 驱动程序完全通过软件处理 AWDL 不同,当前的 Wi-Fi 驱动程序将此功能卸载到固件中。因此,所有依赖 AWDL 的Continuity功能(例如 AirDrop)目前均无法使用。您可以使用LocalSend作为替代方案,或者等待 OpenCore Legacy Patcher 添加对 macOS Tahoe 的支持。
与 Wi-Fi 适配器共享互联网可能无法正常工作。
让计算机进入睡眠状态或唤醒它可能会引发内核恐慌。
本节介绍特定 Wi-Fi 卡的特定问题。
目前不支持连接到受 WPA 或 WPA2 保护的网络。固件不支持卸载 WPA 四次握手,而驱动程序要求固件自行处理身份验证过程。
Wi-Fi 菜单显示错误的传输速率 (Tx Rate) 24 Mbps,而实际速率更高。这是当前固件的一个错误。目前无法切换到其他可用固件,因为它们不支持卸载 WPA 四次握手。
更新日志 · 历史版本
下载地址包含其他更新历史版本
【解压密码:imacos.top】
评论0