2 Stimmen

Ausführen eines Shell-Skripts in einer Android-App zeigt keine Ergebnisse an

Ich habe Probleme herauszufinden, was mit meinem Code los ist. Ich versuche, eine Profiles-App zu erstellen. Das Gerät ist verwurzelt und enthält BusyBox. Ich habe ein Linux-Skript geschrieben, das die Partitionen /data und /cache je nach Benutzer, der sich anmeldet, austauscht.

Wenn ich dieses Skript über ADB ausführe, funktioniert es einwandfrei. Ich dachte mir, dass die Implementierung in eine App ziemlich einfach sein würde.

# sp login benutzername passwort

Android wird mit dem neuen Profil neu initialisiert und alles ist gut. Das ist, was ich in Android habe:

Log.v("Profiles", "sp login " + user + " " + password);
Process process = Runtime.getRuntime().exec("sp login " + user + " " + password);

BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
    output.append(buffer, 0, read);
}
reader.close();
process.waitFor();
Log.v("Profiles", output.toString());

Das einzige, was protokolliert wird, sind meine "Echos" im eigentlichen Skript selbst. Ich bekomme keine Ergebnisse der in diesem Skript ausgeführten Befehle zu sehen. Wenn ich es zum Beispiel in ADB ausführe, werden alle Mount-Befehle und die verschiedenen Dinge, die ich tue, ausgegeben. Nichts davon wird in der Ausgabezeichenfolge ausgegeben.

Irgendwelche Vorschläge?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X