Dat(ei)en aus dem NANDroid-Backup extrahieren

  • 211 Antworten
  • Neuester Beitrag
Diskutiere Dat(ei)en aus dem NANDroid-Backup extrahieren im Allgemeines zum Custom-Recovery im Bereich Allgemeines zu Root, Kernel und Custom-ROMs.
E

Etrius

Ambitioniertes Mitglied
Oi...Das wäre nett.
Denn ich hab auch nur die Hälfte verstanden... :D

Wie gesagt, es würde mir ja schon reichen, wenn ich die Kontakte irgendwie in Klartext dargestellt bekomme. Und wenn ich meine ~100 Kontakte per Hand wieder aufs Handy einpflegen müsste...Wäre auch nicht dramatisch.

Hauptsache ich komme irgendwie an die Daten ran...

Danke auf jeden Fall schon einmal @Thyrion
 
mr.stylo

mr.stylo

Experte
Schau einfach mal hier rein [OFFURL]https://www.android-hilfe.de/root-hacking-modding-fuer-motorola-milestone/46339-nandroid-backup-auslesen.html[/OFFURL]
Da ist das Programm zum Nandroid auslesen verlinkt und auch erklärt wie es geht.

Edit: Ich Depp sollte die Antworten besser lesen, das Programm wurde schon genannt, sorry.

Und ich würde mir angewöhnen das Zeug mit Google zu syncen. Ich weiss schon: böses google spioniert mich aus und so. Aber mal ehrlich: was intressiert die die Nummern deiner Freunde? Und sonst wenigstens ab und zu mal auf die SD speichern und dann auf dem PC oder sonst wo speichern.
 
Zuletzt bearbeitet:
E

Etrius

Ambitioniertes Mitglied
@mr.stylo:
Jepp...Wurde schon genannt...
Und außerdem muss ich dann noch ne Windowskiste organisieren...hier stehen nur so Applekisten rum. D
Trotzdem Danke...

Und ja...In Zukunft werd ich wohl mit Google und ner Spiegelung auf Platte sichern. Man ist halt immer erst schlauer wenn es zu spät ist...
 
Thyrion

Thyrion

Ehrenmitglied
Unyaffs sollte auch auf dem Mac verfügbar sein (das Tool kommt ja eigentlich vom Linux :D) und nen SQLlite-Browser gibt es vermutlich auch.

Gedulde Dich noch rund 4 Stunden :D - Dann hab ich zumindest ein Zwischenergebnis.

EDIT: Merker für mich: http://forum.xda-developers.com/showthread.php?t=726051
 
E

Etrius

Ambitioniertes Mitglied
Thyrion schrieb:
Gedulde Dich noch rund 4 Stunden :D - Dann hab ich zumindest ein Zwischenergebnis.
Das wäre großartig...
Auch wenn Du mir bloß sagen kannst ob ich die Daten überhaupt irgendwie ran komme. :thumbsup:

Alles andere (auf welcher Maschine - Win o. MaxOS X/SQLite whatever Browser)...Da kann ich mich in Ruhe in den nächsten Tagen einlesen.

Wichtig wäre nur zu wissen ob ich ran komme...
Wobei...Bei Murphy sind die Daten gar nicht mehr da drin und ich muss eh "bei null" anfangen...
 
mr.stylo

mr.stylo

Experte
Das sieht doch schonmal vielversprechend aus. Verstehe ich dass richtig: Falls /data nicht zerschossen ist im Nandroid (Das Backup hat ja wohl ein Problem), könnte er einfach das Nandroid zurückspielen, adb pull /data/data/com.android.providers.contacts/databases/contacts.db, das neue Rom flashen, adb push /data/data/com.android.providers.contacts/databases/contacts.db und schon wären alle kontakte wieder drinn?
Das wäre ziemlich geil, da ich immer bei jedem Romwechsel alle SMS mit SMS Backup+ wiederherstelle, und das dauern ehwig bei etwa 5000 sms. Und das würde ja dann gleich gehen nur halt mit /data/data/com.android.providers.telephony/databases/mmssms.db
 
Thyrion

Thyrion

