Wie finde ich, wo eine App Daten abspeichert?

  • 17 Antworten
  • Neuester Beitrag
Diskutiere Wie finde ich, wo eine App Daten abspeichert? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
S

SchwarzerKater

Neues Mitglied
Hallo zusammen,

ich poste mal hier, da sich hier die Entwickler tummeln, die mir vermutlich meine Frage wie aus der Pistole geschossen beantworten können:

Wie finde ich auf einem Android-Handy, wo eine App ihre persistenten Daten hinspeichert? Da kann doch nicht jede App reinschreiben, wo sie will, richtig? Wenn ich mir mit X-Plore den "Internen gemeinsamen Speicher" (/storage/emulated/0) anschaue, dann finde ich die Daten diverser Apps u. a. in folgenden Verzeichnissen:

/<appname>
/data/<appname>
/Android/<data>/<appname>


Und bei manchen Anwendungen finde ich die Daten überhaupt nicht, doch irgendwo müssen sie ja abgespeichert sein, wenn sie den Reboot des Smartphones überleben.

Kann man das für eine gegebene App irgendwie rauskriegen, auch dann, wenn man den Sourcecode nicht hat?

Danke.
 
swa00

swa00

Moderator
Teammitglied
Hallo @SchwarzerKater

Und bei manchen Anwendungen finde ich die Daten überhaupt nicht, doch irgendwo müssen sie ja abgespeichert sein, wenn sie den Reboot des Smartphones überleben.
Dann sind sie schlichtweg in den "Shared" abgespeichert, auf die du als "Normalo" keinen Zugriff hast.
Nur ggf. Einiges als Root user.
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
Hallo
denn App eigenen Ordner unter /data/data/packagename/.... kannst du nur auf einem gerooteten Gerät sehen.
 
S

SchwarzerKater

Neues Mitglied
Na, das ging ja fix - danke für die Antworten. Gäbe es denn eine Möglichkeit, irgendwie "von außerhalb" zumindest lesend auf die Daten zuzugreifen, also z. B. von einem Linux- oder Windows-PC aus? Oder ist da ohne Android-Root wirklich nichts zu machen?
 
J

jogimuc

Stammgast
Ohne Root auch von ausen nicht.
 
swa00

swa00

Moderator
Teammitglied
Nein , da kannst du nichts machen - wie schon erwähnt , nur ggf. als Root-User , aber dann auch nicht alles.
Nur das Paket ansich , kann auf die Daten zugreifen.
 
Zuletzt bearbeitet:
rene3006

rene3006

Inventar
@jogimuc
Schau dir mal ADB Overlay auf XDA an.
Da kannst du auf den Root Ordner zugreifen ohne Root auf dem Gerät zu haben
Beitrag automatisch zusammengefügt:

[TOOL] ADB-Overlay [2.0.1.0 - .Net 5]
Beitrag automatisch zusammengefügt:

Hab es damals getestet, lief astrein
Sogar der Austausch von Dateien ging
Vlt funktioniert es bei dir auch noch

[TOOL] ADB-Overlay [2.0.1.0 - .Net 5]
 
Zuletzt bearbeitet:
S

SchwarzerKater

Neues Mitglied
Hurra, ich bin einen Schritt weiter! Ich habe es nun wie in https://android.stackexchange.com/questions/48609/ beschrieben versucht, und mit der Methode über "adb backup" und den "Android Backup Extractor" hat es dann funktioniert. Ich fand im Backup eine 9 MB große .db-Datei, das sieht also nach irgendeiner Art von Datenbank aus, doch konnte ich sie bislang nicht öffnen. SQLite scheint es jedenfalls nicht zu sein, jedenfalls sehe ich mittels sqlite3.exe keine Tabellen, im Hexeditor fehlt auch der typische String "SQLite format 3" am Anfang und beim Versuch, die Datei zu zippen, wird sie nicht wesentlich kleiner. Also handelt es sich um irgendetwas Komprimiertes und/oder Verschlüsseltes. Ein naiver Versuch, das Ding mit 7-zip (das ja auch gzip und tar kann) zu entpacken, scheiterte.

(Vielleicht) letzte Frage: Gibt im Android-Umfeld eine andere Standard-Datenspeichermethode, die Dateien mit o. a. Eigenschaften erzeugt (wenn es schon nicht SQLite ist)? Danke.
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
@ScharzerKater

Deiner Beschreibung nach, scheint es eine selbstgestrickte binäre Datei zu sein.

Um deine Frage zu beantworten : es gibt noch die Standard SharedPreferences .
SharedPreferences | Android Developers

