[GH-ISSUE #250] App works on non-rooted OP13 running OxygenOS 16, but airpods randomly disconnect + case battery shows 0% #117

Open
opened 2026-03-02 12:03:38 +03:00 by kerem · 48 comments
Owner

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,

  • Case battery shows 0% most of the time
  • Airpods sometimes randomly disconnect when the case is opened
  • Head tracking doesn't work
  • Missing hearing aid settings for APP2
  • Missing transparency customization settings for APP2

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

Image
Image
Image

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, - [x] Case battery shows 0% most of the time - [ ] Airpods sometimes randomly disconnect when the case is opened - [ ] Head tracking doesn't work - [x] Missing hearing aid settings for APP2 - [x] Missing transparency customization settings for APP2 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 ![Image](https://github.com/user-attachments/assets/ce7ae983-23a5-472a-b3d0-fb4a72a0e6f3) ![Image](https://github.com/user-attachments/assets/ad9d2181-6792-49f1-8cf0-1964936e1105) ![Image](https://github.com/user-attachments/assets/b44c1230-6c3e-444d-aa40-000a89eaf95e)
Author
Owner

@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.

<!-- gh-comment-id:3538943206 --> @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.
Author
Owner

@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 BluetoothDevice to 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.

<!-- gh-comment-id:3538944795 --> @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 `BluetoothDevice` to 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.
Author
Owner

@FilBr commented on GitHub (Nov 16, 2025):

@kavishdevar thanks for the quick response!

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.

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

Image

Image

Compared to settings available for OnePlus earbuds

Image

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.

Let me know if there's anything I can do to help on this front

<!-- gh-comment-id:3538980076 --> @FilBr commented on GitHub (Nov 16, 2025): @kavishdevar thanks for the quick response! > 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. 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 ![Image](https://github.com/user-attachments/assets/d263a9db-3d11-4da9-8f96-a0b53fcc96c2) ![Image](https://github.com/user-attachments/assets/eebe0181-c5ec-4027-8eaa-59a2597c1b95) Compared to settings available for OnePlus earbuds ![Image](https://github.com/user-attachments/assets/d34275bd-05ca-4938-ac99-5433e865d56a) > 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. Let me know if there's anything I can do to help on this front
Author
Owner

@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 :)

Let me know if there's anything I can do to help on this front

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.

<!-- gh-comment-id:3538991235 --> @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 :) > Let me know if there's anything I can do to help on this front 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.
Author
Owner

@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?

<!-- gh-comment-id:3538992499 --> @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?
Author
Owner

@FilBr commented on GitHub (Nov 16, 2025):

It would be great if you could test the hearing aid/transparency customization feature too.

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.
Image
Image

<!-- gh-comment-id:3539064609 --> @FilBr commented on GitHub (Nov 16, 2025): > It would be great if you could test the hearing aid/transparency customization feature too. 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.** ![Image](https://github.com/user-attachments/assets/5190178a-a9b2-4ca5-96b0-6d113dbe165c) ![Image](https://github.com/user-attachments/assets/b31d16ae-6b36-4f84-aaa7-cb1674775fb6)
Author
Owner

@FilBr commented on GitHub (Nov 16, 2025):

and this is what I see when I go into the settings in the top right
Image

Image

<!-- gh-comment-id:3539064683 --> @FilBr commented on GitHub (Nov 16, 2025): and this is what I see when I go into the settings in the top right ![Image](https://github.com/user-attachments/assets/60f74d43-4cca-46c0-a04c-4fb645e187df) ![Image](https://github.com/user-attachments/assets/cb34eb8b-0e36-49ce-b75c-de9e0cf9ea60)
Author
Owner

@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

<!-- gh-comment-id:3539071676 --> @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
Author
Owner

@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.

<!-- gh-comment-id:3539074894 --> @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.
Author
Owner

@FilBr commented on GitHub (Nov 16, 2025):

I have also tried using the head tracking, but it doesn't detect any movement

<!-- gh-comment-id:3539076921 --> @FilBr commented on GitHub (Nov 16, 2025): I have also tried using the head tracking, but it doesn't detect any movement
Author
Owner

@kavishdevar commented on GitHub (Nov 16, 2025):

It doesn't look like I have hearing aid/transparency customization related setting.

Sorry, my bad. Both of those were added in v0.2.

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.

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.)

I have also tried using the head tracking, but it doesn't detect any movement

Try enabling alternate head tracking packets in the app's settings. (yeah this should be done by the app itself, it will someday)

I tried adjusting the "Tone volume" slider here but it doesn't affect the audio.

Does it not change the volume of the tones played, like when changing the listening mode, etc.?

<!-- gh-comment-id:3539098069 --> @kavishdevar commented on GitHub (Nov 16, 2025): > It doesn't look like I have hearing aid/transparency customization related setting. Sorry, my bad. Both of those were added in v0.2. > 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. 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.) > I have also tried using the head tracking, but it doesn't detect any movement Try enabling `alternate head tracking packets` in the app's settings. (yeah this should be done by the app itself, it will someday) > I tried adjusting the "Tone volume" slider here but it doesn't affect the audio. Does it not change the volume of the tones played, like when changing the listening mode, etc.?
Author
Owner

@FilBr commented on GitHub (Nov 16, 2025):

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.)

