mirror of
https://github.com/kavishdevar/librepods.git
synced 2026-04-24 23:55:52 +03:00
[GH-ISSUE #250] App works on non-rooted OP13 running OxygenOS 16, but airpods randomly disconnect + case battery shows 0% #117
Labels
No labels
android
bug
documentation
enhancement
good first issue
help wanted
linux
pull-request
reverse-engineering
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/librepods#117
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @FilBr on GitHub (Nov 16, 2025).
Original GitHub issue: https://github.com/kavishdevar/librepods/issues/250
Originally assigned to: @kavishdevar on GitHub.
First of all, I'm fully aware that I'm running the app outside of it's intended scope, but.
I've been watching this repo for some time hoping for the bluetooth bug to be solved, and to my surprise I can now use the LibrePods app on a non-rooted device running OxygenOS 16!
Not everything is working,
but the fact that the app manages to get some data from my airpods on a non rooted devices is a huge win.
I know this is might be out of scope, but I'd love to try and help improving the support for non-rooted devices
@kavishdevar commented on GitHub (Nov 16, 2025):
Lovely to see some company noticing this small personal project, Google has decided to neglect it despite 1500+ upvotes.
The case battery is zero when you don't have any airpods in the case. iOS uses find my to get the battery of the case in such cases, but I haven't reverse engineered that yet.
About the random disconnection- do you see any options in the native settings app for airpods? I think if they implemented a fix in the stack, they probably have implemented at least some parts of the app in their skins.
@kavishdevar commented on GitHub (Nov 16, 2025):
And this is not at all outside the intended scope! This is what I was hoping would happen when Google fixes it. And some stuff like setting the battery of a
BluetoothDeviceto show in Settings, the hook for hearing aid etc., to be limited to root.I heard oppo/oneplus were adding support for AirPods a few weeks back, and I was waiting for a system image to be released so that I could see if they fixed this.
@FilBr commented on GitHub (Nov 16, 2025):
@kavishdevar thanks for the quick response!
I was hoping for this, but I either haven't found it yet, or it's not there. Here are is how I currently see my airpods in system settings
Compared to settings available for OnePlus earbuds
Let me know if there's anything I can do to help on this front
@kavishdevar commented on GitHub (Nov 16, 2025):
Interesting, so they just let you run my app- amazing! That means I can add new features any time, without oppo having to update :)
Nope, thank you! I just wanted to see if there's anything that they fixed or just rumors. Now I can add this to the README.
It would be great if you could test the hearing aid/transparency customization feature too. I am curious to know if they removed the need for the additional hook as well. Try customizing the amplification, tone etc., from Accessibility settings and see if it actually affects the AirPods.
@kavishdevar commented on GitHub (Nov 16, 2025):
But this also means there is something else causing the disconnection. Could you tell me exactly steps to reproduce that?
@FilBr commented on GitHub (Nov 16, 2025):
It doesn't look like I have hearing aid/transparency customization related setting.


I tried adjusting the "Tone volume" slider here but it doesn't affect the audio.
@FilBr commented on GitHub (Nov 16, 2025):
and this is what I see when I go into the settings in the top right