Aber 9 MB mit der Technologie erscheint mir eher unwahrscheinlich - sie ist für kleinere Dinge gedacht.
Aber man weis ja nie , was der Entwickler dort tut :)
 
Zuletzt bearbeitet:
BOotnoOB

BOotnoOB

Lexikon
SchwarzerKater schrieb:
im Hexeditor fehlt auch der typische String "SQLite format 3" am Anfang
Und wüssten wir jetzt was dort stattdessen steht, wäre das eine große Hilfe. :)
 
J

jogimuc

Stammgast
Hallo
Frage kannst du andere Dateien aus deinem Backup lesen? Oder sind die auch verschlüsselt?
Das es eine SharedPreferences Datei ist glaube ich nicht das sind normalerweise XML Dateien.

Deiner Beschreibung nach, scheint es eine selbstgestrickte binäre Datei zu sein.
Ich denke es ist eine vom Handy selbst verschlüsselte DB.

Viele Handys benutzen Daten Verschlüsslung auch oft für den internen Speicher bei einem Backup bleiben die Daten dann auch verschlüsselt.
Ohne Root an den Schlüssel zu kommen ich wüste nicht wie.

Vielleicht die Verschlüsselung im Handy ausschalten. Nur wird dabei das Handy auf Werkseinstellung zurück gesetz. Somit sind die Daten auch verloren.
 
Zuletzt bearbeitet:
S

SchwarzerKater

Neues Mitglied
Andere Dateien sind lesbar. Zwei Dateien mit Namen "Web Data" und "Cookies" sind tatsächlich SQLite-Datenbanken, die ich mit sqlite3.exe lesen kann. Es scheint also nur die Datenbankdatei verschlüsselt zu sein.

Die ersten Bytes sind übrigens:

AB 46 7B 8E 7D 71 41 9E 2D 3D 4D A9 83 9C 24 9D 04 00 01 01 20 40 20 20 6A 51 2B 6E 98 61 7E C0

Lesbare Strings befinden sich keine in der Datei. Andererseits kann man sich schon fragen, warum ein Entwickler für eine nicht sehr komplexe Struktur eine eigenes binäres Dateiformat erfindet...
 
BOotnoOB

BOotnoOB

Lexikon
@SchwarzerKater Welche App eigentlich?
 
S

SchwarzerKater

Neues Mitglied
"Sigma Link", damit kann man Sigma-Fahrradcomputer vom Handy aus per NFC auslesen und diverses Statistikgedöns darstellen.
 
C

csapps

Neues Mitglied
Hey,
werden die Daten mit der Sigma Cloud syncronisiert und sind dann am PC über Sigma Sport aufrufbar ?
Oder diese vom Fahrradcomputer direkt in das PC-Programm übertragen.
Weil dort kannst du sie direkt exportieren:

SIGMA SPORT | DATA CENTER - 8.7 Track exportieren

evtl. gibts dafür auch eine Funktion direkt in der App. Dann könntest du dir das ganze mit dem Root und so sparen.

Gruß
csapps
 
Zuletzt bearbeitet:
S

SchwarzerKater

Neues Mitglied
Das ist nicht nicht mein eigener Fahrradcomputer, sondern das eines Bekannten und das PC-Interface ist wohl defekt, daher der Versuch, die Daten via Handy-App runterzukratzen. (Mit dem Cloudkram hat er eh nichts am Hut.)

In der App gibt es eine Backup-Funktion, doch die erzeugt ebenfalls nur eine Datei mit der Endung .db_570 , die sehr ähnlich der genannten .db-Datei ist (= fast dieselbe Größe, keine Struktur erkennbar, nicht komprimierbar).

Immerhin habe ich das Teil durch irgendeine Aktion in der App dazu gebracht, eine (wohl temporäre) XML-Datei zu erzeugen, die allerdings nur eine einzige Tour enthält. Mal gucken, ob ich auf diese Weise eine Tour nach der anderen zumindest auf diese Weise rausfischen kann. Schöner wäre es natürlich immer noch, wenn die Datenbank doch irgendwie entschlüsselbar wäre...
 
swa00

swa00

Moderator
Teammitglied
@SchwarzerKater

... und schon mal den Entwickler angeschrieben ?
 
S

SchwarzerKater

Neues Mitglied
Mittlerweile hat sich das konkrete Problem erledigt - er hat das PC-Interface wieder zum Laufen gebracht. Die Daten sind also gerettet und ich habe ein wenig über die Datenablage in Android gelernt. Danke an alle für die Mitdiskussion!
 
Ähnliche Themen - Wie finde ich, wo eine App Daten abspeichert? Antworten Datum
6
6
2