Android - Die programmgesteuerte Ausführung von su-Befehlen funktioniert nicht

Ich brauche meine App, um einige @ durchzuführsu befiehlt programmgesteuert (Telefon ist gerootet).

Wenn Sie mit adb fertig sind, funktionieren die Befehle.

Zum Beispiel:su -c "mkdir /sdcard/testdir" erstellt ein Verzeichnis mit dem Namen "testdir" in /sdcard

Wenn ich anrufe:

    p = Runtime.getRuntime().exec("su -c \"mkdir /sdcard/testdir\"");
    p.waitFor();

Es geht einfach weiter und es geschieht keine Änderung.

Ich habe versucht, die Eingabe zu lesen:

DataInputStream dis = new DataInputStream(p.getInputStream());
    while((temp = dis.readLine())!=null)
        Log.d(ctx.TAG,"she,ll:"+temp);

Aber es meldet nichts (Schleife macht 0 Iterationen).

Hat jemand jemals vor diesem Problem konfrontiert? Wie kann es gelöst werden? Nicht-su-Befehle funktionieren heutzutage programmgesteuert mit dieser Methode.

Hinweis: Ich gabmkdir als Beispiel (ich weiß, dass es nicht unbedingt su erfordert). Ich brauche viele verschiedene Befehle, um unter @ ausgeführt zu werdesu

Vielen Dank

EDIT: wenn ich @ anrusu -c "id" Programmatisch gibt es eine Ausgabe mit der UID = 0.