Sichern/Wiederherstellen der App-Einstellungen beim Wechseln eines ROMs (veraltet)

Nepomuk

Nepomuk

Dauergast
138
Wer auf den neuesten CyanogenMod (Android 2.1 für G1/Magic) wechseln möchte, dem wird ein Wipe empfohlen. Aber auch sonst kann ja manchmal ein Wipe erforderlich oder angebracht sein (z.B. beim Wechsel von CyanogenMod auf SuperD und zurück).

Ihr erfahrt hier, wie ihr
  • alle installierten Apps
  • die Browser-Lesezeichen und den SMS-/MMS-Speicher
  • die Einstellungen eurer installierten Apps
sichern und nach dem Wipe wiederherstellen könnt.

Vorwort: Ich habe auf diese Weise schon mehrmals erfolgreich die Einstellungen meiner Apps gesichert. Aber ich kann nicht garantieren, dass es in jedem Fall funktioniert. Selbstverständlich sollte vorher ein Nandroid Backup gemacht werden, um notfalls den vorherigen Zustand wieder herzustellen.

Ich bin nicht 100%ig im Bilde, ob es bereits andere zuverlässige Möglichkeiten gibt, um App-Einstellungen sichern und zurückspielen zu können. Dieses Tutorial basiert auf der „händischen“ Sicherung und Wiederherstellung via adb und shell und greift dann auf das fix_permissions Skript aus dem CyanogenMod und darauf aufbauenden ROMs (z.B. SuperD) zurück.

Der Vollständigkeit halber: Dieses Tutorial zeigt das Vorgehen unter Windows 7 und mit einem Vodafone Magic. Auf anderen Systemen können Dialoge und Dateipfade abweichen.

