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?