Sec, blogmal! - tidbits - android-restore

Categories:

Everything

Januar '17

FrFrFrFrFrFrFr
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

Archive:

Fri, 12 Nov 2010

Android restore the hard way

Ich bin ja nun schon seit einiger Zeit zufriedener Besitzer eines Android-Handys (ein G1). Durch einen bizarren Bug, und einen kleinen Fehler meinerseits habe ich meine Kontakt- und Kalender-Datenbanken verloren. [Ich synce meine Kontakte prinzipiell nicht mit Google].

Alle relevanten Datenbanken liegen bei Android alle unter /data/data.
(Nur wer sich root-Rechte auf seinem Telefon gesichert hat kann ab hier fröhlich mitspielen).

Die Kontakte sind unter com.android.providers.contacts/databases/contacts.db, die Termine unter com.android.providers.calendar/databases/calendar.dbAchtung: immer auf den richtigen Owner achten, ist ja ein Unixoides System. (Bei mir sind das momentan app_1 für die Kontakte und app_29 für den Kalender) – Bei Unklarheiten einfach nachschauen wem das .../databases Directory gehört.)

Mein letzte Backup dieser Files war ein nandroid-Backup - Die nandroid-Backups liegen alle auf der SD-Card unter /sdcard/nandroid/<handy-id>
Dort pickt man sich das gewünschte Subdirectory (meistens wohl das neueste) heraus, und darin das data.img. Das ist jetzt ein YAFFS2-Image das man z.b. mit unyaffs (Windows-Binary hier) auspacken kann.

Die passenden Files kann man nun aufs Handy verfrachten. Dabei empfiehlt es sich vorher nachzuschauen wer der richtige Owner ist, da adb push diesen leider überschreibt.

adb shell ls -l /data/data/com.android.providers.contacts/databases/contacts.db
adb push contacts.db /data/data/com.android.providers.contacts/databases/contacts.db
adb shell chown app_1:app_1 /data/data/com.android.providers.contacts/databases/contacts.db

adb shell ls -l /data/data/com.android.providers.calendar/databases/calendar.db
adb push calendar.db /data/data/com.android.providers.calendar/databases/calendar.db
adb shell chown app_29:app_29 /data/data/com.android.providers.calendar/databases/calendar.db

Damit die Applikationen die Änderung hinter ihrem Rücken auch mitbekommen empfiehlt sich entweder ein reboot, oder ein (brutaler) restart der passenden Dienste:

adb shell killall android.process.acore
adb shell killall com.android.calendar

Und schon sind die Daten wieder da. Yay!

– Sec


posted at: 11:37 | Category: /tidbits | permanent link to this entry | 8 comments (trackback)
 

Your Comment
 
Name:
URL/Email: [http://... or mailto:you@wherever] (optional)
Title: (optional)
Comment:
Save my Name and URL/Email for next time
(Note that comments will be rejected unless you enter 42 in the following box: )

powered by blosxom
in 0.00 s