Möchte man von Zeit zu Zeit eine neue Firmware auf seinem Android-Gerät ausprobieren, steht man u.U. vor dem Problem, dass dabei auch die Benutzerdaten und Konfigurationen verloren gehen. Für die meisten Zwecke gibt es zwar gute Backuptools, benutzt man jedoch das Mailprogramm K9-Mail, steht man vor einem kleinen Rätsel. Zumindest habe ich keine gute Lösung gefunden, die dortigen Einstellungen zu sichern und wiederherzustellen.
Drum habe ich mich eben hingesetzt und eine Lösung ausgetestet, die eigentlich recht nahe liegend ist, jedoch u.U. root-Rechte auf dem Telefon braucht und ein wenig Vertrautheit mit der Kommandozeile voraussetzt.
Die Idee ist, die Konfigurationsdaten einfach vom Telefon herunter zu kopieren und später wieder einzuspielen (wie das eben bei einem Backup/Recovery so läuft ).
Ich habe das ganz zunächst probiert, indem ich meine K-9 Einstellungen vom Telefon in einen Emulator überspielt habe, und später dann nach erfolgreicher Installation der neuen Firmware (andere findet man zum Beispiel in der AndroidSPIN ROM Database) auch erfolgreich angewendet.
Die nötigen Kommandos, nachdem man das Android SDK erfolgreich eingerichtet hat und der Zugriff mit adb auf das Telefon funktioniert, sind:
mkdir com.fsck.k9 cd com.fsck.k9 adb pull /data/data/com.fsck.k9 ./
Nach Neuinstallation folgt zunächst die
Installation von K9. Dann mit adb und dem Kommando
adb shell 'ls -l /data/data/com.fsck.k9'
Nachschauen, unter welchem Benutzer K9 nun arbeitet, die Ausgabe bei mir ist zum Beispiel
drwxrwxr-x app_53 app_53 2009-08-19 16:03 shared_prefs drwxrwxr-x app_53 app_53 2009-08-19 16:03 app_KeyStore drwxrwx--x app_53 app_53 2009-08-19 16:02 databases drwxrwx--x app_53 app_53 2009-08-19 16:02 cache drwxr-xr-x app_53 app_53 2009-08-19 16:02 lib
gewesen, woraus ersichtlich wird, dass der neue Benuter app_53 ist.
Seine Daten spielt man dann zurück mit
adb push com.fsck.k9 /data/data/com.fsck.k9
Zum Schluss werden dann die Benutzerrechte wieder korrekt setzen, dazu braucht man die UID des neu installierten K9, wie oben beschrieben in nserem Fall app_53 und muss das Datenverzeichnis mit einem chown entsprechend dem jeweiligen Benutzer wieder zuordnen:
chown app_53.app_53 /data/data/com.fsck.k9/* chown app_53.app_53 /data/data/com.fsck.k9/shared_prefs chown app_53.app_53 /data/data/com.fsck.k9/app_KeyStore chown app_53.app_53 /data/data/com.fsck.k9/databases chown app_53.app_53 /data/data/com.fsck.k9/cache chown app_53.app_53 /data/data/com.fsck.k9/lib
Anzumerken ist noch, dass ich mir nicht die Mühe gemacht habe, zu schauen, welche Daten denn nun wirklich notwendig sind – offensichtlich ist zum Beispiel dass man sich das Überspielen des Cache-Verzeichnisses sparen könnte, evtl ist sogar nur die Datei databases/preferences_storage notwendig. Vielleicht hab ich beim nächsten Firmwarewechsel Zeit und Lust, das zu testen
Interessieren würde mich allerdings, wie sich dieser ansatz auf einem nicht mit root-Privilegien ausgestatteten Gerät verhalten würde. Mal sehen, vielleicht komme ich in absehbarer Zeit ja dazu, das zu testen….und vielleicht helfen diese Aufzeichnungen trotzdem ja jemanden