I have tested this on macOS 10.14.6 with AR9565 combo Wifi/BT card. The kexts have been developed by itlwm developer zxystd.
Background:
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+.
Caveats:
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.
Download:
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.
Debug:
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
Source:
https://github.com/zxystd/AthBluetoothFirmware/
Credits:
zxystd