Experimental bluetooth headset battery monitoring application for MacOS
MacOS monterey now supports 3rd party bluetooth headsets by itself!
I have therefore decided to stop development on this project.
This app will not work on Monterey, I have no plans on adding adding compatibility with Monterey, and I recommend not using it at all on Monterey to begin with.
You can read my full announcement here.
The missing macOS bluetooth headset battery indicator app.
Get the latest .DMG here.
Coming soon once app goes stable.
It will work with any headset that conforms to the Apple bluetooth spec*
Translation:
If your Android device can read it’s battery status, it will very likely work.
If your iPhone device can read your headset’s battery status, it will work.
* = You read that correctly, Apple did not bother to implement their own specifications on the Mac.
Whilst we’re still in beta, it might be possible that Akku reports that it can’t find any battery status for your device.
Before opening an issue, check the following:
Use Bartender to hide it, and configure it to only show Akku on changes.
I recommend the following config:
No. Like most of my apps, it uses pretty unorthodox API’s that will very likely not work in the app sandbox and/or be approved by Apple.
However, Akku contains a automatic updater that will keep it up to date, and additionally, you can manually check by clicking ‘Check for updates’ from it’s menu.
The simple explanation:
You give it root, and it will monitor all bluetooth communication that goes through the system to intercept battery indicator commands.
The hard explanation:
You give it root, and it will install a helper application.
The helper proceeds to communicate to the app through XPC
Once the helper is activated, it will communicate with the IOBluetoothHCIController
driver through IOKit
It will map a region of memory from the kernel to Akku, and scan through the raw bluetooth data.
Akku can currently decode HCI events, L2CAP packets and RFCOMM packets (RFCOMM is build upon L2CAP).
Once it has exhausted said bluetooth data, it will poll and instruct the system to dump any new data to Akku’s mapped memory every 5 seconds.
The only communication that goes back to the non-privileged process is the normalized battery indication signals.
Both Akku and it’s helper verify their signatures to ensure no unauthorized access is made.
Both are codesigned with a valid Apple developer cert.