Jump to content

AR3012: Bluetooth firmware uploader & injector - macOS 10.12 and later

Recommended Posts

I have tested this on macOS 10.14.6 with AR9565 combo Wifi/BT card. The kexts have been developed by itlwm developer zxystd.


Last successful method for uploading Atheros 3012 Bluetooth adapter firmware at cold start on a Hackintosh was a closed source kext developed by @EMlyDinEsH which won't work beyond macOS 10.12. In September 2020, zxystd released Ath3kBT and Ath3kBTInjector kexts for uploading firmware and injecting ids for enabling On/Off switch in Bluetooth PrefPane for AR3012 chip in macOS 10.15+. Kexts were recently improved for compatibility with macOS 10.12+.

⚠️ Ath3kBTInjector kext has a small defect: if you want to switch Bluetooth On/Off, you 1st need to turn Wi-Fi off.  

Ath3kBTInjector can be avoided for those who don't mind grayed out bluetooth On/off switch in Bluetooth PrefPane.



Github Release Page


Tutorial :
1. Download latest version from developer's Github repo.
2. Place Ath3kBT.kext and Ath3kBTInjector.kext in your OpenCore kexts folder.
3. In OpenCore Config.plist, add those two kexts under Kernel->Add along the rest of your other kexts and enable them. Save your modified config afterwards.

⚠️Note that, in OpenCore Ath3kBTInjector must be loaded after Ath3kBT. This does not apply to Clover.

4. Reboot your Hackintosh.



For debugging, last boot logs can be Inspected with kext id.

Sample log for successful upload of firmware under macOS 10.14.6.

2021-04-05 07:04:58.159179+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::probe
2021-04-05 07:04:58.166509+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::probe
2021-04-05 07:04:58.173544+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::start!
2021-04-05 07:04:58.180272+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.186809+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::start: device reset
2021-04-05 07:04:58.193656+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::start: num configurations 1
2021-04-05 07:04:58.202250+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.208436+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.214628+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.220651+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.226862+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.233100+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:04:58.238779+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::start Found Bulk out endpoint!
2021-04-05 07:04:58.245970+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT try to load patch rom file AthrBT_0x31010000.dfu
2021-04-05 07:04:58.305477+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT try to load syscfg file ramps_0x31010000_40.dfu
2021-04-05 07:04:58.314216+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT firmware was already in normal mode
2021-04-05 07:04:58.318405+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT: firmware loaded successfully!
2021-04-05 07:04:58.319098+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::start: device status 3
2021-04-05 07:04:58.326628+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:05:01.722502+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:05:01.733098+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:05:01.733460+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message
2021-04-05 07:05:01.735147+0530  localhost kernel[0]: (Ath3kBT) Ath3kBT::message







  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...