Letztens ist es meiner Frau passiert, dass ihr Mobiltelefon nicht mehr starten wollte. Unzählige Versuche mit Akku raus und wieder rein brachten keinen Erfolg. Und nun hatte ich das Ding an der Backe. Aber ist ja kein Problem, es ist ja ein Recovery (TWRP) geflasht... Oh aber das letzte Backup ist von letzem Jahr und anhand des Datums konnte ich feststellen, dass es das Backup ist, das ich nach dem flashen des neuen ROMs gemacht habe. Also die bittere Wahrheit, meine Frau muss ihr Telefon erneut einrichten. Das ist auch alles kein Problem und geht ja ganz schnell von der Hand.
Aber halt, da gibt es doch dieses eine Spiel, bei dem man schon so unglaublich weit ist, dass seine Daten aber noch nicht in der Cloud speichert, sondern auf dem Telefon und nun muss man das ja irgendwie wieder herstellen können.
Zunächst einmal möchte ich sagen, dass ich nicht weiß warum das dämliche Ding nicht starten wollte. Ich schätze es gab ein Problem in der Systempartition. Wie dem auch sei, erstmal ein Backup vom kaputten Zustand erstellt, man weiß ja nie was kommt. Dann das quasi frische System installiert und geschaut ob es bootet und das hat es auch problemlos.
Jetzt gehts also daran, die Daten dieser einen App zu rekonstruieren.
Da ich das Telefon zum Laden auch gleich am PC hatte, konnte ich recht schnell feststellen, dass sich das Handy im Recovery meldet und sowohl das Dateisystem des internen Speichers als auch das der SD-Karte dem PC zur Verfügung stellt. Blöderweise aber nicht die Systempartition auf der /data eingehängt ist. In /data sind die privaten App-Daten gespeichert. Also muss man da ran kommen.
Zeitgleich stellt TWRP aber auch ein Android Devcie im Sinne von -man kann mit adb darauf zugreifen- bereit. In diesem Falle kann auch eine shell über adb gestartet werden:
chrimbo@calypso:~$ adb shell
Damit kann man sich ein bischen im Dateisystem umsehen. Der Pfad der App-Daten ist in meinem Fall /data/user/0/com.blabla/gamename
. Wobei 'blabla' meist der Hersteller der App ist. Die Sicherung der Daten kann dann über adb pull durchgeführt werden.
root@android:/data/user/0/com.blabla/gamename$ exit
chrimbo@calypso:~$ adb pull /data/user/0/com.blabla/gamename ./
Die zieht eine -1 zu 1- Kopie in den aktuellen Dateipfad. In meinem Fall in mein Heimverzeichnis (~).
Nachdem wieder das lauffähige System geflasht wurde, können die Daten ebenso einfach mit adb push zurückgespielt werden.
chrimbo@calypso:~$ adb push gamename /data/user/0/com.blabla/
(Das Telefon befindet sich noch immer im Recovery und wurde zwischenzeitlich nicht gebootet. Zu beachten ist, dass nicht nach /data/user/0/com.blabla/gamename geschrieben wird, sondern in dessen Elternordner.
Nach einem Neustart war das Spiel wieder im gleichen Zustand wie vor dem GAU.
Wohlgemerkt, ich bin mir ziemlich sicher, dass man auch das Backup am PC mounten kann und so an die Daten kommt, aber das habe ich nicht ausprobiert.