these are the logs from the crash event

--------- beginning of crash
11-16 20:40:15.146 13414 13414 E AndroidRuntime: FATAL EXCEPTION: main
11-16 20:40:15.146 13414 13414 E AndroidRuntime: Process: me.kavishdevar.librepods, PID: 13414
11-16 20:40:15.146 13414 13414 E AndroidRuntime: java.lang.RuntimeException: Unable to create service me.kavishdevar.librepods.services.AirPodsService: java.io.IOException: Cannot run program "su": error=2, No such file or directory
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5684)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2856)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:115)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:298)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:408)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:9952)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: Caused by: java.io.IOException: Cannot run program "su": error=2, No such file or directory
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.Runtime.exec(Runtime.java:709)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.Runtime.exec(Runtime.java:568)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5654)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	... 9 more
11-16 20:40:15.146 13414 13414 E AndroidRuntime: Caused by: java.io.IOException: error=2, No such file or directory
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.UNIXProcess.forkAndExec(Native Method)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.ProcessImpl.start(ProcessImpl.java:141)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
11-16 20:40:15.146 13414 13414 E AndroidRuntime: 	... 13 more
11-16 20:40:15.668 13740 13740 E AndroidRuntime: FATAL EXCEPTION: main
11-16 20:40:15.668 13740 13740 E AndroidRuntime: Process: me.kavishdevar.librepods, PID: 13740
11-16 20:40:15.668 13740 13740 E AndroidRuntime: java.lang.RuntimeException: Unable to create service me.kavishdevar.librepods.services.AirPodsService: java.io.IOException: Cannot run program "su": error=2, No such file or directory
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5684)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2856)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:115)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:298)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:408)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:9952)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: Caused by: java.io.IOException: Cannot run program "su": error=2, No such file or directory
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.Runtime.exec(Runtime.java:709)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.Runtime.exec(Runtime.java:568)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5654)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	... 9 more
11-16 20:40:15.668 13740 13740 E AndroidRuntime: Caused by: java.io.IOException: error=2, No such file or directory
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.UNIXProcess.forkAndExec(Native Method)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.ProcessImpl.start(ProcessImpl.java:141)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
11-16 20:40:15.668 13740 13740 E AndroidRuntime: 	... 13 more
<!-- gh-comment-id:3539191967 --> @FilBr commented on GitHub (Nov 16, 2025): > 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.) these are the logs from the crash event ```java --------- beginning of crash 11-16 20:40:15.146 13414 13414 E AndroidRuntime: FATAL EXCEPTION: main 11-16 20:40:15.146 13414 13414 E AndroidRuntime: Process: me.kavishdevar.librepods, PID: 13414 11-16 20:40:15.146 13414 13414 E AndroidRuntime: java.lang.RuntimeException: Unable to create service me.kavishdevar.librepods.services.AirPodsService: java.io.IOException: Cannot run program "su": error=2, No such file or directory 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:5684) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2856) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:115) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:298) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.os.Looper.loop(Looper.java:408) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:9952) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: Caused by: java.io.IOException: Cannot run program "su": error=2, No such file or directory 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.Runtime.exec(Runtime.java:709) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.Runtime.exec(Runtime.java:568) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:5654) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: ... 9 more 11-16 20:40:15.146 13414 13414 E AndroidRuntime: Caused by: java.io.IOException: error=2, No such file or directory 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.UNIXProcess.forkAndExec(Native Method) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.UNIXProcess.<init>(UNIXProcess.java:133) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.ProcessImpl.start(ProcessImpl.java:141) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 11-16 20:40:15.146 13414 13414 E AndroidRuntime: ... 13 more 11-16 20:40:15.668 13740 13740 E AndroidRuntime: FATAL EXCEPTION: main 11-16 20:40:15.668 13740 13740 E AndroidRuntime: Process: me.kavishdevar.librepods, PID: 13740 11-16 20:40:15.668 13740 13740 E AndroidRuntime: java.lang.RuntimeException: Unable to create service me.kavishdevar.librepods.services.AirPodsService: java.io.IOException: Cannot run program "su": error=2, No such file or directory 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:5684) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2856) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:115) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:298) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.os.Looper.loop(Looper.java:408) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:9952) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: Caused by: java.io.IOException: Cannot run program "su": error=2, No such file or directory 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.Runtime.exec(Runtime.java:709) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.Runtime.exec(Runtime.java:568) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at android.app.ActivityThread.handleCreateService(ActivityThread.java:5654) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: ... 9 more 11-16 20:40:15.668 13740 13740 E AndroidRuntime: Caused by: java.io.IOException: error=2, No such file or directory 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.UNIXProcess.forkAndExec(Native Method) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.UNIXProcess.<init>(UNIXProcess.java:133) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.ProcessImpl.start(ProcessImpl.java:141) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 11-16 20:40:15.668 13740 13740 E AndroidRuntime: ... 13 more ```
Author
Owner

