Downgrade einer App ohne Datenverlust (ohne Root)?

  • 37 Antworten
  • Letztes Antwortdatum
cska133

cska133

Stamm-User
39
hallo,

gibt es denn Möglichkeiten, eine App zu downgraden ohne ihre Daten zu verlieren. Alte Version über die neuere zu installieren, erlaub Android nicht. Oder geht es ohne Root gar nicht?
 
Das kann nur der Enwickler beantworten .

Nur der weis , welche Änderungen er in seinen files/Cache-Ordner vorgenommen hat oder wenn er eine Datenbank verwendet, welche Tabellen er anlegt.
 
  • Danke
Reaktionen: DOT2010
aktuelles Beispiel zum Downgrade Opera Mobile
 
Wie gesagt - das kann nur der Entwickler beantworten , wie er z.b. deine Einstellungen , Favoriten etc. lokal sichert
 
wenn es direkt im App-Daten Ordner gesichert wird, wird es ja beim deinstallieren der App entfernt.

@cska133
kannst du die Favoriten nicht expotieren?
 
  • Danke
Reaktionen: swa00
cska133 schrieb:
gibt es denn Möglichkeiten, eine App zu downgraden ohne ihre Daten zu verlieren
Ja, du kannst via ADB mit dem Befehl
Code:
adb shell pm uninstall -k PACKAGE
die APK deinstallieren und die Daten bleiben erhalten. Nach einem Reboot kannst du dann die ältere APK installieren.

ABER: Ob sich die App danach öffnen und benutzen lässt, ist nicht garantiert. Da die aktuellen Daten mit älterem Code ausgeführt werden, wird es vermutlich zu Problemen kommen. Je älter die APK, desto höher die Wahrscheinlichkeit. Außerdem könnten durch die Ausführung der älteren APK auch die aktuellen Appdaten gelöscht/überschrieben werden.

Also theoretisch kein Problem, praktisch eher heikel.
 
  • Danke
Reaktionen: DOT2010 und swa00
@cska133 Das ist doch genau das, was hier geschrieben wurde. Probier es aus, aber auf eigene Gefahr! Und denk an den Reboot zwischen Deinstallation und Installation. Kann auch ohne funktionieren, aber so klappt es auf jeden Fall.
Beiträge automatisch zusammengeführt:

BTW: ADB brauchst du nur für die Deinstallation. Die APK kann danach ganz normal ohne ADB installiert werden.
 
Zuletzt bearbeitet:
Klaus986 schrieb:
BTW: ADB brauchst du nur für die Deinstallation. Die APK kann danach ganz normal ohne ADB installiert werden.
nur wenn dein adb befehl ausgeführt wird? Bei der Methode in dem Link oben muss man mit den beiden Befehlen machen wie beschrieben oder?
 
@cska133 Führ den Befehl aus, Neustart und APK installieren, so wie jede andere APK auch. Ganz einfach.
 
Klaus986 schrieb:
Das ist doch genau das, was hier geschrieben wurde.
nein, ist was anderes.

cska133 schrieb:
Bei der Methode in dem Link oben muss man mit den beiden Befehlen machen wie beschrieben oder?
ja, sind aber auch andere Befehle.
 
  • Danke
Reaktionen: swa00
maik005 schrieb:
nein, ist was anderes.
Nein, ist es nicht. Der dortige Befehl bügelt die ältere Version einfach drüber. Technisch gesehen ist es dasselbe, nur anders verpackt. Außerdem wird dieser Befehl, so wie er dort zu sehen ist, nicht funktionieren. Daher sollte @cska133 meine Variante nutzen.
 
Klaus986 schrieb:
Ja, du kannst via ADB mit dem Befehl
Code:
adb shell pm uninstall -k PACKAGE
also der Befehl deinstalliert , in dem er die Daten behält. Dann ist die alte Version normal zu installieren

adb push app.apk /sdcard/app.apk
adb shell pm install -r -d /sdcard/app.apk
Hier wird über die vorhandene neue Version die ältere installiert, indem die Daten beibehalten werden sollen.

Ist das richtig?
 
cska133 schrieb:
Hier wird über die vorhandene neue Version die ältere installiert, indem die Daten beibehalten werden sollen.

Ist das richtig?
Ja, bei alten Versionen von Android ist dieser Befehl korrekt. Aber du wirst Fehlermeldungen bekommen.
1. Fehler: Du kannst keine APK von /sdcard aus installieren. Die APK muss sich in /data/local/tmp befinden. Mit ADB hast du Zugriff auf dieses Verzeichnis.
2. Fehler: Du kannst trotz der Option
Code:
pm install -d

# -d: allow version code downgrade (debuggable packages only)
keinen Downgrade direkt durchführen, weil deine APK mit Sicherheit nicht "debuggable" ist. Du musst zuerst mithilfe von meinem Befehl die App deinstallieren, um danach und nach einem Neustart den Befehl von XDA verwenden zu können. In diesem Zusammenhang kannst du dir den Befehl von XDA aber direkt sparen, weil sich die App auch normal installieren lässt.

Also nimm einfach meine Variante.
 
  • Danke
Reaktionen: maik005
also die Option -k macht was?
 
Zuletzt bearbeitet:
@cska133
Code:
pm uninstall [-k] [--user USER_ID] [--versionCode VERSION_CODE] PACKAGE [SPLIT]
    Remove the given package name from the system.  May remove an entire app
    if no SPLIT name is specified, otherwise will remove only the split of the
    given app.  Options are:
      -k: keep the data and cache directories around after package removal.
      --user: remove the app from the given user.
      --versionCode: only uninstall if the app has the given version code.
 
das mit dem Split habe ich nicht verstanden
 
@cska133 Mach es doch einfach, was ich geschrieben habe. Der Auszug aus der Syntax ist allgemein und beinhaltet ALLE Optionen. Auch die, die für dich NICHT relevant sind.

1. adb shell pm uninstall -k PACKAGE
2. Neustart
3. APK installieren

Ich habe es selbst schon viele Male so gemacht.
 
ach du hast es scho so gemacht, und es hat geklappt...
 

Ähnliche Themen

C
  • CrazyWolf
Antworten
8
Aufrufe
817
cptechnik
cptechnik
Archie Leach
  • Archie Leach
Antworten
7
Aufrufe
1.655
KalleMerkt
K
L
Antworten
3
Aufrufe
1.104
chika
C
Zurück
Oben Unten