3 votos

Cómo hacer un downgrade de cualquier app a la versión anterior sin perder datos en Android oreo?

¿Cómo bajar cualquier aplicación a la versión anterior sin perder datos en Android 8.1?

EDIT 0 : Nota Bene : Aquí, Fairemail se da como un ejemplo, mi pregunta no es específica de la aplicación, pero Android específico. En realidad, estoy preguntando cómo degradar cualquier aplicación a su versión anterior habiendo ya descargado la apk.

Esta es la información del paquete eu.faircode.email Quiero presionar para bajar de categoría :

$ du -h eu.faircode.email_1036.apk
13M eu.faircode.email_1036.apk
$ aapt2 dump badging eu.faircode.email_1036.apk | egrep '^$|package|[s]dkVersion:|application-label:|native-code:'
package: name='eu.faircode.email' versionCode='1036' versionName='1.1036' platformBuildVersionName='' platformBuildVersionCode='' compileSdkVersion='29' compileSdkVersionCodename='10'
sdkVersion:'21'
application-label:'FairEmail'
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'

He intentado reinstalar esta aplicación sin pérdida de datos:

$ adb install -r -d eu.faircode.email_1036.apk
Performing Streamed Install
adb: failed to install eu.faircode.email_1036.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE]

pero no funcionó, así que probé la desinstalación de esta aplicación sin pérdida de datos y funcionó :

$ adb uninstall -k eu.faircode.email
The -k option uninstalls the application while retaining the data/cache.
At the moment, there is no way to remove the remaining data.
You will have to reinstall the application with the same signature, and fully uninstall it.
If you truly wish to continue, execute 'adb shell cmd package uninstall -k'.
$ adb shell cmd package uninstall -k eu.faircode.email
Success

Pero entonces la instalación de eu.faircode.email_1036.apk no :

$ adb install eu.faircode.email_1036.apk
Performing Streamed Install
adb: failed to install eu.faircode.email_1036.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
$ adb install -d eu.faircode.email_1036.apk
Performing Streamed Install
adb: failed to install eu.faircode.email_1036.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
$ echo $?
1

Parece que adb install -d sólo se puede utilizar con paquetes depurables según este :

$ adb | grep downgrade
      -d: allow version code downgrade (debuggable packages only)

¿Puede ayudarme?

0 votos

En mi caso, usando Termux, pude bajar connectbot usando cmd package install -d my.apk -- ver también github.com/connectbot/connectbot/issues/1031 . ¿Supuestamente este paquete tiene la depuración activada? El comando simplemente informó Success después de unos segundos y la aplicación volvió a funcionar en mi dispositivo.

3voto

M66B Puntos 111

Lo que quieres no es posible y por una buena razón: las estructuras de datos actualizadas (archivos, base de datos, etc) suelen ser incompatibles con las versiones antiguas de la aplicación. Por ello, sólo se pueden degradar los paquetes depurables (con fines de desarrollo).

Si tienes un problema con FairEmail, por favor, infórmalo en este foro:

https://forum.xda-developers.com/Android/apps-games/source-email-t3824168

1 votos

@M66B La última vez que bajé de categoría otra aplicación porque se bloqueaba en mi dispositivo. Esta pregunta no es específica de la aplicación. En realidad estoy preguntando cómo hacer un downgrade de cualquier aplicación a su versión anterior habiendo ya descargado el apk.

0 votos

@SebMa la respuesta pretendía ser genérica, pero no estaba seguro de si la pregunta era general, de ahí el enlace al foro de FairEmail

0 votos

Entiendo el riesgo. Aunque no estoy seguro de que los desarrolladores se molesten en actualizar sus estructuras de datos cada cierto tiempo, de lo contrario tendrán que reescribir sus componentes de E/S a menudo.

2voto

Izzy Puntos 45544

Si tu dispositivo está rooteado, hay una solución (aplícala bajo tu propio riesgo - como Marcel señaló correctamente Hay una razón por la que se hace casi imposible):

  1. instalar titanium-backup
  2. haz una copia de seguridad de la aplicación que quieres degradar
  3. desinstalar la aplicación que quieres degradar (completamente, es decir, aplicación y datos)
  4. instalar la versión anterior
  5. utilizar Titanium Backup para restaurar sólo datos

Esto me ha funcionado en varios casos. Sin embargo, no hay garantías: si la nueva versión cambió las estructuras en sus bases de datos/configuración, terminará con una aplicación inestable - y las actualizaciones posteriores podrían fallar (en esos casos, use TiBu para restaurar el copia de seguridad completa que hiciste originalmente, así que asegúrate de mantenerlo a salvo).

0 votos

La pb. es que mi dispositivo no está rooteado. He leído sobre este ¿lo has probado?

1 votos

También puede ser necesario el *modo de migración* en la configuración para asegurar la integridad de la BD

1 votos

@SebMa Sí, tengo - y estoy bastante contento con él. TiBu funciona bien en Magisk (según mi experiencia en múltiples dispositivos, puedes ignorar con seguridad la advertencia de TiBu sobre SuperUser en esa configuración).

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X