@FilBr commented on GitHub (Nov 16, 2025):

Try enabling alternate head tracking packets in the app's settings. (yeah this should be done by the app itself, it will someday)

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

Does it not change the volume of the tones played, like when changing the listening mode, etc.?

Can confirm there's no change in the audio when moving the slider

<!-- gh-comment-id:3539195520 --> @FilBr commented on GitHub (Nov 16, 2025): >Try enabling alternate head tracking packets in the app's settings. (yeah this should be done by the app itself, it will someday) 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 > Does it not change the volume of the tones played, like when changing the listening mode, etc.? Can confirm there's no change in the audio when moving the slider
Author
Owner

@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 device hook for you to test

Can confirm there's no change in the audio when moving the slider

Weird, 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?

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

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 :/

<!-- gh-comment-id:3539357943 --> @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 device` hook for you to test > Can confirm there's no change in the audio when moving the slider Weird, 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? > 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 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 :/
Author
Owner

@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.

<!-- gh-comment-id:3540608543 --> @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.
Author
Owner

@kavishdevar commented on GitHub (Nov 17, 2025):

@LunarRuin are you trying to run the app without root? AFAIK, only coloros supports without root.

<!-- gh-comment-id:3540626547 --> @kavishdevar commented on GitHub (Nov 17, 2025): @LunarRuin are you trying to run the app without root? AFAIK, only coloros supports without root.
Author
Owner

@LunarRuin commented on GitHub (Nov 17, 2025):

Ah. I saw this part of the readme:

If you are using ColorOS/OxygenOS 16, you don't need root for basic features!

and somehow misread ColorOS as OriginOS. So sorry for the confusion 😓... Carry on, good luck!

<!-- gh-comment-id:3540660016 --> @LunarRuin commented on GitHub (Nov 17, 2025): Ah. I saw this part of the readme: >If you are using ColorOS/OxygenOS 16, you don't need root for basic features! and somehow misread ColorOS as OriginOS. So sorry for the confusion 😓... Carry on, good luck!
Author
Owner

@kavishdevar commented on GitHub (Nov 17, 2025):

@FilBr have you been able to test it?

<!-- gh-comment-id:3543579936 --> @kavishdevar commented on GitHub (Nov 17, 2025): @FilBr have you been able to test it?
Author
Owner

@eiyooooo commented on GitHub (Nov 18, 2025):

@FilBr have you been able to test it?

I encountered a new crash on my ColorOS16 phone, and couldn't connect to AirPods through this build.

FATAL EXCEPTION: main
Process: me.kavishdevar.librepods, PID: 10211
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED flg=0x1000010 xflg=0x4 (has extras) } in me.kavishdevar.librepods.services.AirPodsService$bluetoothReceiver@d463e69
	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:2030)
	at android.app.LoadedApk$ReceiverDispatcher$Args.$r8$lambda$mcNAAl1SQ4MyJPyDg8TJ2x2h0Rk(Unknown Source:0)
	at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
	at android.os.Handler.handleCallback(Handler.java:1027)
	at android.os.Handler.dispatchMessage(Handler.java:108)
	at android.os.Looper.loopOnce(Looper.java:298)
	at android.os.Looper.loop(Looper.java:408)
	at android.app.ActivityThread.main(ActivityThread.java:9952)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property socket has not been initialized
	at me.kavishdevar.librepods.services.AirPodsService$bluetoothReceiver.onReceive(AirPodsService.kt:2171)
	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1989)
	... 10 more

BTW, OPPO officially added AirPods control support through this system app.

设备空间_16.5.5.apk.zip

<!-- gh-comment-id:3549018893 --> @eiyooooo commented on GitHub (Nov 18, 2025): > [@FilBr](https://github.com/FilBr) have you been able to test it? I encountered a new crash on my ColorOS16 phone, and couldn't connect to AirPods through [this build](https://github.com/kavishdevar/librepods/actions/runs/19412004970). ``` FATAL EXCEPTION: main Process: me.kavishdevar.librepods, PID: 10211 java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED flg=0x1000010 xflg=0x4 (has extras) } in me.kavishdevar.librepods.services.AirPodsService$bluetoothReceiver@d463e69 at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:2030) at android.app.LoadedApk$ReceiverDispatcher$Args.$r8$lambda$mcNAAl1SQ4MyJPyDg8TJ2x2h0Rk(Unknown Source:0) at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) at android.os.Handler.handleCallback(Handler.java:1027) at android.os.Handler.dispatchMessage(Handler.java:108) at android.os.Looper.loopOnce(Looper.java:298) at android.os.Looper.loop(Looper.java:408) at android.app.ActivityThread.main(ActivityThread.java:9952) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074) Caused by: kotlin.UninitializedPropertyAccessException: lateinit property socket has not been initialized at me.kavishdevar.librepods.services.AirPodsService$bluetoothReceiver.onReceive(AirPodsService.kt:2171) at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1989) ... 10 more ``` BTW, OPPO officially added AirPods control support through this system app. [设备空间_16.5.5.apk.zip](https://github.com/user-attachments/files/23611683/_16.5.5.apk.zip) <img src="https://github.com/user-attachments/assets/0dfab88a-5028-45a3-89de-496aea2ad4be" width="300">
Author
Owner

@guranu commented on GitHub (Nov 19, 2025):

Does noise cancellation work on non-rooted oxygenos 16?

<!-- gh-comment-id:3551270602 --> @guranu commented on GitHub (Nov 19, 2025): Does noise cancellation work on non-rooted oxygenos 16?
Author
Owner

@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 packets setting 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

<!-- gh-comment-id:3551485967 --> @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 packets` setting 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
Author
Owner

