Catalina Update Gave a firmware update that broke Bluetooth in my MacBook Pro
TL;DR
A firmware update has broken many old macs bluetooth
Longer story:
After pairing my earphones one day like usual, the bluetooth on my MacBook Pro Late 2012 became unavailable.
I switched bluetooth on from the menubar. I connected my earphones. It didn't produce any sound. So i switched bluetooth off. Since then it never turned back on and the bluetooth on button is greyed out.
The hardware isn't detected at all.
The bluetooth preference pane is gone.
No amount of online solutions worked/fixed it, including safe boots, recovery mode, plist files deletion, NVRAM SMC resets.
It's not just me. A local technician told me there's been the same problem of wrecked bluetooth in lots of macs due to a firmware update. Here's another post highlighting the same:
https://discussions.apple.com/thread/8150033?answerId=32870725022#32870725022
Now even if I roll back to an older OS it was proved that it will not be fixed.
A strange incident:
The bluetooth preference pane came back once by itself. It was as if it fixed itself. But alas, it did not show any discoverable devices and did not connect anything (Airdrop doesn't work either). I tried to remove all devices but nothing worked. I noticed when I switched on my BT earphones the button became greyed out like before. And when I switched the BT earphones off It came back but only the interface showed any signs of change. It still wouldn't show any discoverable devices. After restarting the bluetooth preference pane never back. As if nothing happened.
Anyway,
Technical observations:
I logged in console to get more info and it shows:
The framework WPDaemon is part of iOS13. But since Catalina I'm guessing Apple has integrated that iOS framework with macOS.
Link to the same framework: https://github.com/w0lfschild/macOS_headers/tree/master/macOS/PrivateFrameworks/WPDaemon/118But
This framework must have a variable called CBCentralManager. That variable has been set to turnedOff state (maybe triggered by me turning off bluetooth?). And now that daemon is not powering on.
This has been a problem with Apple iOS developers creating bluetooth enabled applications; here's a few forums discussing the problem:
Why the state of CBCentralManager is always Unsupported: https://developer.apple.com/forums/thread/47230
Incoherent CBCentralManager state in iOS 11: https://developer.apple.com/forums/thread/91664
CBCentralManager is not powered on
CBCentralManager always return .poweredOff state on iOS 11.1.x
Now... Can people who faced the same issue raise some voice? The only solution as of yet is to replace the bluetooth card, or if that does not work then change the whole motherboard. Single action of turning off bluetooth triggered the software to not recognise the hardware completely.
I hope Apple notices the issue and pushes an update to fix it.
MacBook Pro 13″, macOS 10.15