Voraussetzungen:
  • Android SDK und USB-Treiber installiert
  • tools-Verzeichnis des SDK ist in der PATH-Variable eingetragen (siehe Punkt #0)
  • Kenntnisse im Umgang mit adb (Android Debug Bridge) und den verfügbaren Befehlen
  • Kenntnisse im Umgang mit der Windows-Eingabeaufforderung (cmd.exe), z.B. Verzeichniswechsel mit „cd“, …
  • die Wiederherstellung der Einstellungen erfolgt auf einem ROM mit fix_permissions Skript und root-Zugriff (das ist bei allen CyanogenMod- oder Super-D-ROMs der Fall)
  • USB-Debugging (in den Anwendungseinstellungen auf dem Telefon) ist aktiviert


######## Los geht's! ########​


#0 tools-Verzeichnis des SDK in die PATH-Variable eintragen
  1. Systemübersicht in der Systemsteuerung aufrufen (alternativ Windowstaste+Pausetaste drücken)
  2. „Erweiterte Systemeinstellungen“ | Register „Erweitert“ | Button „Umgebungsvariablen“ (Screenshot 01)
  3. In der unteren Liste („Systemvariablen“) die Variable „Path“ suchen und „Bearbeiten…“
  4. Bei „Wert der Variablen“ den absoluten Pfad zum tools-Verzeichnis des Android SDK ergänzen(!), d.h. durch Semikolon getrennt an den bestehenden Eintrag anhängen (Screenshot 02)
    z.B. „;D:\Android\dev\android-sdk-windows\tools“ (ohne Anführungsstriche)
  5. Alle Dialoge mit OK schließen
Nun kann der adb-Befehl „von überall“ auf der Eingabeaufforderung genutzt werden.


#1 Vor dem Wipe: Alle .apk-Dateien und App-Einstellungen sichern
  1. Ordner auf der Festplatte anlegen, in dem die Sicherung abgelegt wird (z.B. D:\Android-Backup)
  2. In diesem Ordner zwei weitere Unterordner anlegen
    D:\Android-Backup\apps
    D:\Android-Backup\data
  3. Telefon per USB anschließen, Windows-Eingabeaufforderung starten und dort in das Verzeichnis D:\Android-Backup wechseln
  4. Code:
    adb pull /data/app apps
    eingeben und mit Enter bestätigen
    Jetzt werden alle .apk Dateien im Unterordner apps gesichert
  5. Code:
    adb pull /data/data data
    eingeben und mit Enter bestätigen
    Jetzt werden die Einstellungen aller Apps im Unterordner data gesichert

#2 Telefon wipen, flashen, updaten (was immer ihr damit vor habt)


#3 Erster Start des Geräts nach dem Wipe (z.B. direkt nach dem Update) – Installieren der Apps

Ich habe die Beobachtung gemacht, dass die Liste der installierten Apps in der Market-App eine Weile gespeichert bleibt und scheinbar nicht vor dem ersten Start der Market-App aktualisiert wird.
Also installieren wir jetzt wieder alle Apps bevor wir den Market das erste Mal starten.
  1. Telefon per USB anschließen
  2. Entpackt die apk_install_batch.cmd aus dem zip-File am Ende des Beitrags und kopiert sie in den Ordner, in dem nun alle .apk-Dateien liegen (D:\Android-Backup\apps)
  3. apk_install_batch.cmd ausführen (doppelt anklicken oder via cmd.exe aufrufen)
Diese Batch-Datei macht nun nichts anderes, als nacheinander alle .apk-Dateien, die in dem Ordner liegen, via „adb install“-Befehl auf dem Telefon zu installieren.
Dieser Vorgang kann (je nach Anzahl der zu installierenden Apps) einige Zeit in Anspruch nehmen. Im Normalfall sollte die Installation jeder .apk-Datei mit Success abgeschlossen werden, Fehler bei der .apk-Installation werden mit Failure und einer näheren Beschreibung des Fehlers quittiert.


#4 Wiederherstellen der Anwendungseinstellungen

Dazu schauen wir uns unseren Ordner data an. Für jede Anwendung, die auf dem Gerät war, existiert jetzt ein Unterordner, der nach dem Package-Namen der Anwendung benannt ist (siehe Screenshot 03).
Ihr geht jetzt die Liste mit den Ordnern durch und
  • löscht die Ordner von den Apps, deren Einstellungen ihr nicht wiederherstellen wollt (ihr könnt diese Ordner auch erstmal in ein anderes Verzeichnis verschieben)

    Anhand des Ordnernamens kann man meistens darauf schließen, zu welcher App das gehört.
    Wenn ihr euch nicht sicher seid, könnt ihr auf cyrket.com danach suchen
    (pname: vor den Packagenamen setzen, z.B. pname:de.stohelit.folderplayer als Suchbegriff)​
  • löscht alle Ordner, die offensichtlich zu den Systemanwendungen gehören
    (z.B. alles was mit com.android. beginnt, auch die meisten com.google.android.* Ordner sollten gelöscht werden)

    Warum das? Da ihr in der Regel grad ein Betriebssystem-Update gemacht habt, solltet ihr nach Möglichkeit darauf verzichten, die Einstellungen der System-Apps wiederherzustellen. Denn gerade hier kann sich durch ein Update viel geändert haben und dann nicht mehr funktionieren.​

    Ausnahme: Wenn ihr die Browser-Lesezeichen und den SMS-/MMS-Speicher wiederherstellen wollt (siehe Punkt #5), dann kopiert euch die Dateien
    • mmssms.db im Ordner com.android.providers.telephony\databases
    • browser.db im Ordner com.android.browser\databases
    in den Backup-Order (D:\Android-Backup). Danach könnt ihr auch die beiden Ordner (com.android.providers.telephony und com.android.browser) löschen.​
  • behaltet nur die Ordner, von denen ihr die App-Einstellungen wiederherstellen wollt
    • beschränkt euch am besten auf die wichtigen Apps, bei denen es viele, aufwendige Einstellungen gibt, z.B. Mail- oder Banking-Programme
    • Apps wie z.B. der Barcode-Scanner haben kaum Einstellungen, da braucht man auch nichts wiederherstellen
Am Ende habt ihr in eurem data-Ordner noch die Unterordner, die wiederhergestellt werden sollen (siehe auch Screenshot 03).

  1. Telefon per USB anschließen, Windows-Eingabeaufforderung starten und dort in das Verzeichnis D:\Android-Backup wechseln
  2. Code:
    adb push data /data/data
    eingeben und mit Enter bestätigen
    Jetzt werden alle Unterordner in unserem data-Verzeichnis zurück auf das Gerät geschrieben. Das kann eine ganze Weile dauern. Wenn nichts mehr über euren Bildschirm rattert und ihr die Eingabeaufforderung wieder vor euch habt, ist er fertig.

#5 Wiederherstellen von Browser-Lesezeichen und SMS-/MMS-Speicher
  1. Telefon per USB anschließen, Windows-Eingabeaufforderung starten und dort in das Verzeichnis D:\Android-Backup wechseln
  2. Code:
    adb push mmssms.db /data/data/com.android.providers.telephony/databases/mmssms.db
    eingeben und mit Enter bestätigen
  3. Code:
    adb push browser.db /data/data/com.android.browser/databases/browser.db
    eingeben und mit Enter bestätigen

#6 Anpassen der Zugriffsrechte mit fix_permissions Skript

Nun wird auf das im ROM integrierte Skript fix_permissions zurückgegriffen und etwaige Unstimmigkeiten bei den Zugriffrechten behoben.
  1. Telefon per USB anschließen, Windows-Eingabeaufforderung starten
  2. Code:
    adb shell fix_permissions
    eingeben und mit Enter bestätigen
Das Skript untersucht nun alle installierten Apps und wird die Zugriffsrechte korrigieren, v.a. bei den Apps, deren Einstellungen wir wiederhergestellt haben. Wenn das Skript fertig ist (kann wieder ein Weilchen dauern) könnt ihr das Gerät vom Kabel nehmen und neu starten.

Fertig!

Nach dem Neustart sollten nun
  • alle Apps funktionsfähig sein
  • bei den ausgewählten Apps die Einstellungen wiederhergestellt sein
Wenn ihr jetzt die Market-App startet, solltet ihr alle eure Apps immer noch aufgelistet und als „Installiert“ markiert sehen und werdet so auch weiter mit Updates versorgt.



Fehlerbehandlung:

Sollten einige Apps abstürzen (meistens gleich beim Start ein FC), könnt ihr folgende Dinge probieren:
  • das fix_permissions Skript nochmal neu ausführen
  • den Einstellungsordner der betreffenden App löschen:
    1. Telefon per USB anschließen, Windows-Eingabeaufforderung starten
    2. Code:
      adb shell
      eingeben und mit Enter bestätigen
    3. in der shell (Zeile beginnt mit #)
      Code:
      cd /data/data
      eingeben und mit Enter bestätigen
    4. Code:
      rm -rf ordnername
      eingeben und mit Enter bestätigen
      (als ordnername muss hier wieder der Package-Name angegeben werden, also z.B. rm -rf de.stohelit.folderplayer)
    5. Code:
      exit
      eingeben und mit Enter bestätigen
    6. Telefon vom Kabel trennen

      Wenn ihr die App nun startet, sollten keine FCs mehr auftreten


So, das war's. Viel Spaß beim Basteln!
 

Anhänge

  • 01.png
    01.png
    52,4 KB · Aufrufe: 743
  • 02.png
    02.png
    10,4 KB · Aufrufe: 515
  • 03.png
    03.png
    18,8 KB · Aufrufe: 549
  • apk_install_batch.zip
    186 Bytes · Aufrufe: 343
  • Danke
Reaktionen: Gamesensei, bacwolf, arez und 9 andere
Habe ein Problem beim Sichern der Apps und der App-Einstellungen. Das Pullen funktioniert wunderbar, aber die Ordner, in denen die Sicherungen gespeichert werden sollen, bleiben leer.

EDIT

Hat sich erledigt, Windoof hats einfach in einem anderen Verzeichnis gespeichert.^^
 
Zuletzt bearbeitet:
echt geile anleitung danke :D
 
hi,
was ist wenn man app2d hat? dann ist das ja alles anders oder? der cod halt, weil ja da die apps wo anders sind? kann das sein?

MFG
 
Danke für die gute Anleitung!
 
Das funktioniert nur bei einem schon mit CM Rom bespieltem Magic oder ?

Ich habe zur Zeit die Standard Rom von Vodafone ohne Root, ohne nichts. Gibt es da auch Möglichkeiten seine Apps mit zu CM zu nehmen ?

Ist sicher eine Newbie Frage, ich hoffe aber ich bekomme trotzdem eine Antwort. :)
LG
 
Ich weiß nicht genau, welche Rechte man als Nicht-root hat.
Denke aber, dass du zumindest root-Rechte brauchst (um via shell auf die Daten zugreifen zu können).

Diesbezüglich könntest du mjrgens' ROM über deine Standard-VF-ROM flashen, dann hast du root und kannst die beschriebenen Schritte ausführen. Mit dem CM ROM, das du dann flashst, hast du ja das fix_permissions Skript, dass eventuelle Rechte-Probleme der Apps nach dem Zurückspielen ausbügeln sollte.
 
das mit den Apps sichern und zurückspielen hat funktioniert. Nur tauchen die Apps nicht im Market unter den downloads auf ?. Gibt es da ne lösung für
 
Nicht, dass ich wüsste. Meistens hat er bei mir die Apps dann alle im Market gehabt. Manchmal waren ein, zwei Neustarts und ein wenig Geduld nötig.

Sollte sich an der Situation nichts ändern, bleibt noch die App aTrackDog. Mit der kann man manuell alle Apps auf Updates überwachen. Sobald eine App dann ein Update rausbringt, installiert man das eh wieder über den Market und dann wird die App auch wieder im Market gelistet.
 
  • Danke
Reaktionen: dirk.ms
nach und nach sind die ganzen Apps nun unter den Downloads aufgetaucht...
Habe aber auch mal die aTrackDog installiert und drüberlaufen lassen... hat evtl auch noch was gebracht
 
Nach dem Wiederherstellen der Anwendungsdaten kann ich Opera Mini nicht mehr installieren. Liegt wohl an den Anwendungsdaten - wie kann ich diese löschen?
 
Via adb shell oder im Terminal Emulator auf dem Gerät ausführen:
Code:
su
rm -rf /data/data/com.opera.mini.android
 
  • Danke
Reaktionen: tweek
Also über die Eingabeaufforderung adb shell eingeben und dann deinen Code einfügen, richtig?

EDIT

Opera funktioniert wieder :)
 
Zuletzt bearbeitet:
Hallo bei mir klappt das wiederherstellen der Anwendungsdaten nicht.
Also der data ordner wird nichts aufs Handy kopiert.

Es kommt dieser fehler:

C:\Users\KAI\Desktop\magic\backup>adb push data /data/data
push: data/com.C30BY40.onthefly_backup/shared_prefs/com.C30BY40.onthefly_backup_
preferences.xml -> /data/data/com.C30BY40.onthefly_backup/shared_prefs/com.C30BY
40.onthefly_backup_preferences.xml
failed to copy 'data/com.C30BY40.onthefly_backup/shared_prefs/com.C30BY40.onthef
ly_backup_preferences.xml' to '/data/data/com.C30BY40.onthefly_backup/shared_pre
fs/com.C30BY40.onthefly_backup_preferences.xml': No such file or directory
1.) Fehler: failed to copy
2.) Fehler: No such file or directory

