Releases: kavishdevar/librepods
v0.2.0
What's changed
- Fixed all stability issues with v0.2.0-alpha.x releases
- Support xposed api v101
- Added back VendorID hook toggle in app's settings
Some features on Play require an in-app purchase. The following features are free on Play:
- Battery status
- Ear detection
- Changing Listening Mode
- Press and Hold listening mode customization
However, all builds released here will have all features available for free.
Note
Signing keys changed, you will have to uninstall the app first.
v0.2.0-alpha.2
- removed dependency on radare2
- added A16 QPR3 BluetoothSocket constructor
Important
- pick the
no-di-hookapk if you have connectivity issues with the normal one or if you are using A17 Beta 3+ which doesn't need root for basic stuff - v0.2.0 might not be stable, I've also added a build of the older version (v0.1.0) with the new constructor
yes, I know, the releases aren't exactly easy to understand, but I had to make a release because google keeps on changing the constructor breaking the app on newer versions of Android.
linux-v0.1.0
Full Changelog: v0.1.0-rc.4...linux-v0.1.0
v0.2.0-alpha (multi-device, accessibility features, and liquid glass)
Important
If you downloaded the build before 04:30 UTC, October 1, please download it again if you are experiencing crashes. (Fixed compatibility issues with Magisk by calling su instead of using a full path.)
What's Changed
Android
bunch of new features, check #202 and the branch's readme
- adds multi-device capability
- adds accessibility features (like customizing transparency mode)
- adds loud sound reduction option
- adds camera control
- adds hearing aid adjustments (not hearing test!)
- liquid glass (just because it was easy to implement, mostly, just more rounded corners)
- adds a bunch of settings that already should've been there in the first place, check screenshots in the branch
Linux
- [Linux] Read AirPods state from BLE broadcast when not connected by @tim-gromeyer in #138
- [Linux] Compress images by @tim-gromeyer in #139
- [ImgBot] Optimize images by @imgbot[bot] in #140
- [Linux] Add Qr-Code to sync irk and enc key by @tim-gromeyer in #142
- [Linux] Fix battery sometimes showing 127% by @tim-gromeyer in #143
- [Linux] Improvementens to noise control mode by @tim-gromeyer in #144
- [Linux] New ear detection implementation by @tim-gromeyer in #145
- [Linux] Replace
playerctlby @tim-gromeyer in #147 - [Linux] DBus fixes by @tim-gromeyer in #148
- [Linux] Remember battery state (closes #149) by @tim-gromeyer in #150
- [Linux] Autostart im hidden mode by @tim-gromeyer in #156
- [Linux] Rename to Librepods by @tim-gromeyer in #157
- [Linux] Start/Stop BLE scan when going to sleep by @tim-gromeyer in #162
- Fixes and improvements to the Linux readme by @mbmjertan in #168
- Add option for alternate head tracking packets by @Copilot in #176
- android: add ability to launch digital assistant on long press by @kavishdevar in #180
- Fixed build instructions for ubuntu by @Raspberrynani in #183
- [Linux] chore: change logging name airpodsApp -> Librepods by @NL-TCH in #194
- fix: update rename function call for airPods by @naveen521kk in #191
- [Linux] Let users edit Phone bluetooth MAC via GUI by @NL-TCH in #195
- android,linux: update feature flags packet data byte to remove adaptive volume by @kavishdevar in #192
- i18n: add chinese translation by @qlenlen in #200
- [Linux] Autobuild app on any branch change + publish artifact by @NL-TCH in #196
New Contributors
- @mbmjertan made their first contribution in #168
- @Copilot made their first contribution in #176
- @Raspberrynani made their first contribution in #183
- @NL-TCH made their first contribution in #194
- @naveen521kk made their first contribution in #191
- @qlenlen made their first contribution in #200
Full Changelog: v0.1.0-rc.4...v0.2.0-alpha
nightly release (f547cc1)
Linux
- add option to set phone MAC from app settings
- fix random volume jumps (thanks @gheinzer!)
Android
- add option to launch digital assistant on long press (requires 2025 beta fw)
- fix #27 (again, thanks to @gheinzer)
- add alternate head tracking packets for beta fw (to be manually enabled from app settings)
Auto-generated notes
What's Changed
- [Linux] Read AirPods state from BLE broadcast when not connected by @tim-gromeyer in #138
- [Linux] Compress images by @tim-gromeyer in #139
- [ImgBot] Optimize images by @imgbot[bot] in #140
- [Linux] Add Qr-Code to sync irk and enc key by @tim-gromeyer in #142
- [Linux] Fix battery sometimes showing 127% by @tim-gromeyer in #143
- [Linux] Improvementens to noise control mode by @tim-gromeyer in #144
- [Linux] New ear detection implementation by @tim-gromeyer in #145
- [Linux] Replace
playerctlby @tim-gromeyer in #147 - [Linux] DBus fixes by @tim-gromeyer in #148
- [Linux] Remember battery state (closes #149) by @tim-gromeyer in #150
- [Linux] Autostart im hidden mode by @tim-gromeyer in #156
- [Linux] Rename to Librepods by @tim-gromeyer in #157
- [Linux] Start/Stop BLE scan when going to sleep by @tim-gromeyer in #162
- Fixes and improvements to the Linux readme by @mbmjertan in #168
- Add option for alternate head tracking packets by @Copilot in #176
- android: add ability to launch digital assistant on long press by @kavishdevar in #180
- Fixed build instructions for ubuntu by @Raspberrynani in #183
- [Linux] chore: change logging name airpodsApp -> Librepods by @NL-TCH in #194
- fix: update rename function call for airPods by @naveen521kk in #191
- [Linux] Let users edit Phone bluetooth MAC via GUI by @NL-TCH in #195
- android,linux: update feature flags packet data byte to remove adaptive volume by @kavishdevar in #192
- i18n: add chinese translation by @qlenlen in #200
- [Linux] Autobuild app on any branch change + publish artifact by @NL-TCH in #196
New Contributors
- @mbmjertan made their first contribution in #168
- @Copilot made their first contribution in #176
- @Raspberrynani made their first contribution in #183
- @NL-TCH made their first contribution in #194
- @naveen521kk made their first contribution in #191
- @qlenlen made their first contribution in #200
- @gheinzer made their first contribution in #192
Full Changelog: v0.1.0-rc.4...nightly
edit keeping this just in case anything goes wrong with newer release.
v0.1.0-rc.4
Features and Improvements
- BLE Support:
- Battery information when not connected: The app can now detect your AirPods if they're turned on to show accurate battery information even if they're not connected to Android (or linux for cross device features). This is basically what currently available apps do, but LibrePods can also decrypt the part of the BLE broadcast.
- Automatic connections: When you receive a call, or start playing media, based on your preferences (check screenshots in README), the app will automatically connect to AirPods.
- The app can now get all the configuration information from the AirPods, like conversation awareness, adaptive audio etc.. These settings will not be overwritten when you change them on an apple device and connect back to Android.
- Improved the island. Improved animations, and you can now pull down to open the app and push up to dismiss.
- Improved audio disconnection when not worn.
- Add support for pre-A12, location permission is requestion instead of the new bluetooth permissions.
Important
A few changes were needed to support pre-A12 versions, and one of these changes requires a fresh install of the app.
- If you have already installed the app as a system app by using the root module, you will have to flash the root module again instead of updating the app using the apk.
- If you have not installed it as a system app, you will have to uninstall the app. Since this version gets the config data from the AirPods itself, most of your settings will stay with a notable exception of the long press to cycle between config (AirPods might not always send this).
Linux
- Add more control commands by @tim-gromeyer in #127
- Add One Bud ANC Mode setting by @tim-gromeyer in #128
- Move all device related properties to new class by @tim-gromeyer in #135
- Fix UI not working by @tim-gromeyer in #137
Full Changelog: v0.1.0-rc.3...v0.1.0-rc.4
v0.1.0-rc.3
Features & Improvements
- Added troubleshooter for easier log access (810a3c9)
- Added option to maintain audio connection when none are worn (01432ce)
- Improved conversational awareness functionality (4c73200, fixes #122)
- Added support for listening to intents to set ANC mode for integrating with other apps(45ed8a3)
- Separated actual battery notifications from persistent service notification (116f7dd)
Bug Fixes
- Fixed ear detection logic when none, either, or both AirPods are worn (364a6f4)
- Fixed MediaController fallback volume for conversational awareness (9b96218)
- Fixed SharedPreference listener for conversational awareness customizations (42e0f48)
- Initialized shared preference keys on first launch (06de276)
- Fixed battery monitoring in the connected popup window (7ffcd68, fixes #117)
- Fixed AirPods connection monitoring in UI (295c49f, fixes #118)
Other Changes
- Updated Haze library uses (9baa3c9)
- Added SharedPreference listeners to service (98aef13)
- Made customizations and head tracking screens scrollable (aec9c71)
- Added app description (51ca4c1)
Fixed Issues
- #122: Improved conversational awareness
- #118: Listen for AirPods connection in UI
- #117: Listen for battery in the connected popup window
Full Changelog: v0.1.0-rc.2...v0.1.0-rc.3
v0.1.0-rc.2
What's Changed
- [Linux] Use Qt 6.4 for compatibility with Debian Stable by @eswyft in #116
- [Android] Fix XPosed module (58dfed9)
- [Android] Add option to switch between control center like window and cycling between modes when clicking the QS tile.
Note
The SystemUI Volume Panel hook has only been tested on stock AOSP. May or may not work on other devices. Same with the link to open LibrePods app from the android settings app. But, the icons and battery metadata should be set.
The module available in this release installs the app as a system app and grants BLUETOOTH_PRIVILEGED permission for setting metadata, that's it. If you do not need that, just stick with the plain APK. If the XPosed module doesn't work for you, you may try to use a less reliable method by installing the btl2capfix root module in available v0.0.3.
New Contributors
Full Changelog: v0.1.0-rc.1...v0.1.0-rc.2
v0.1.0-rc.1
What's new
Big changes:
- Easier workaround: Added XPosed backed hooking. The app can now directly hook onto the Bluetooth process without needing to replace library.
- Head Gestures: Answer calls just by nodding
- Improved QS Tile: Greatly improves the QS tile functionality, it can switch to the off listening mode as well. and if you chose, it can open a control center-esque window for quickly controlling conversational awareness and noise control modes without cycling through the modes.
- Rebranding: I think it's pretty evident :)
- Linux app: The linux app has core features implemented thanks to @tim-gromeyer, go check it out at /linux.
- Better system integration: The app sends battery information to Android, and ASI*. It also adds a button to the volume slider that allows you to quickly change noise control modes. This may only work on non-OEM skins.
And, there's of course a lot of minor refactoring, improvements all over, and bug fixes. Still found one? Create an issue!
Note
To be able to send info the Android and ASI, the app needs BLUETOOTH_PRIVILEGED permission, which is only granted to system apps. So if you wish to do that, you can install the root module. If you are unable to use the XPosed hook, you can use the other with patch root module. (WIll be simplified soon.) might cause a boot loop, do not use until further development.
PRs
- [Linux] Implement renaming airpods by @tim-gromeyer in #88
- [Linux] Add battery indicator by @tim-gromeyer in #89
- [Linux] Enhance GUI with icons by @tim-gromeyer in #90
- [ImgBot] Optimize images by @imgbot in #91
- [Linux] Use segment control for setting noise control mode by @tim-gromeyer in #92
- Change radare2 download URL to GitHub releases by @devnoname120 in #93
- [Linux] CA state parsing, robuster handshake, persistent window by @tim-gromeyer in #94
- [Linux] Implement proper disconnection detection by @tim-gromeyer in #95
- [Linux] Improved disconnect behavior by @tim-gromeyer in #97
- Add more documentation by @tim-gromeyer in #96
- [Linux] Improve connection stability by @tim-gromeyer in #98
- [Linux] GUI improvements by @tim-gromeyer in #100
- Linux usability improvements by @tim-gromeyer in #104
- [Linux] Add settings page by @tim-gromeyer in #105
- [Linux] Add CLI flag to hide the window on startup by @jdholtz in #109
- Delete old code by @tim-gromeyer in #110
- [Linux] Dynamically find device sink name by @tim-gromeyer in #108
- [Linux] Add seperators to tray, add tray option to reopen app and settings, prevent duplicate instances of app from being opened by @jazzysoggy in #111
New Contributors
- @imgbot made their first contribution in #91
- @jdholtz made their first contribution in #109
- @jazzysoggy made their first contribution in #111
Full Changelog: nightly...v0.4.0-rc.1
v0.0.3-hotfix
Important
Please clear the app data after installing.
I forgot to add BLUETOOTH_ADVERTISE permissions when asking for all permissions upon first launch. This permission was for CrossDevice services.
