¿Cómo mantener instaladas dos versiones de una aplicación?

43

Android Market acaba de actualizar una aplicación en mi dispositivo. Me gustó la actualización, pero es completamente diferente de la última versión, que también fue mi favorita. Entonces, quiero mantener la última versión también. Tengo el apk de la última versión gracias a Titanium Backup. Pero no puedo instalarlo sin reemplazar el actual (la arquitectura de Android es una mierda). ¿Hay alguna forma de hacer esto? Hacks, etc.
Nota: quiero mantener la versión actual que debe estar conectada con Market para recibir futuras actualizaciones.

Android Quesito
fuente

Respuestas:

29

Se puede hacer, pero no es sencillo por las razones eldarerathis mencionados. Necesitas apktool . Consulte esta guía sobre cómo usarlo. Y esto al firmar el apk después de que hayas terminado.

Debe modificar el archivo AndroidManifest.xml. Encuentra la línea que se ve así:

manifest package="com.example.app"

y cambiarlo a algo como:

"com.example.app.foo"

Cuando hayas terminado, vuelve a compilar y luego renuncia. Para restaurar sus datos, intente lo siguiente a través de adb:

adb rm /data/data/com.example.app.foo
adb push /data/data/com.example.app /data/data/com.example.app.foo

Donde com.example.appestá el nombre del paquete del original y com.example.app.fooes el modificado.

Siempre hay una pequeña posibilidad de que la aplicación se rompa, o dependiendo de la forma en que esté estructurada, puede recibir un cuadro de diálogo cada vez que cambie la pantalla solicitándole que elija qué aplicación desea iniciar, pero definitivamente vale la pena intentarlo si Lo quiero lo suficiente.

Por supuesto, las dos aplicaciones no compartirán la misma configuración y datos.

RR
fuente
2
Genial ... No creo que esté sujeto a problemas legales ya que no voy a distribuirlo / venderlo ... ¡Gracias!
Android Quesito
1
Depende de tu país. En Hungría es legal realizar ingeniería inversa en una aplicación con fines de aprendizaje / personales, pero no sé nada sobre el resto del mundo. Pero como no está distribuyendo nada, no se meterá en problemas.
RR
16

No puedes hacer esto. Cada aplicación de Android tiene un nombre de paquete, que define efectivamente el espacio de nombres Java / Dalvik que ocupan sus clases. No puede tener instalados dos paquetes del mismo nombre porque crearía espacios de nombres superpuestos, por lo que siempre reemplaza el antiguo cuando instala uno nuevo. La única forma en que podría hacer esto es si pudiera obtener la fuente de la aplicación y cambiar todas las definiciones de paquete.

eldarerathis
fuente
7

Hazlo en 5 minutos

Método : cambie el nombre del paquete para que Android lo reconozca como una aplicación diferente.

Sin APKtool, sin adb, no se necesitan habilidades de superusuario.

Herramientas necesarias

  • PC con JAVA (Windows, Linux, Mac) (JDK 8 preferido)
  • ApkRename

Pasos

  1. Copia de seguridad / Descargar una copia de la aplicación deseada ( app.APK)
  2. Transferencia a PC
  3. En PC descargue JAVA y ApkRename
  4. Cambie el nombre del paquete proporcionando, ruta al archivo APK y nuevo nombre del paquete, a ApkRename
  5. Firma el APK con ApkSign
  6. Transfiere el nuevo APK al teléfono e instálalo.

NOTA: En caso de dificultad para firmar el APK, use la aplicación de editor de APK de Android como Advanced permission managery haga cualquier edición, presione guardar e instalar. En este momento firmarán la aplicación.

totti
fuente
2

Puede intentar volver a empaquetar la aplicación. Una vez instalé una versión editada de un juego y el resultado fueron dos juegos. Si recuerda bien, los nombres de los paquetes no eran los mismos.

Andrius
fuente
0

A veces, hay algunas referencias en la biblioteca ejecutable ( .so), y cambiar el nombre del paquete (también smali -> classes.dex) tampoco ayuda.

En casos simples, busque ApkEditor .

usuario39670
fuente
1
Este es un buen comienzo, pero no explica qué cambios debe realizar en ApkEditor. Si desea que su respuesta sea útil, puede editarla para agregar un poco más de información.
Dan Hulme