I am running into a sugote issue, like the person with the backup app on the long thread. This happens in my own app, so I can easily reproduce it.
It happens when I call process.waitFor(). The call is followed in logcat with:
Code:
F/libc (17322): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xb4da21f0 in tid 17366 (Binder_1)
E/DEBUG ( 186): unexpected waitpid response: n=17366, status=00000000
E/ ( 186): ptrace detach from 17366 failed: No such process
E/ ( 186): debuggerd committing suicide to free the zombie!
The waitFor() won't return and I see a new sugote process eating CPU.
Here the code context (simplified):
Code:
Process proc = exec(new String[]{"su","--context","u:r:system_server:s0"});
DataOutputStream os = new DataOutputStream(proc.getOutputStream());
os.writeBytes("stop adbd\n");
os.flush();
os.close();
proc.waitFor();
Interestingly the "stop adbd" command actually works. (It does seem to require system_server.). And when I omit the call to waitFor(), things
appear fine. Except for the cpu-eating sugote leftover. I'm using SuperSU 2.16 on Android 5 on a N7 2013.