[Gelöst] Zugriff auf Daten "fremder" Apps

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von kunkka, 04.04.2011.

  1. kunkka, 04.04.2011 #1
    kunkka

    kunkka Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    14.09.2010
    Nabend,

    wenn ich Dateien in meinem App-Verzeichnis /data/data/com.meineapp/... hinterlege, sind diese - soweit ich weiß - vor dem Zugriff anderer Anwendungen geschützt.

    Bei dem Versuch auf die Dateien einer anderen App zuzugreifen, erhielt ich eine FileNotFoundException (Permission denied). In meiner Test-App habe ich dann su-Rechte eingefordert und komme immer noch zu dem gleichen Ergebnis.

    Erstelle ich jedoch ein Backup mit Titanium Backup, so erfolgt ja ein erfolgreicher Zugriff auf diese Dateien - wie ist das möglich?

    Gruß,
    Tim S. (kunkka)
     
  2. MichaelS, 05.04.2011 #2
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Beiträge:
    370
    Erhaltene Danke:
    51
    Registriert seit:
    14.08.2009
    Mit Root Rechten kannst du auf alle Daten zugreifen. Im Notfall einfach die Zugriffsrechte anpassen :) Möchte jedoch dazu kein Beispiel machen ;)
     
  3. ramdroid, 05.04.2011 #3
    ramdroid

    ramdroid Android-Experte

    Beiträge:
    644
    Erhaltene Danke:
    89
    Registriert seit:
    20.10.2010
    Root Rechte anfordern heisst eine "su" shell aufmachen. Dann hast du aber nur in dieser shell root Rechte. Deine App selbst ist noch in der Sandbox mit den Permissions die sie immer hat, nicht mehr. Du musst also innerhalb der su shell entsprechende Kommandos ausführen (cd, ls, cat, busybox, etc.) oder du baust dir mit gnu c selbst eine Linux binary die du über die su shell aufrufst die irgendwas macht....
     
    kunkka bedankt sich.
  4. kunkka, 05.04.2011 #4
    kunkka

    kunkka Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    14.09.2010
    @ramdroid: Ah, das erklärt einiges. Ich habe die root-Abfrage mit:
    Code:
    Process ps = Runtime.getRuntime().exec("su");
    ausgeführt.

    Wie kann ich denn Befehle in der Shell in meiner Anwendung ausführen?
    Können so wie "su" auch andere Befehle wie oben im Code-Fenster ausgeführt werden?
     
  5. ramdroid, 05.04.2011 #5
    ramdroid

    ramdroid Android-Experte

    Beiträge:
    644
    Erhaltene Danke:
    89
    Registriert seit:
    20.10.2010
    Code:
    Process p = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(p.getOutputStream());
    os.writeBytes(cmd + "\n");
    os.writeBytes("exit\n");
    os.flush();
    int exitCode = p.waitFor();
    
    cmd is dann ein String mit deinem Kommando. Du kannst writeBytes an der Stelle dann natürlich auch öfters aufrufen.....
     
    kunkka bedankt sich.
  6. kunkka, 05.04.2011 #6
    kunkka

    kunkka Threadstarter Neuer Benutzer

    Beiträge:
    10
    Erhaltene Danke:
    0
    Registriert seit:
    14.09.2010
    Danke für die Hilfe. Dann kann's jetzt losgehen ;)
     

Diese Seite empfehlen