Posso criar um APK a partir de um aplicativo instalado e seus dados?

8

Gostaria de pegar um aplicativo instalado, incluindo seus dados, de um dispositivo Android com raiz e produzir um APK adequado para instalação em um dispositivo Android sem raiz.

Isso é possível?

Editar: as respostas / comentários existentes parecem reforçar a ideia de que os aplicativos existentes não oferecem suporte à incorporação de dados de um aplicativo em um APK. Talvez a pergunta mais fundamental seja: um APK pode incorporar arquivos destinados /data/data/[appname]ou está restrito a ser independente quando instalado?

Notas:

  • Presumi que, se fosse possível, essa funcionalidade seria incorporada a um aplicativo como o Titanium Backup. O Titanium Backup pode fazer backup dos dados do aplicativo + em um único arquivo, mas esse arquivo não é um APK e só pode ser restaurado pelo próprio Titanium Backup - o que não ajuda em nada, pois o dispositivo de destino não está enraizado e, portanto, não pode executar TB.
  • As soluções que requerem o uso do terminal no telefone ou no ADB estão corretas.

Obrigado.

Ian Renton
fonte
Se você olhar para a pasta de backup do TB, notará que ele armazena a .apkplanície (pelo menos você pode pegar isso). Eu preciso olhar nos arquivos de dados; AFAIR eram simplesmente propriedades armazenadas, mas não me lembro do formato usado. No entanto, a restauração de dados em um dispositivo não-enraizada é provavelmente muito difícil de alcançar, pela mesma razão como backup é: nenhum acesso às pastas de dados ...
Izzy
O @Izzy TB possui dois métodos de backup. Seu arquivo normal armazena três arquivos no diretório de backup - um tar.gz contendo o APK, um tar.gz contendo o conteúdo de / data / data / [app] / e um arquivo .properties contendo o que eu assumo ser um hash de os arquivos. A outra opção (em "Enviar este backup" -> "importação fácil" grava um único arquivo .TiBkp que acredito conter os três normais. De qualquer forma, como você disse, o acesso root é necessário para restaurar os dados em / data / data / [aplicativo] / no dispositivo de destino.
Ian Renton
Sim. O último formato destina-se à fácil transferência para, por exemplo, outro dispositivo (e obrigado por mencionar isso para o pessoal do ES file explorer, esse aplicativo agora reconhece esses arquivos e oferece a sua abertura pelo TB, se instalado). Eu estava me referindo ao formato dos pacotes de dados (não compactados) (XML, SQLite, SQL ...) para descobrir como alguém poderia manipulá-los - e bem no meio lembrei que o destino estava sem raiz ... Ainda , pode ser uma ideia interessante para uma "transferência personalizada" para outro destino raiz .
Izzy

Respostas:

3

Agora, depois de ler mais sobre o formato do arquivo APK, acho que posso responder com segurança à minha própria pergunta com "é impossível".

Um arquivo APK não contém uma estrutura de dados "descompactada" na instalação, como os pacotes usados, por exemplo, pela maioria das distribuições Linux. Em vez disso, um APK é simplesmente um arquivo JAR rebatizado e independente que contém o código de bytes, o manifesto e o certificado do aplicativo e nada mais.

O conteúdo de /data/data/[appname]presumivelmente é criado pelo código do aplicativo quando é executado pela primeira vez (ou em algum momento futuro), e não há como incorporar esses dados em um APK para que o sistema os mova automaticamente para o destino correto no momento da instalação.

Ian Renton
fonte
Não é verdade que um APK contenha apenas o bytecode, manifesto e certificado. Ele também contém todos os recursos e ativos usados ​​pelo aplicativo, mas eles permanecem no arquivo APK quando o aplicativo é instalado: não são copiados, a /data/data/menos que o aplicativo esteja programado para fazer isso sozinho.
21814 Dan Hulme
1

Você ainda pode obter o APK de um aplicativo com aplicativos como ES File Explorer , AppMonster ou Titanium Backup . Mas não sei se eles fazem backup de dados quando o APK é criado.

air-dex
fonte
Aplicativos não raiz dificilmente podem incluir dados. O AppMonster certamente não - e, como no Titanium, o OP já declarou que não se encaixa em suas necessidades. Para ES, duvido que extraia dados.
Izzy
Acabei de experimentar o ES e também não parece incluir dados no backup. (Ou, pelo menos, quando o APK de backup está instalado no meu dispositivo de destino sem raiz, os dados que eu espero não estão lá.) Até onde eu sei, o backup do ES não faz nada além de copiar um APK de / data / aplicativos para / sdcard / backups.
Ian Renton
0

Entre na loja de jogos e baixe o ML Manager para extrair os arquivos Apk para uma pasta de sua escolha. Não sei como incluir os dados do aplicativo nisso.

gkeeg
fonte