Android Phone "/data"-Partition auslesen ohne funktionierendes ROM?
Hallo zusammen!
Hätte niemals gedacht, dass ich als Informatiker hier mal eine "Computerfrage" stellen muss, aber ich bin in folgender Situation.
Ich habe mein Gerät von einer CyanogenMod 11 (Android 4.4.4) auf eine CyanogenMod 12.1 (Android 5.1) Nightly aktualisiert. Nun hängt es beim Firstboot mit der Meldung "Android wird aktualisiert ...". Wenn er durch damit ist, bootet er neu und fängt von vorne an und bootet wieder neu und wieder und wieder. Bootloop sozusagen, auch wenn sie recht "spät" einsetzt.
Ich habe die Cache-Partition formatiert, Dalvik-Cache gelöscht, immer noch Bootloop. Dann habe ich die System-Partition formatiert, habe die alte Recovery und das alte ROM wieder geflasht, wieder Cache und Dalvik-Cache gelöscht. Das alte ROM bootlooped nun allerdings auch.
Gibt es noch eine Möglichkeit, an die Datenpartition heranzukommen? (Sofern sie überhaupt noch in Ordnung ist? Vielleicht lässt sie sich ja nicht mounten und daher der Bootloop, schließlich sind System- und Cache-Partition ja "clean". Ich würde es trotzdem gerne versuchen, nur weiß ich nicht, wie ich ohne funktionierendes ROM auf die Partition zugreifen soll.) Das Recovery-System ist zwar "custom", unterstützt allerdings leider keinen Zugriff per ADB. Das Phone hat, wie bei den modernen Geräten üblich, auch keinen Slot für eine SD-Karte mehr, sodass man ein NANDroid-Image oder so etwas ziehen könnte.
Ich habe ein Backup der Datenpartition, aber das ist eben 3 Monate alt. Wenn möglich, würde ich gerne aktuellere Daten vom Gerät "ziehen". Das meiste liegt zwar ohnehin "in der Cloud", aber es wäre schon sehr gut, bei Anwendungen wie Threema nicht einen Teil des Chatverlaufs zu "verlieren".
Gibt es eine Möglichkeit, noch an die Datenpartition heranzukommen? Ich bin selbst Entwickler, habe das Android SDK hier mit ADB, Fastboot, etc. Das Gerät ist auch nicht verschlüsselt. Trotzdem komme ich irgendwie nicht an die Datenpartition heran.
Wenn ich die Datenpartition formatiere, wird das Gerät vermutlich sogar wieder hochfahren. Ist ja schließlich die einzige Partition, auf der noch wirklich Daten liegen. Aber ich würde eben etwa 3 Monate an Daten verlieren. Ich habe ein Backup, das 3 Monate alt ist. Komme ich irgendwie "besser" aus der Nummer heraus?
Danke schon einmal!
Vielen Dank für die Unterstützung!
3 Antworten
Bei einer Rom Installation wird alles in /data bis auf die "interne SD" gelöscht, den Teil kannst du ganz einfach noch retten, in dem du die TWRP als Recovery flashst, dann einfach in TWRP mit dem Computer verbinden und in TWRP die Partition mounten, dann kannst du das kopieren was noch übrig ist
Bisher ging eben jedes Update sauber durch (ohne Wipen von "/data"), aber das waren bisher auch nur "kleinere" Updates, zumeist sogar auf Basis der selben Android-Version.
Dass sich die zuletzt geändert hat, ist schon so lange her, dass ich gar nicht mehr weiß, ob ich damals "/data" wipen musste oder nicht. ;-)
So, Threema wiederherstellen war zwar etwas "frickelig", hat aber auch funktioniert.
Hatte schon Angst, dass einem die Krypto da eventuell einen Strich durch die Rechnung macht, sprich dass man letztlich Ciphertext wiederherstellt, aber den Key nicht hat, weil der in irgendeiner "secure storage" lag, an die nur das System dran kommt. Hat aber auch funktioniert. Alles super!
Bei einer Rom Installation wird alles in /data bis auf die "interne SD" gelöscht
Nein!
"/data" ist noch komplett so, wie vor der ROM-Installation. Die Installation eines ROMs betrifft nur "/boot" (eigentlich eine Fehlbezeichnung, denn den Mountpunkt gibt es nicht, es gibt eine Partition namens "boot", in der der Kernel und die Ramdisk liegt) und "/system".
Ich kann also das komplette "/data" noch vom Gerät sichern. Aber ich kann natürlich keine "Exportfunktionen" von Apps mehr nutzen, weil das Gerät nicht mehr bootet, muss mich also darauf verlassen, dass eine "rohe Sicherung" funktioniert und alle Daten enthält, die ich benötige (was sie ja eigentlich sollte) und dass ich auch entscheiden kann, welche davon ich wiederherstellen sollte (wenn ich alle wiederherstelle, bin ich ja vermutlich wieder im Bootloop drin, schließlich wird mit "/data" ja irgendetwas "nicht stimmen", sodass er looped).
Mountbar war "/data" zum Glück noch. Das war meine Befürchtung, dass das nicht der Fall ist und er deswegen looped.
Vielleicht ist es möglich, das Shell-Script für die Installation der Rom so zu modifizieren bzw. zu erweitern, dass die /data Partition zunächst auf einen angeschlossenen USB-Stick kopiert wird und dann auf dem Gerät formatiert wird.
Du hättest davor ein Backup machen sollen : /
Der einzig "gute" Weg es zu reparieren ist eben das Backup drauf zu ziehen...
Die Daten kannst du wahrscheinlich vergessen.
Ansonsten könnte ich dir weiter helfen wenn ich mehr Informationen bekomme.
Das Problem ist, dass mir nicht aufgefallen ist, dass ich von CM-11 auf CM-12.1 aktualisiere. Wie gesagt, ich bin auf dem Nightly-Zweig (weil es für mein Gerät leider keine stabilen Versionen gibt), die Updates kommen somit recht häufig, sodass ich nicht vorher immer das Handy "abziehe".
Der große Versionssprung ist mir erst aufgefallen, als ich die geänderte Bootanimation gesehen habe. Dass die allererste CM-12.1 Nightly für das Gerät eventuell "kaputt geht", hätte man sich natürlich denken können, aber wie gesagt, ich habe nicht auf die Versionsnummer geachtet. (Ich bin mir gar nicht mal sicher, ob die im "Nightly"-Zweig überhaupt angezeigt wird oder nur das Builddatum.)
Welche Informationen hättest Du denn gerne? ;-)
Das Gerät ist ein Galaxy Nexus (i9250), Codename "Maguro", TI OMAP460 SoC. Das CM-Build ist der letzte "offizielle" von der CM-Seite. Das Recovery-System ist die zugehörige CM-Recovery. Ich kann natürlich auch ein älteres Recovery-System oder ROM flashen, aber das wird wohl nicht viel nützen. "Eine Version downgraden" (damit hat's ja funktioniert) hat zumindest nichts gebracht.
Meinst Du, das Dateisystem auf der Datenpartition ist "geschossen"? Falls wirklich "nur" das OS es "nicht mehr mögen sollte": Gibt es eine Möglichkeit, dass ich ein Image vom internen Speicher (oder von einer Partition) auf den Rechner bekomme, sodass ich dort versuchen kann, das Dateisystem zu mounten? (Sitze an einer Linux-Maschine. Loopdevice mounten sollte somit nicht das Ding sein. Die Frage ist, wie krieg ich den Flash-Speicher ausgelesen ohne "schwere Geschütze" wie nen JTAG-Debugger?)
Yes! Ich habe mit TWRP Zugriff per ADB (Root-Shell!) und MTP auf das Gerät!
Ich habe gerade alles heruntergezogen, einschließlich "/data/data/ch.threema.app". Ob man damit wirklich was machen kann, weiß ich nicht. Threema ist ja sehr "auf Sicherheit bedacht". Die Daten werden vermutlich wertlos sein. Ansonsten habe ich eben ein gültiges Threema-Backup von vor 3 Monaten.
Außerdem habe ich noch "/data/data/com.android.providers.telephony" gezogen. Das beinhaltet vermutlich die SMS und die Kontakte, die auf dem Gerät liegen, oder?
"/data/data/com.android.providers.contacts" vermutlich die Kontakte und "/data/data/com.android.providers.userdictionary" das personalisierte Wörterbuch?
Naja, deswegen funktioniert CM auch nicht, ohne Factory Reset jedenfalls nicht, wenn du Apps behalten willst solltest du Titanium Backup benutzen