PS: die neue ROM ist jetzt
Official AOSP 2.2 OTA
kann es an der Rom liegen?

ich wäre dankbar für schnelle hilfe.
 
Du könntest genau diese Datei vorher aus deinem Backup-Ordner löschen.
Das hätte dann allerdings zur Folge, dass genau diese Anwendungsdaten nicht wiederhergestellt werden.
 
Dieser fehler kommt bei jeder datei, beispiel mit DialerOne:

C:\Users\KAI\Desktop\magic\backup>adb push data /data/data
push: data/kz.mek.DialerOne/databases/DialerOne.db -> /data/data/kz.mek.DialerOn
e/databases/DialerOne.db
failed to copy 'data/kz.mek.DialerOne/databases/DialerOne.db' to '/data/data/kz.
mek.DialerOne/databases/DialerOne.db': No such file or directory

Gibt es eine andere methode, möglichkeit, die Anwendungsdaten-Dateien wieder in den internen Handyspeicher zu bekommen?
 
Ist denn die /data-Partition eingebunden bei dir?
Starte mal die Shell und liste dir mal das /data Verzeichnis auf:
Code:
adb shell
 (und dann)
# ls /data
Wenn da nichts drin ist, also keine Unterverzeichnisse, dann ist /data nicht gemountet. Abhilfe schafft man mit
Code:
mount /data
(wenn man schon auf der shell (adb shell) ist)
Danach die shell verlassen mit
Code:
exit
und dann das Rückspielen des Backups versuchen.
 

Ähnliche Themen

A
  • AeroxLinuxTobi
Antworten
1
Aufrufe
3.801
kelebek
K
W
Antworten
1
Aufrufe
1.253
gerdmitpferd
gerdmitpferd
B
  • Br3nd3n
Antworten
3
Aufrufe
993
Br3nd3n
B
Zurück
Oben Unten