Ehrenmitglied
Da das Backup ja ein Problem hat, kann er es eben nicht zurückspielen kann -> Handy bootet nicht. Aber die entsprechenden Datenbank-Dateien stecken ja irgendwo in den Images drin und müssten auch extrahierbar sein (-> unyaffs).

Ohne jetzt nähere Hintergründe zur DB-Verwaltung von Android zu haben: Theoretisch müsste der Austausch der DB-Dateien (solange sich die interne Struktur nicht geändert hat) über die Art samt Inhalt machen lassen - Root-Zugriff natürlich vorausgesetzt.

Mein Ziel ist im Moment erstmal festzustellen:
- Wo stecken die DB-Dateien in dem Nandroid-Backup
- Sind die DB-Dateien extrahierbar
- Sind dort Daten vorhanden (kommt wohl auf den Zeitpunkt des Backups an)
- Kann man die irgendwie exportieren (und z.B. als csv oder so speichern - so kann er notfalls per Hand die Kontakte eintragen und muss nicht jeden fragen)
- Ideal wäre natürlich, wenn er nachdem er ein funktionierendes ROM hat, einfach die Datei tauschen kann.
 
mr.stylo

mr.stylo

Experte
Naja, nach dem Wiederherstellen läuft das Rom kaum, also Grundfunktionen wie telefonieren und so gehen nicht. Aber es wäre möglich dass die Dateien noch da sind und auch funktionieren. Wäre einen Versuch wert
 
Thyrion

Thyrion

Ehrenmitglied
Etrius schrieb:
Selbst nach Wiederherstellung des (vermurksten) BackUp sind die Kontakte trotzdem nicht drin...
Das macht dann aber eher wenig Hoffnung. Aber eins nach dem anderen :smile:
 
E

Etrius

Ambitioniertes Mitglied
@mr.stylo:
Auch wenn ich nur ein Bruchteil der ganzen Befehle jetzt verstanden habe... :D

Der Weg das BackUp einzuspielen wird (meiner bescheidenen Dummy Meinung nach) eben ja nicht funktionieren, weil ich ja keine "externen" Programme einsetzen kann - eben weil ich nicht mal auf den Market mehr zugreifen kann.

Ist wahrscheinlich Bullshit was ich hier reden...

Deswegen wäre mir so ein Weg wie ihn Thyrion vorgeschlagen hat der liebste. Irgendeine Datenbank (sofern überhaupt noch vorhanden) auslesen, im besten Fall die Kontakte in Klartext darstellen lassen und wenn sogar möglich wieder aufs Handy importieren (geht zu Not auch händisch...wie gesagt).

Mehr will ich ja gar nicht... :D

Ich finds cool das Thyrion sich so 'ne Mühe gibt und einem Deppen wie mir (der beim rum spielen sein System zerschossen hat) versucht auf die Beine zu helfen. So'n Codegefrickel wäre mir persönlich zu heikel...da mach ich nur noch mehr kaputt als jetzt schon.

Von daher...Dickes fettes Danke an Thyrion...


[Edit]

Thyrion schrieb:
Das macht dann aber eher wenig Hoffnung. Aber eins nach dem anderen :smile:
Ich kann beim vermurksten BackUp ja gar nicht auf die "Kontakte-Anwendung" zugreifen. Von daher kann ich es, rein von außen betrachtet ja eben nicht sagen...
Siehe nachfolgendes Fallbeispiel...

Wir gehen mal davon aus, dass ich den Oxygen Mod OHNE vorheriges BackUp eingespielt habe und erst dann per Recovery ein BackUp gemacht habe. Sind die Daten wie Kontakte und SMS dann überhaupt noch vorhanden oder wurden die von der neuen (leeren) Datenbankstruktur von Oxygen überbügelt und somit gelöscht ?!
 
mr.stylo

mr.stylo

Experte
Etrius schrieb:
@mr.stylo:
Auch wenn ich nur ein Bruchteil der ganzen Befehle jetzt verstanden habe... :D

Der Weg das BackUp einzuspielen wird (meiner bescheidenen Dummy Meinung nach) eben ja nicht funktionieren, weil ich ja keine "externen" Programme einsetzen kann - eben weil ich nicht mal auf den Market mehr zugreifen kann.

