2011-01-04 8 views
2

IAndroid: Wie kann ein chmod auf verwurzelten devides ausführen

String path = „/data/data/com.android.providers.settings/databases/settings einen Befehl auf meine rooted Android 2.1-Gerät ausführen würde .db "; Runtime.getRuntime(). Exec ("/ system/bin/chmod-f 777" + Pfad);

Dieser Befehl führt jedoch nichts zur Zieldatei. Irgendeine Idee?

Antwort

1

Sie müssen die Laufzeit als Root-Benutzer zuerst erhalten. Es gibt eine nette ShellInterface-Klasse, die Sie von der MarketEnabler source available on Google Code verwenden können. Bedenken Sie jedoch, dass dieser Quellcode unter der GPL veröffentlicht wird.

Im Wesentlichen müssen Sie bestimmen, wo Ihr su Befehl ist, und eine Art Shell erstellen, die einen Eingabestream und Ausgabestream für STDIN und STDOUT verwendet. Mit diesen können Sie dann Ihre Befehle zu Ihrem "Terminal" schieben. Wenn Sie alle Ihre Befehle ausgeführt haben, leeren Sie den Puffer und warten Sie, bis die Laufzeit abgeschlossen ist. Sobald es abgeschlossen ist, können Sie Ihre Laufzeitschnittstelle schließen.

Dann schauen Sie sich die Datei an, die Sie versucht haben zu erstellen/ändern/etc, um zu sehen, ob alles richtig funktioniert hat.

+0

Süße. Arbeiten perfekt. Danke –

0

Bao Le Ich glaube, Sie versuchen, Shell-Befehle in einer Android-App zu löschen, hier (Running Android Native Code in your Android app) sind einige von vielen Möglichkeiten, einen Befehl aus einer App auszuführen.

+0

Ich habe nicht mit deinen Zeigern versucht. Aber die vorherige Lösung funktioniert perfekt. Danke trotzdem –

+0

froh zu hören, dass es funktioniert Ich werde versuchen, es zu testen und dann zu dem Zeige-Post hinzufügen, so wie oben eine Zusammenstellung von Technologien, die Shell-Befehle auf Android ausführen – 100rabh