Releases
MtkBt 0.2.4
Stops a reset loop that could freeze USB input (#1).
0.2.3 added a Bluetooth subsystem reset for chips that ignore "Bluetooth on" after a warm restart. The limit of 2 resets counted per MtkBt instance. If a reset makes the chip drop off the USB bus, it comes back as a new device, a new MtkBt starts and resets it again, round after round. On one AMD desktop board that kept the USB controller busy enough to freeze the keyboard and mouse every few seconds, wired ones included, also in Recovery and the installer.
0.2.4 caps resets at 2 per boot across every instance. After that MtkBt gives up and MtkBtWarmPath says "reset budget for this boot used up"; a full power off clears the chip.
If you run 0.2.3, update. The kext in MtkBt-0.2.4-ci.zip is built by GitHub Actions from this tag.
Downloads
- MtkBt-0.2.4-ci.zip 458 KB · 2 downloads
MtkBt 0.2.3
Fixes Bluetooth turning itself off after a restart (#1).
After a warm restart the MT7925 can still hold part of the firmware from the previous boot. When sections 0 and 1 came back "already loaded", 0.2.2 sent only section 2, called the download good, and gave up when the chip then ignored the "Bluetooth on" command (FUNC_CTRL). ioreg showed MtkBtState = error with MtkBtLastError = wmt op 6 flag 0: no event, and macOS fell back to the placeholder controller, so the toggle spun and switched off.
0.2.3 treats that case like a half-loaded chip: it resets the Bluetooth subsystem, downloads the whole firmware again and sends FUNC_CTRL once more (at most 2 resets per start, as before). Cold boots are unchanged.
The kext in MtkBt-0.2.3-ci.zip is built by GitHub Actions from this tag. On macOS 26 build 25G241 also install LegionBtFix, or bluetoothd crash-loops a few seconds after the controller comes up.
Downloads
- MtkBt-0.2.3-ci.zip 458 KB · 10 downloads
MtkBt 0.2.2
MediaTek 0E8D:0717 (the AMD RZ717 card on AM5 desktop boards, first seen on an ASRock X870 Steel Legend WiFi on Tahoe) now matches without a hand-edited plist. The kext also sets the MT7925 sleep protection bypass (bit 1 of 0x18011100) before every download pass and again after firmware activation, before FUNC_CTRL: the linux-bluetooth fix "Bluetooth: btmtk: Fix MT7925 WMT command timeout due to sleep protection" (2026-05-31) for boards where the 0717 wakes with the protection active and ignores WMT commands. It is a precaution: the first 0717 report loaded its firmware fine without it. The write is best effort (MtkBtSlpProt in the registry says what happened) and changes nothing on a card that does not answer the register. MtkBtVersion now reports the real version.
Same loader and firmware as 0.2.1. Built on macOS 26.7.1, tested on 0489:E111; firmware load confirmed on 0E8D:0717 by the reporter's registry dump (MtkBtState = ready). If the state is ready and system_profiler still shows the placeholder controller, the loader is done and bluetoothd is not adopting the dongle: check the two NVRAM keys from the README, then BlueToolFixup.
Downloads
- MtkBt-0.2.2-ci.zip 457 KB · 4 downloads
- MtkBt-0.2.2-RELEASE.zip 457 KB · 20 downloads
MtkBt 0.2.1
Matching only: every MT7925 Bluetooth USB id the Linux btusb driver lists (Foxconn 0489:E111/E113/E118/E11E/E124/E139/E13A/E0FA/E10F/E110/E116/E14E/E14F/E150/E151, IMC Networks 13D3:3588/3602/3603/3604, MediaTek 0E8D:8C38). 0.2.0 matched 0489:E111 only, so cards from other makers never loaded the kext. Same loader and firmware as 0.2.0, tested on 0489:E111 only; the README says how to read your card's id and what to report.
Downloads
- MtkBt-0.2.1-ci.zip 457 KB · 0 downloads
- MtkBt-0.2.1-RELEASE.zip 457 KB · 5 downloads
MtkBt 0.2.0
Bluetooth firmware loader for the MediaTek MT7925 (USB 0489:E111) on macOS, tested on a Lenovo Legion 5 15IAX10 with macOS Tahoe 26.7.1 (25G241), OpenCore 1.0.8 and BlueToolFixup 2.7.2. Needs BlueToolFixup and its two NVRAM keys; see the README. For AirPods and LE devices on this controller you also want LegionBtFix.
The zip holds MtkBt.kext plus LICENSE, NOTICE.md and LICENSES/, which must stay with the binary. The kext is the exact file running on the test laptop; a clean build of this tag with tools/build-mac.sh and Apple clang 17 reproduces it.
sha256 MtkBt.kext/Contents/MacOS/MtkBt: 4f982556a6dd0edc3d02b288a408835e230dea54dfe0520ba0266b93e3000399
Downloads
- MtkBt-0.2.0-ci.zip 457 KB · 0 downloads
- MtkBt-0.2.0-RELEASE.zip 457 KB · 4 downloads