Ist wahrscheinlich Bullshit was ich hier reden...
Ich habe auch gedacht das Backup per Nandroid auf dem Desire wiederherzustellen, also ohne externes Programm. Per ADB gibts du Befehle ans Desire. Damit würdest du vom Handy die Datenbase runterladen und dann später auf ein funktionierendes Rom wieder hochladen.



Etrius schrieb:
Ich finds cool das Thyrion sich so 'ne Mühe gibt und einem Deppen wie mir (der beim rum spielen sein System zerschossen hat) versucht auf die Beine zu helfen. So'n Codegefrickel wäre mir persönlich zu heikel...da mach ich nur noch mehr kaputt als jetzt schon.

Von daher...Dickes fettes Danke an Thyrion...
Finde ich auch klasse. Es gibt wenige die sich so reinhängen für andere. Sonst hört man nur: Mach ein Backup, sonst bist du selber schuld.


Etrius schrieb:
Ich kann beim vermurksten BackUp ja gar nicht auf die "Kontakte-Anwendung" zugreifen. Von daher kann ich es, rein von außen betrachtet ja eben nicht sagen...
So hatte ich es auch verstanden. Wäre also vielleicht doch einen Versuch wert.


Etrius schrieb:
Wir gehen mal davon aus, dass ich den Oxygen Mod OHNE vorheriges BackUp eingespielt habe und erst dann per Recovery ein BackUp gemacht habe. Sind die Daten wie Kontakte und SMS dann überhaupt noch vorhanden oder wurden die von der neuen (leeren) Datenbankstruktur von Oxygen überbügelt und somit gelöscht ?!
Dann wäre alles verloren ...
 
E

Etrius

Ambitioniertes Mitglied
mr.stylo schrieb:
Dann wäre alles verloren ...
Ich hab mich gedanklich schon damit angefreundet, dass ich totalen Bockmist gebaut hat (deswegen auch @Thyrion: Mach Dir bloß keinen Stress - Wenns im Endeffekt eh nicht funktioniert- Feier erst mal Weihnachten !)...

Es muss halt mal weh tun das man es lernt ! :D

Deswegen liebe Kinder...
Immer ein BackUp machen...vielleicht sogar mit Google syncen...Auch wenn Onkel Google böse & gemein ist ! :laugh:
 
mr.stylo

mr.stylo

Experte
Ja, es tönt so als hättest du das Nandroid nach dem Einspielen des neuen Roms gemacht. Naja, nimms nicht so schwer. Ich bin mir sicher dass das dir nie wieder in deinem ganzen Leben passieren wird :smile:
Vielleicht kann Thyrion deine Daten ja trotzdem noch retten.

Edit: Ich hab noch mal ein wenig überlegt. Kann es sein dass du folgendermasen vorgegangen bist: Ins Recovery, Rom eingespielt dann das Backup gemacht und erst dann gewipt? Das würden die Symptome erklären dass Oxygen funktioniert hat, aber nach Einspielen ein kaum funktionierendes Oxygen da war
 
Zuletzt bearbeitet:
Thyrion

Thyrion

Ehrenmitglied
1. Zwischenbericht:
Ok, hab das mal mit einem meiner Nandroid-Backups getestet:

Mit unyaffs auf die data.img funktioniert grundsätzlich, mit dem SQLite-Browser kann ich auch die Kontakt-Datenbank öffnen und die (in diesem Fall meine) Kontakte in ihren Rohdaten lesen. Jetzt das ganze nur noch sortieren :D

SMS geht theoretisch auch.

2. Zwischenbericht:
Ich kann nun mit ein wenig SQL die wichtigsten Daten (Name, Adresse, Telefonnummer, ...) anzeigen lassen - das müsste ich nun nur noch exportieren (daran bastel ich gerade), dann könntest Du das zumindest von Hand machen.

