2012-10-05 8 views
5

Gibt es eine Möglichkeit, die adb-Deinstallation auf der apk zu verwenden, aber die Daten persistent zu machen? Ich habe den ursprünglichen Schlüssel zu meiner App verloren und möchte ihn nun aktualisieren, ohne jedoch die vorherigen Daten zu verlieren. Also muss ich es zuerst deinstallieren, um die neue apk mit dem neuen Schlüssel hinzuzufügen. Ist das möglich?Wie Android apk ohne Datenverlust zu deinstallieren?

Ich habe vergessen zu erwähnen, dass ich Befehle über eine .bat-Datei ausführe.

+0

Können Sie nicht pull/data/data/ Dateien adbieren und dann deinstallieren? – Shark

+0

@Shark Ich denke, ich könnte das tun, aber kann ich dies mit einer .bat-Datei tun? Und in das Gerät auf die gleiche Weise einfügen, die ich mit Push entfernt? –

+0

Ich sehe keinen Grund, warum nicht. – Shark

Antwort

2

Batch-freundliche Version.

My-make-clean.bat: 
adb pull /data/data/com.blah.bla/file1 file1 
adb pull /data/data/com.blah.bla/file2 file2 
adb pull /data/data/com.blah.bla/file3 file3 
... 
adb uninstall com.blah.bla 
adb install YourApkFile.apk 
+0

Ich bin froh zu hören, dass es für Sie funktioniert :) – Shark

-1

Wenn Ihr Gerät gerootet ist, können Sie auf /data/<package_name> zugreifen, die die App-Daten enthält, und Sie können eine Sicherungskopie davon erstellen.

Wenn Ihr Gerät nicht gerootet ist, haben Sie keine andere Möglichkeit, Ihre Daten zu speichern.

0

Wenn Ihre Daten öffentlich gespeichert werden, bleiben sie nach der Deinstallation erhalten. Wenn Ihre Daten jedoch privat gespeichert werden, werden Ihre Daten bei der Deinstallation der App entfernt.

4

EDIT: angegeben haben soll, wird die folgende Arbeit nur für Android 4.0 und höher.

Aktivieren Sie einfach adb Zugriff, und verwenden Sie diesen Befehl:

adb backup -noapk -f /backup/myAppBackup.ab com.yourapp.packagename

Sie sollten dann eine Datei in Ihrem Stammverzeichnis gespeichert haben (unter Windows, Ihre C: \ oder gleichwertig) in einem Ordner namens Sicherung.

Sobald Sie diese Datei haben, den Paketnamen unter der Annahme gleich bleibt, sollten Sie in der Lage sein, einfach den Befehl zu verwenden

adb restore /backup/myAppBackup.ab

um die Daten wiederherzustellen.

Jetzt weiß ich nicht für bestimmte, dass dies funktioniert, sobald Sie den Schlüssel geändert haben, aber ich bin ziemlich sicher, es beruht nur auf dem Paketnamen, so dass der Signaturschlüssel keine Rolle spielen sollte. Weitere Informationen here.

+0

Danke, der erste Befehl erstellt die Sicherung, aber es scheint, dass es die Sicherung nicht macht. Ich versuchte über adb-Shell und es sagt "Verbindung zum Backup nicht möglich" –

+0

Sonderbare Sache ist, sehe ich nicht die Backup-Anfrage Bildschirm in der Anleitung, die Sie gebucht haben. –

+0

Welches Betriebssystem laufen Sie? Dies funktioniert nur bei 4.0 und höher. – kcoppock