Root Applikation Zugriff

  • Antworten:2
Jörn Malich
  • Forum-Beiträge: 2

02.04.2010, 16:46:10 via Website

Hallo, ich bin gerade dabei eine Application zu schreiben die bestimmte Konfigurationen vornimmt. Ich brauche dafür aber Root Access von der Applikation aus. Ich will im Prinzip eine Datei im Ordner /data/misc/wifi bearbeiten. Er zeigt mir aber immer an: "Permission denied". Hier ein Programmauszug.

Runtime r=Runtime.getRuntime();


Process p=r.exec("su");
p.waitFor();
t=Toast.makeText(getApplicationContext(),p.exitValue();, Toast.LENGTH_SHORT);
t.show();


BufferedReader br2=new BufferedReader(new InputStreamReader(r.exec("cat /data/misc/wifi/wpa_supplicant.conf").getInputStream()));
line="";
text="";
while((line=br2.readLine())!=null)
results.append(line);


Die App läuft nur leider überhaupt nicht. Was mache ich falsch. Vielen Dank für eure Hilfe.
btw: mein telefon ist natürlich gerootet.

— geändert am 02.04.2010, 16:48:05

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

02.04.2010, 17:44:10 via Website

Du könntest alternativ auch ein :
cat /system/etc/wifi/wpa_supplicant.conf
absetzen ...

Da steht gleiches drinnen und das ohne Root ... :)

Besides, was heißt denn läuft überhaupt nicht?
Was zeigt t.show() als Rückgabewert?
Was steht im Logfile und was kommt in line an?

— geändert am 02.04.2010, 19:12:56

lg Voss

Antworten
Jörn Malich
  • Forum-Beiträge: 2

03.04.2010, 15:55:21 via Website

Jawoll, hab das jetzt hinbekommen nachdem ich mir zich foren durchstöbert habe. Läuft nicht bedeutete, dass der nicht mehr reagiert hat und immer abgestürzt ist. Kein Wunder. Bei dem Ausführen von "su" wird eine neue Shell geöffnet und das Programm wartet solange bis die shell geschlossen wird, also muss man noch sowas wie

1//Read File wpa_supplicant
2 Process p2=r.exec("su");
3 DataOutputStream d=new DataOutputStream(p2.getOutputStream());
4 d.writeBytes("cat /data/misc/wifi/wpa_supplicant.conf\n");
5 d.writeBytes("exit\n");
6 d.flush();

schreiben. Jetzt funzt das Schreiben, Lesen alles super. In dem Programm geht es mir darum, dass die Ad Hoc Funktion bei meinem Milestone aktiviert werden soll. Und da das ziemlich umständlich ist mit einer Shell schreibe ich ein Programm dafür.

Ich habe die Datei tiwlan.ini wie folgt bearbeitet:
1WiFiAdhoc = 1
2dot11DesiredSSID = <AdHocSSID>
3dot11DesiredBSSType = 0
und der Datei wpa_supplicant.conf folgendes hinzugefügt:
ap_scan=2 am Anfang

und am Ende:
1network={
2
3 ssid="<AdHocSSID>"
4 scan_ssid=1
5 key_mgmt=NONE
6 mode=1
7}

So wie es auch hier beschrieben ist:
http://modmygphone.com/forums/showthread.php?t=22681

Mein Milestone zeigt auch das hinzugefügte AdHoc bei den WLAN Einstellungen an, nur zeigt er an :"nicht in Reichweite", woran kann das liegen. Am Laptop habe ich dieses AdHoc eingerichtet.

— geändert am 03.04.2010, 15:56:08

Antworten