Was wir aber auch versuchen können ist, wie mr.stylo auch schon schrieb, die DB-Datei auf dem Telefon direkt austauschen, wenn Du wieder ein lauffähiges ROM hast (ich würde in diesem Fall ein rootet Stock-Rom empfehlen (dann sollte die DB-Struktur gleich sein).

Achja... Wie soll es denn nun weitergehen? Muss ich mir was überlegen, wie ich Dir erkläre, was ich gemacht habe, oder kannst Du mir die data*.img Deines Nandroid-Backups zur Verfügung stellen?

EDIT: 3. Zwischenbericht:
Ich habe die Daten nun in Excel. Nicht schön, aber leichter bearbeitbar :D
 
E

Etrius

Ambitioniertes Mitglied
Um das ein wenig abzukürzen...

Wo genau muss die user.img liegen ? Mit im BackUp Verzeichnis oder ist die innerhalb einer der anderen fünf .img Dateien versteckt ?
 
Thyrion

Thyrion

Ehrenmitglied
Dann versuch ich mal ein kleines How-To zu verfassen, wie man die Kontakte-Datenbank aus den Nandroid-Images extrahieren kann. Da ich dir (und mir die damit verbundene Erklärungen) den Weg über eine ODBC-Verbindung in Excel zur Datengewinnung mittels eines SQL-Befehls erstmal ersparen möchte, versuchen wir einfach mal, die Datei im System mit der aus dem Image zu ersetzen - wie mr.stylo es vorgeschlagen hat.

Keine Garantie das es funktioniert - ich habe es selbst nicht ausprobiert. Im schlimmsten Fall hat dein Handy weiterhin/wieder Probleme mit den Kontakten, dann sollte aber ein Rücksetzen auf Werkseinstellungen helfen.

Voraussetzungen:
  • Nandroid-Backup mit den zu rettenden Kontakt-Daten
  • Funktionierendes Desire mit einem Stock-HTC-Rom in der Android-Version, wie die Kontakt-Datenbank (ich vermute mal Android 2.2)
  • Aktiviertes USB-Debugging (nur zur Sicherheit)
  • Custom-Recovery mit Root-Zugriff (S-OFF nicht nötig)
  • Das Tool unyaffs für dein Betriebssystem (lauffähig) (Eine Quelle hierfür ist kompliziert, einfach mal nach googlen oder selbst kompilieren, für Windows: unyaffs.rar - File Shared from Box.net - Free Online File Storage)
  • (Optional) SQLite-Browser (SQLite Database Browser) zum Prüfen, ob die Daten auch tatsächlich vorhanden sind, oder zur Anzeige, falls manuelles Abtippen notwendig wird
  • Eine funktionierende ADB-Verbindung (Teil des Android-SDK (Android SDK | Android Developers), muss unter plattform-tools zusätzlich installiert werden)

Los geht's:
  • Die Datei data.img aus dem Nandroid-Backup irgendwo lokal auf dem Rechner ablegen (am besten ein eigenes Arbeitsverzeichnis machen)
  • Mit Hilfe des Programms unyaffs das Image entpacken. Unyaffs ist eine Konsolenanwendung und erwartet einen Parameter, den Namen des Images. Also eine Konsole/Terminal öffnen, zu dem Arbeitsverzeichnis wechseln und mit unyaffs data.img die Daten extrahieren. Dazu muss unyaffs (und alle benötigten Komponenten z.B. cygwin1.dll) entweder ebenfalls in dem Verzeichnis liegen oder über den Path erreichbar sein. Idealerweise extrahiert unyaffs so alle in dem Image befindlichen Dateien und meldet dann end of image.
  • Es sollten sich nun eine Reihe von Unterverzeichnissen zusätzlich in dem Arbeitsverzeichnis finden. Die Kontakte-Datenbank liegt dann unter data/com.android.providers.contacts/databases und heißt contacts2.db. Diese Datei direkt in das Arbeitsverzeichnis kopieren (eigentlich unnötig, macht es mir aber mit der Beschreibung leichter)
    Nebenbei: Die SMS-Datenbank liegt unter data/com.android.providers.telephony/databases/mmssms.db
  • (Optional) Mit einem SQLite-Browser kannst du diese Datei öffnen und dir den Inhalt anschauen. Interessant ist dabei vor allem die Tabelle contacts (also auf "Browse data" wechseln und dort die Tabelle auswählen). Dort sollten nun Deine Kontakte mehr oder weniger in Rohform zu finden sein. Nicht wundern, wenn da was doppelt zu sein scheint, in jeder Zeile findest du eine Information zu dem Kontakt (Telefonnummern, Name, Emailadressen, Geburtstag, Notizen, ...)
  • Sicherheitshalber ein komplettes Backup vom Handy machen (Nandroid, Titanium, ...)
  • Das Handy im Recovery-Modus starten
  • Mit Hilfe von ADB über die Konsole/das Terminal die Datei austauschen
    adb push contacts2.db /data/data/com.android.providers.contacts/databases/contacts2.db
    Das geht natürlich nur, wenn ADB bzw. die Tools des Android-SDK über den Path/Pfad erreichbar ist. Sonst muss, wie oben bei unyaffs auch, das ganze im Arbeitsverzeichnis liegen.
    Anmerkung: Für die SMS müsste das analog gehen.
  • Die Datei sollte nun ausgetauscht sein, daher Handy nun rebooten.
  • Wenn es geklappt hat, glücklich sein.
 
E

Etrius

Ambitioniertes Mitglied
:scared:

Whouu...Das ist ein bisschen Arbeit...

Aber grandiose Leistung von Dir Thyrion. Dickes fettes Danke dafür !
Ich probier eventuell morgen mal rum...zu mindestens bis zu dem Schritt mit dem SQLite Browser. Um zu sehen ob überhaupt Inhalt vorhanden ist...

Das würde mir ja schon reichen und ich würde die Kontakte wohl händisch übertragen. Auch wenn es auf Deinem Weg wohl viel komfortabler ist... :D

Nebenbei (und wo ich das Handy noch nicht wieder richtig eingerichtet habe)...
Welche Mod kannst Du empfehlen ? Am liebsten wäre mir ja wieder ein "original" Froyo mit Sense (hab ja jetzt momentan LeeDroid laufen)...
 
mr.stylo

mr.stylo

Experte
Ich verstehe nicht ganz warum so einen Aufstand dafür machen. Es wäre doch viel einfacher das Nandroid-Backup wiederherzustellen und dann per ADB das File rauszupullen, dann das Nandroid (welches davor erstellt wurde) mit dem funktionierendem Rom wiederherzustellen und das File dort reinzupushen. So kann man alles am Handy machen, und wenn es geht dann hat man alles sofort drinn ohne die Kontakte einzeln aus dem Excel zu kopieren.
Das soll nicht abwertend sein, finde deinen Einsatz wirklich super Thyrion, ist nur ein Vorschlag von mir
 
Thyrion

Thyrion

Ehrenmitglied
@Etrius: Such Dir hier eins aus (ich habe den Vorgänger der Variante 2 derzeit): https://www.android-hilfe.de/forum/...versionen_app2sd-_root-pb99img-zip.62333.html

Und zum Thema kompliziert: Dann hättest Du sehen sollen, was ich gemacht habe, um die Daten in Excel zu kriegen :D - was ich ja hier nicht beschrieben habe.

@mr.style: Das würde voraussetzen, dass er a) booten kann (ok, das scheint ja noch zu gehen), b) USB-Debugging aktiviert ist/werden kann, c) Root-Zugriff vorhanden ist ... Aber klar, ginge auch. Sein Problem ist ja gerade, dass das gemachte Nandroid-Backup nicht richtig läuft. Und es setzt voraus, dass sich Android mit der DB-Datei so einfach "austricksen" läßt.
 
E

Etrius

Ambitioniertes Mitglied
Moin Thyrion...

Danke für den Tipp...Hab das HTC Froyo Rom grad auch gefunden. Werd ich wohl auch dann nehmen...

Ich hab das ganze Geknüppel noch nicht ausprobiert, aber die Daten (sofern vorhanden) werden im SQLite Brwoser ja auch in Klartext dargestellt oder ?

Würde ja vollkommen reichen...'n Exeltabelle brauch ich eigentlich dann gar nicht.
Und klar...Wenn ich die Datenbank irgendwie direkt ins Handy implementieren könnten, wäre das natürlich knorke. Aber mir wohl dann doch zu viel Arbeit und "Bastelei". Ich check die Tage erstmal ob ich überhaupt noch Daten habe und fang dann eben nochmal "von Null" an.

Ich sag auf jeden Fall (nochmals) herzlich Danke...
Großartige Arbeit !

Halte Euch auf dem Laufenden...