[GH-ISSUE #244] error #112

Closed
opened 2026-03-02 12:03:35 +03:00 by kerem · 2 comments
Owner

Originally created by @momosnail on GitHub (Nov 12, 2025).
Original GitHub issue: https://github.com/kavishdevar/librepods/issues/244

2025-11-12 16:05:01.646 27003-27003 AndroidRuntime          me.kavishdevar.librepods             E  FATAL EXCEPTION: main (Ask Gemini)
                                                                                                    Process: me.kavishdevar.librepods, PID: 27003
                                                                                                    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
                                                                                                    	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5599)
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:107)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:257)
                                                                                                    	at android.os.Looper.loop(Looper.java:342)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9638)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
                                                                                                    Caused by: java.io.IOException: Cannot run program "su": error=2, No such file or directory
                                                                                                    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
                                                                                                    	at java.lang.Runtime.exec(Runtime.java:712)
                                                                                                    	at java.lang.Runtime.exec(Runtime.java:571)
                                                                                                    	at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352)
                                                                                                    	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5586)
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) 
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707) 
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:257) 
                                                                                                    	at android.os.Looper.loop(Looper.java:342) 
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9638) 
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619) 
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929) 
                                                                                                    Caused by: java.io.IOException: error=2, No such file or directory
                                                                                                    	at java.lang.UNIXProcess.forkAndExec(Native Method)
                                                                                                    	at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
                                                                                                    	at java.lang.ProcessImpl.start(ProcessImpl.java:141)
                                                                                                    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
                                                                                                    	at java.lang.Runtime.exec(Runtime.java:712) 
                                                                                                    	at java.lang.Runtime.exec(Runtime.java:571) 
                                                                                                    	at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352) 
                                                                                                    	at android.app.ActivityThread.handleCreateService(ActivityThread.java:5586) 
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) 
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707) 
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:257) 
                                                                                                    	at android.os.Looper.loop(Looper.java:342) 
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:9638) 
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619) 
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929) 



看日志就是它在 AirPodsService.onCreate() 里直接执行了 su,而你的设备没有 root(系统里不存在 su 可执行文件),于是 Runtime.exec("su") 抛了 IOException,还发生在主线程(FATAL EXCEPTION: main),所以服务创建阶段直接崩了。核心问题有两点:(1) 未做 root 可用性判断,(2) 在主线程做了潜在的阻塞/失败操作。
Originally created by @momosnail on GitHub (Nov 12, 2025). Original GitHub issue: https://github.com/kavishdevar/librepods/issues/244 ``` 2025-11-12 16:05:01.646 27003-27003 AndroidRuntime me.kavishdevar.librepods E FATAL EXCEPTION: main (Ask Gemini) Process: me.kavishdevar.librepods, PID: 27003 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 at android.app.ActivityThread.handleCreateService(ActivityThread.java:5599) at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loopOnce(Looper.java:257) at android.os.Looper.loop(Looper.java:342) at android.app.ActivityThread.main(ActivityThread.java:9638) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929) Caused by: java.io.IOException: Cannot run program "su": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050) at java.lang.Runtime.exec(Runtime.java:712) at java.lang.Runtime.exec(Runtime.java:571) at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352) at android.app.ActivityThread.handleCreateService(ActivityThread.java:5586) at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loopOnce(Looper.java:257)  at android.os.Looper.loop(Looper.java:342)  at android.app.ActivityThread.main(ActivityThread.java:9638)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)  Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:133) at java.lang.ProcessImpl.start(ProcessImpl.java:141) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) at java.lang.Runtime.exec(Runtime.java:712)  at java.lang.Runtime.exec(Runtime.java:571)  at me.kavishdevar.librepods.services.AirPodsService.onCreate(AirPodsService.kt:352)  at android.app.ActivityThread.handleCreateService(ActivityThread.java:5586)  at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2707)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loopOnce(Looper.java:257)  at android.os.Looper.loop(Looper.java:342)  at android.app.ActivityThread.main(ActivityThread.java:9638)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)  看日志就是它在 AirPodsService.onCreate() 里直接执行了 su,而你的设备没有 root(系统里不存在 su 可执行文件),于是 Runtime.exec("su") 抛了 IOException,还发生在主线程(FATAL EXCEPTION: main),所以服务创建阶段直接崩了。核心问题有两点:(1) 未做 root 可用性判断,(2) 在主线程做了潜在的阻塞/失败操作。 ```
kerem closed this issue 2026-03-02 12:03:36 +03:00
Author
Owner

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

Please give root access to the app.

<!-- gh-comment-id:3520738052 --> @kavishdevar commented on GitHub (Nov 12, 2025): Please give root access to the app.
Author
Owner

@momosnail commented on GitHub (Nov 12, 2025):

好的 谢谢

<!-- gh-comment-id:3520836484 --> @momosnail commented on GitHub (Nov 12, 2025): 好的 谢谢
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#112
No description provided.