Como manter duas versões de um aplicativo instaladas?

43

O Android Market acaba de atualizar um aplicativo no meu dispositivo. Gostei da atualização, mas é totalmente diferente da última versão, que também era a minha favorita. Então, eu quero manter a última versão também. Eu tenho o apk da última versão graças ao Titanium Backup. Mas não consigo instalá-lo sem substituir o atual (a arquitetura do Android é péssima). Há alguma maneira de fazer isso? Hacks etc.
Nota: Desejo manter a versão atual que deve estar conectada ao Market para receber atualizações futuras.

Android Quesito
fonte

Respostas:

29

Isso pode ser feito, mas não é simples pelas razões eldarerathis mencionados. Você precisa do apktool . Consulte este guia sobre como usá-lo. E isso ao assinar o apk depois que você terminar.

Você precisa modificar o arquivo AndroidManifest.xml. Encontre a linha que se parece com isso:

manifest package="com.example.app"

e mude para algo como:

"com.example.app.foo"

Depois de terminar, recompile e renuncie. Para restaurar seus dados, tente o seguinte via adb:

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

Onde com.example.appé o nome do pacote do original e com.example.app.fooé o modificado.

Sempre há uma pequena chance de que o aplicativo seja interrompido ou, dependendo da forma como ele é estruturado, você pode receber uma caixa de diálogo toda vez que alterar a tela, solicitando que você escolha o aplicativo que deseja iniciar, mas definitivamente vale a pena tentar se quero muito o suficiente.

Obviamente, os dois aplicativos não compartilharão as mesmas configurações e dados.

RR
fonte
2
Ótimo ... acho que não estaria sujeito a questões legais, pois não vou distribuir / vender. Obrigado!
Android Quesito
1
Depende do seu país. Na Hungria, é legal fazer engenharia reversa de um aplicativo para fins pessoais / de aprendizado, mas eu não sei sobre o resto do mundo. Mas como você não está distribuindo nada, não terá problemas.
RR
16

Você não pode fazer isso. Cada aplicativo Android tem um nome de pacote, que define efetivamente o espaço para nome Java / Dalvik que suas classes ocupam. Você não pode ter dois pacotes com o mesmo nome instalados, pois isso criaria namespaces sobrepostos, motivo pelo qual sempre substitui o antigo quando você instala um novo. A única maneira possível de fazer isso é se você pudesse obter a fonte do aplicativo e alterar todas as definições de pacote.

eldarerathis
fonte
7

Faça em 5 minutos

Método : Altere o nome do pacote para que o Android o reconheça como um aplicativo diferente.

Não há ferramenta APK, adb, habilidades de superusuário necessárias.

Ferramentas necessárias

  • PC com JAVA (Windows, Linux, Mac) (preferencialmente o JDK 8)
  • ApkRename

Passos

  1. Backup / Faça o download de uma cópia do aplicativo desejado ( app.APK)
  2. Transferir para PC
  3. No PC, faça o download de JAVA e ApkRename
  4. Altere o nome do pacote, fornecendo o caminho para o arquivo APK e o novo nome do pacote para ApkRename
  5. Assine o APK usando ApkSign
  6. Transfira o novo APK para o telefone e instale-o.

NOTA: Caso haja alguma dificuldade em assinar o APK, use o aplicativo editor de APK do Android Advanced permission managere faça qualquer edição, pressione salvar e instalar. Nesse momento, eles assinarão o aplicativo.

totti
fonte
2

Você pode tentar reembalar o aplicativo. Uma vez eu instalei uma versão editada de um jogo e o resultado foram dois jogos. Lembre-se de que os nomes dos pacotes não eram os mesmos.

Andrius
fonte
0

Às vezes, existem algumas referências na biblioteca executável ( .so) e a alteração do nome do pacote (também smali -> classes.dex) também não ajuda.

Em casos simples, procure o ApkEditor .

user39670
fonte
1
Este é um bom começo, mas não explica quais alterações você precisa fazer no ApkEditor. Se você deseja que sua resposta seja útil, edite-a para adicionar um pouco mais de informação.
Dan Hulme