@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.

<!-- gh-comment-id:3551530993 --> @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.
Author
Owner

@FilBr commented on GitHub (Nov 19, 2025):

Does noise cancellation work on non-rooted oxygenos 16?

It does on my OP13 with oxygen os 16 (EU)

<!-- gh-comment-id:3551533479 --> @FilBr commented on GitHub (Nov 19, 2025): > Does noise cancellation work on non-rooted oxygenos 16? It does on my OP13 with oxygen os 16 (EU)
Author
Owner

@guranu commented on GitHub (Nov 19, 2025):

@eiyooooo is you're oneplus 13 chinese region?

<!-- gh-comment-id:3552175256 --> @guranu commented on GitHub (Nov 19, 2025): @eiyooooo is you're oneplus 13 chinese region?
Author
Owner

@guranu commented on GitHub (Nov 19, 2025):

Does noise cancellation work on non-rooted oxygenos 16?

It does on my OP13 with oxygen os 16 (EU)

Does the eq also work?

<!-- gh-comment-id:3552219539 --> @guranu commented on GitHub (Nov 19, 2025): > > Does noise cancellation work on non-rooted oxygenos 16? > > It does on my OP13 with oxygen os 16 (EU) Does the eq also work?
Author
Owner

@FilBr commented on GitHub (Nov 19, 2025):