@FilBr commented on GitHub (Nov 16, 2025):
As for the random disconnections, I will need to test more. Will come back to you after I have the time to test properly
@FilBr commented on GitHub (Nov 16, 2025):
On a sidenote, I'm currently running the 0.1.0-rc.4 version.
I tried installing the v0.2.0-alpha, but it crashes as soon as I open the app. Even after trying to do a fresh install, I can get through the "Grant permissions" page, but as soon as I give all the permissions, the app crashes.
@FilBr commented on GitHub (Nov 16, 2025):
I have also tried using the head tracking, but it doesn't detect any movement
@kavishdevar commented on GitHub (Nov 16, 2025):
Sorry, my bad. Both of those were added in v0.2.
I added something that needs root. I was under a very wrong assumption that this app will never see the daylight of non-rooted phones lol. Will fix the problems, but could you grab the logs (preferably with
logcat -b crash, just so that if I'm chasing the right issue.)Try enabling
alternate head tracking packetsin the app's settings. (yeah this should be done by the app itself, it will someday)Does it not change the volume of the tones played, like when changing the listening mode, etc.?
@FilBr commented on GitHub (Nov 16, 2025):
these are the logs from the crash event
@FilBr commented on GitHub (Nov 16, 2025):
I'm not quite sure where to find this setting? I tried going through the system settings, then navigating to the app settings but couldn't find anything there
Can confirm there's no change in the audio when moving the slider
@kavishdevar commented on GitHub (Nov 16, 2025):
@FilBr Here's the action run: https://github.com/kavishdevar/librepods/actions/runs/19412004970 for the apk. (#253)
I have fixed the crash. This has the hearing aid features and transparency features as well which I am not sure if it will work. I have bypassed the check for
act as apple devicehook for you to testWeird, it seems to work for me (there isn't anything else for tone volume in the macos/ios bluetooth stack either). Do you know what firmware version your AirPods are on?
Sorry, it was possibly added after the v0.1.0-rc.4 release. It's been a few months since I released a new version :/
@LunarRuin commented on GitHub (Nov 17, 2025):
Hey!
I'm using a Vivo x300 Pro on OriginOS 6 (A16) and Airpods Pro 2s and figured I'd also chime in if it helps.
Originally tried v0.1.0-rc.4 and was facing pretty much the same issues as the original poster (the "Socket created, but not connected" error, although it showed 0% battery on the airpods too, not just the case).
Trying the debug apk now. It no longer crashes like v0.2.0-alpha. On my end, it still has the same "Socket created, but not connected" error though.
When I open the app after setting it up, it does say the correct Airpods device name at the top, but there are no images or percentages of the devices (it is a blank screen besides the device name and the settings wheel at the top right). There is also no way to change noise cancelling modes etc.
Hope I was able to help! And thank you for creating this project! Clippy would be proud.
@kavishdevar commented on GitHub (Nov 17, 2025):
@LunarRuin are you trying to run the app without root? AFAIK, only coloros supports without root.
@LunarRuin commented on GitHub (Nov 17, 2025):
Ah. I saw this part of the readme:
and somehow misread ColorOS as OriginOS. So sorry for the confusion 😓... Carry on, good luck!
@kavishdevar commented on GitHub (Nov 17, 2025):
@FilBr have you been able to test it?
@eiyooooo commented on GitHub (Nov 18, 2025):
I encountered a new crash on my ColorOS16 phone, and couldn't connect to AirPods through this build.
BTW, OPPO officially added AirPods control support through this system app.
设备空间_16.5.5.apk.zip
@guranu commented on GitHub (Nov 19, 2025):
Does noise cancellation work on non-rooted oxygenos 16?
@FilBr commented on GitHub (Nov 19, 2025):
sorry for the delay @kavishdevar
I installed the latest patch successfully, and managed to test what you mentioned earlier too.
Head gestures detection works with the
alternate head tracking packetssetting enabled, though I haven't tested this yet for accepting an incoming a phone call.The tone volume adjustment works fine (I misunderstood what it did in the earlier version of the app since there was no description, my bad).
As for the random disconnects and restarts:
it's been difficult to find a pattern to reproduce the issue, but sometimes I just getting spammed with the on screen overlays (like once every 10s), the audio stops playing for 1s and then resumes again
I also ran into an issue where the head gestures wouldn't register, the hearing aid menu was showing a blank page and other things in the app wouldn't work and had to force stop and restart the app
@FilBr commented on GitHub (Nov 19, 2025):
@eiyooooo I tried installing your APK but the airpods still show up as generic bluetooth headphones for me on OxygenOS 16.
@FilBr commented on GitHub (Nov 19, 2025):
It does on my OP13 with oxygen os 16 (EU)
@guranu commented on GitHub (Nov 19, 2025):
@eiyooooo is you're oneplus 13 chinese region?
@guranu commented on GitHub (Nov 19, 2025):
Does the eq also work?
@FilBr commented on GitHub (Nov 19, 2025):
I'm not sure which EQ you're talking about?
@eiyooooo commented on GitHub (Nov 19, 2025):
OPPO Find N3(OnePlus Open) Chinese region
@guranu commented on GitHub (Nov 19, 2025):
Maybe it only works for the pro 1?
@guranu commented on GitHub (Nov 19, 2025):
The one that's in librepods (or does it not have an eq?)
@guranu commented on GitHub (Nov 19, 2025):
That could explain why it doesn't show up on @FilBr OnePlus device.
@FilBr commented on GitHub (Nov 19, 2025):
There's an EQ for custom transparency mode, which doesn't seem to affect transparency mode for me.
But I've also never used the feature, so I'm not sure what's supposed to change
@guranu commented on GitHub (Nov 20, 2025):
Ah, ok so it doesn't have eq.
@RealNath commented on GitHub (Nov 20, 2025):
Out of curiosity but is it supposed to work for Realme UI 7.0 too? Since Realme uses the same codebase as Oppo and OnePlus (Realme and OP are owned by Oppo). The app managed to get the name of the device, but that's it. The pods and case are both shown as 0%.
I have no idea if it's also because the case is an imitation (the genuine one was broken and it was much cheaper to buy a 1-to-1 imitation case, it still works well until now; the pods are still genuine tho)
@kavishdevar commented on GitHub (Nov 20, 2025):
No idea, @RealNath. If it can't connect they probably haven't fixed it. The fake case shouldn't be a problem.
@kavishdevar commented on GitHub (Nov 20, 2025):
I guess oxygenos doesn't have the vendorid set to Apple (see readme if you're unaware). I'll hide that features if the setup is skipped and running without root.
@SRosales0520 commented on GitHub (Nov 22, 2025):
Not sure if this contributes at all, but I just came across the readme and was very surprised to see the OxygenOS addition.
I have since installed the v0.1.0-rc.4 on my OnePlus Open running non-rooted OxygenOS 15 to see if it would work, but unfortunately I instantly hit the L2CAP connection failures. As soon as I connect my airpods, LibrePods force disconnected then with L2CAP errors.
I would upload logs, but logs show a an error relating to not being able to run "su", no such file or directory. Is this because of non-rooted?
Seems like the necessary Bluetooth patch was potentially only made in OxygenOS 16 and not in 15, but happy to start a separate issue if devs would like to test further.
@kavishdevar commented on GitHub (Nov 22, 2025):
@SRosales0520 it was fixed in A16.
@sschamp commented on GitHub (Nov 30, 2025):
Just chiming in here that I upgraded my OnePlus Open to Android 16 with Oxygen Updater.
And LibrePods is now working!
The update is being gradually rolled out via OTA by OnePlus in Europe atm.
But I didn't want to wait.
@paulkoh commented on GitHub (Nov 30, 2025):
@kavishdevar not sure if it's only an OPPO issue, but it seems that pausing (ear detection/conversational awareness) and charging of volume (conventional awareness) both stop working around 5 seconds after the screen is turned off. Tested on both rc4 and the debug build
Unfortunately the global version of Color OS hasn't received the native airpods pro controls that @eiyooooo's China version has
OPPO Find X9 Pro Global
[Edit] Just to mention that the switch to transparency mode for conversational awareness does trigger, just that the automatic pausing or volume changing doesn't. Everything else works as expected when the screen is on
@kavishdevar commented on GitHub (Nov 30, 2025):
Could you please try disabling battery optimizations for the app? Chinese manufacturers are known to kill apps aggressively. dontkillmyapp.com
@paulkoh commented on GitHub (Nov 30, 2025):
Yup I've tried that, also disabled sleep standby optimization (OPPO-specific setting) and ensured that power saving was off
[Edit] Since the app should still be running (transparency is triggered when conversational awareness is enabled), perhaps playing/pausing and volume changes require additional permissions (accessibility?) or a different function needs to be called
@SkySpnc commented on GitHub (Dec 1, 2025):
I have the opposite problem. already disabled battery optimisations and manually granted every permission breeno detected.
Audio works and they connect, but cannot control devices. Oopo Find X8 Ultra
Also tried both Oppo builds
Android PKJ110_ 16.0.1301(CN01V120P02)
It sometimes shows battery, but sometimes doesnt. It doesnt recognise head gestures or state changes by the Airpods.
@kavishdevar commented on GitHub (Dec 1, 2025):
Does CN mean it’s china-specific? seems like your OS is already connected to the airpods for communication, the island shows the battery status without my app running in your first screenshot.
@guranu commented on GitHub (Dec 2, 2025):
Yes.
@p0358 commented on GitHub (Dec 7, 2025):
Actually, from my experience using the actual iPhone, at least on the models of AirPods that I had, the case battery only ever updated when at least one pod was inside of the case. Suggesting that if they're both taken out, it just shows the last remembered percentage with no further updates. Unless either newer models had such updates, or they never actually worked for me.
@SkySpnc commented on GitHub (Dec 8, 2025):
Yes, CN means its china mainland.
Weird, I cant find any service running that might be stealing control, but changing the settings in the Oppo island doesnt change state either.
I dont have airpods anymore to test with as they weren't mine, but if I find myself in possession of them again in future I'll try fiddling around more.
@SkySpnc commented on GitHub (Dec 30, 2025):
So I've found myself in possession of a global Find X9 Pro and airpod pro 3's again. Having Librepod installed causes the airpods to just not connect to the phone until I uninstall the apk, in which case they immediately connect and behave again.
Trying the alpha build also causes an immediate crash when getting to the root permission screen.
I've also tried installing the Chinese my devices package, but sadly global is 1 build ahead of China 🙁
@paulkoh commented on GitHub (Dec 31, 2025):
I can't remember what the order is, but I think you might have to remove the airpods then add them after initializing the app. Yeah unfortunately we can't install the Chinese my devices package
Tell me if you manage to solve the auto pause when taking out an airpod or when entering conversation mode when the screen has been off for a few seconds or longer! I gave up and sold the airpods to a friend, then got Bose QC Ultra Earbuds 2
For the alpha apk crashing, use the one from