Does noise cancellation work on non-rooted oxygenos 16?

It does on my OP13 with oxygen os 16 (EU)

Does the eq also work?

I'm not sure which EQ you're talking about?

<!-- gh-comment-id:3552241451 --> @FilBr commented on GitHub (Nov 19, 2025): > > > Does noise cancellation work on non-rooted oxygenos 16? > > > > > > It does on my OP13 with oxygen os 16 (EU) > > Does the eq also work? I'm not sure which EQ you're talking about?
Author
Owner

@eiyooooo commented on GitHub (Nov 19, 2025):

@eiyooooo is you're oneplus 13 chinese region?

OPPO Find N3(OnePlus Open) Chinese region

<!-- gh-comment-id:3552254576 --> @eiyooooo commented on GitHub (Nov 19, 2025): > [@eiyooooo](https://github.com/eiyooooo) is you're oneplus 13 chinese region? OPPO Find N3(OnePlus Open) Chinese region
Author
Owner

@guranu 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.

Maybe it only works for the pro 1?

<!-- gh-comment-id:3552294956 --> @guranu commented on GitHub (Nov 19, 2025): > [@eiyooooo](https://github.com/eiyooooo) I tried installing your APK but the airpods still show up as generic bluetooth headphones for me on OxygenOS 16. Maybe it only works for the pro 1?
Author
Owner

@guranu commented on GitHub (Nov 19, 2025):

Does noise cancellation work on non-rooted oxygenos 16?

It does on my OP13 with oxygen os 16 (EU)

Does the eq also work?

I'm not sure which EQ you're talking about?

The one that's in librepods (or does it not have an eq?)

<!-- gh-comment-id:3552320820 --> @guranu commented on GitHub (Nov 19, 2025): > > > > Does noise cancellation work on non-rooted oxygenos 16? > > > > > > > > > It does on my OP13 with oxygen os 16 (EU) > > > > > > Does the eq also work? > > I'm not sure which EQ you're talking about? The one that's in librepods (or does it not have an eq?)
Author
Owner

@guranu commented on GitHub (Nov 19, 2025):

@eiyooooo is you're oneplus 13 chinese region?

OPPO Find N3(OnePlus Open) Chinese region

That could explain why it doesn't show up on @FilBr OnePlus device.

<!-- gh-comment-id:3552326929 --> @guranu commented on GitHub (Nov 19, 2025): > > [@eiyooooo](https://github.com/eiyooooo) is you're oneplus 13 chinese region? > > OPPO Find N3(OnePlus Open) Chinese region That could explain why it doesn't show up on @FilBr OnePlus device.
Author
Owner

@FilBr commented on GitHub (Nov 19, 2025):

The one that's in librepods (or does it not have an eq?)

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

<!-- gh-comment-id:3552875472 --> @FilBr commented on GitHub (Nov 19, 2025): > The one that's in librepods (or does it not have an eq?) 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
Author
Owner

@guranu commented on GitHub (Nov 20, 2025):

The one that's in librepods (or does it not have an eq?)

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

Ah, ok so it doesn't have eq.

<!-- gh-comment-id:3556683303 --> @guranu commented on GitHub (Nov 20, 2025): > > The one that's in librepods (or does it not have an eq?) > > 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 Ah, ok so it doesn't have eq.
Author
Owner

@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)

<!-- gh-comment-id:3557732057 --> @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)
Author
Owner

@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.

<!-- gh-comment-id:3557868873 --> @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.
Author
Owner

@kavishdevar commented on GitHub (Nov 20, 2025):

There's an EQ for custom transparency mode, which doesn't seem to affect transparency mode for me.

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.

<!-- gh-comment-id:3560032074 --> @kavishdevar commented on GitHub (Nov 20, 2025): > There's an EQ for custom transparency mode, which doesn't seem to affect transparency mode for me. 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.
Author
Owner

@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.

<!-- gh-comment-id:3565250707 --> @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.
Author
Owner

@kavishdevar commented on GitHub (Nov 22, 2025):

@SRosales0520 it was fixed in A16.

<!-- gh-comment-id:3565735241 --> @kavishdevar commented on GitHub (Nov 22, 2025): @SRosales0520 it was fixed in A16.
Author
Owner

@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.

<!-- gh-comment-id:3592681002 --> @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.
Author
Owner

@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

<!-- gh-comment-id:3592784946 --> @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
Author
Owner

@kavishdevar 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

Could you please try disabling battery optimizations for the app? Chinese manufacturers are known to kill apps aggressively. dontkillmyapp.com

<!-- gh-comment-id:3592827788 --> @kavishdevar 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 Could you please try disabling battery optimizations for the app? Chinese manufacturers are known to kill apps aggressively. [dontkillmyapp.com](https://dontkillmyapp.com)
Author
Owner

@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

Could you please try disabling battery optimizations for the app? Chinese manufacturers are known to kill apps aggressively. dontkillmyapp.com

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

<!-- gh-comment-id:3592925451 --> @paulkoh commented on GitHub (Nov 30, 2025): > > [@kavishdevar](https://github.com/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 > > Could you please try disabling battery optimizations for the app? Chinese manufacturers are known to kill apps aggressively. [dontkillmyapp.com](https://dontkillmyapp.com) 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
Author
Owner

@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.

Screenshot_2025-12-01-14-22-41-65_b1aeaf106cadc8c5745cc9d51760a62f.jpg
Screenshot_2025-12-01-14-23-44-68_b1aeaf106cadc8c5745cc9d51760a62f.jpg

<!-- gh-comment-id:3596548424 --> @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. ![Screenshot_2025-12-01-14-22-41-65_b1aeaf106cadc8c5745cc9d51760a62f.jpg](https://github.com/user-attachments/assets/9b48e589-5daa-408a-a9c5-961528367542) ![Screenshot_2025-12-01-14-23-44-68_b1aeaf106cadc8c5745cc9d51760a62f.jpg](https://github.com/user-attachments/assets/2098315f-3df4-46b2-9a4f-fb9d4940cf3e)
Author
Owner

@kavishdevar 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.

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.

<!-- gh-comment-id:3597888086 --> @kavishdevar 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. 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.
Author
Owner

@guranu commented on GitHub (Dec 2, 2025):

Does CN mean it’s china-specific?

Yes.

<!-- gh-comment-id:3601399491 --> @guranu commented on GitHub (Dec 2, 2025): > Does CN mean it’s china-specific? Yes.
Author
Owner

@p0358 commented on GitHub (Dec 7, 2025):

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.

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.

<!-- gh-comment-id:3623701983 --> @p0358 commented on GitHub (Dec 7, 2025): > 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. 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.
Author
Owner

@SkySpnc commented on GitHub (Dec 8, 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.

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.

<!-- gh-comment-id:3626052305 --> @SkySpnc commented on GitHub (Dec 8, 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. > > 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.
Author
Owner

@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 🙁

<!-- gh-comment-id:3700552078 --> @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 🙁
Author
Owner

@paulkoh commented on GitHub (Dec 31, 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 🙁

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

@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 device hook for you to test

Can confirm there's no change in the audio when moving the slider

Weird, 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?

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

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 :/

<!-- gh-comment-id:3702211894 --> @paulkoh commented on GitHub (Dec 31, 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 🙁 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 > [@FilBr](https://github.com/FilBr) Here's the action run: https://github.com/kavishdevar/librepods/actions/runs/19412004970 for the apk. ([#253](https://github.com/kavishdevar/librepods/pull/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 device` hook for you to test > > > Can confirm there's no change in the audio when moving the slider > > Weird, 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? > > > 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 > > 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 :/
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librepods#117
No description provided.