Como obtenho o arquivo apk de um dispositivo Android? Ou como transfiro o arquivo apk do dispositivo para o sistema?
Use adb . Com o adb pull, você pode copiar arquivos do seu dispositivo para o seu sistema, quando o dispositivo estiver conectado com USB.
É claro que você também precisa das permissões corretas para acessar o diretório em que seu arquivo está. Caso contrário, será necessário fazer o root no dispositivo.
Se você achar que muitos dos APKs são chamados "base.apk", também pode usar este comando de uma linha para obter todos os APKs de um telefone que você pode acessar enquanto renomeia qualquer nome "base.apk" para o nome do pacote. Isso também corrige o problema de diretório não encontrado dos caminhos do APK com caracteres aparentemente aleatórios após o nome:
for i in $(adb shell pm list packages | awk -F':' '{print $2}'); do adb pull "$(adb shell pm path $i | awk -F':' '{print $2}')"; mv base.apk $i.apk 2&> /dev/null ;done
Se você receber "adb: error: failed to stat remote object", indica que você não tem as permissões necessárias. Eu executei isso em um Moto Z2 sem raiz e consegui baixar TODOS os APKs que não desinstalei (veja abaixo), exceto o youtube.
adb shell pm uninstall --user 0 com.android.cellbroadcastreceiver <--- kills presidential alert app!
(para exibir os usuários que executam adb shell pm list users) Esta é uma maneira de remover / desinstalar (não do telefone, pois volta com redefinição de fábrica) quase QUALQUER aplicativo SEM root INCLUINDO aplicativos do sistema (dica do aplicativo de atualização irritante que atualiza o telefone) alinhar ou não pode ser encontrado, grepping para "ccc")
adb shell pm list packages
, e seu caminho completoadb shell pm path your.package.name
, em seguida, a partir do seu PC, você pode simplesmenteadb pull /full/path/to/your.apk
Nenhuma dessas sugestões funcionou para mim, porque o Android anexava um número de sequência ao nome do pacote para produzir o nome do arquivo APK final. Nas versões mais recentes do Android (Oreo e Pie), uma sequência aleatória imprevisível é anexada. A seguinte sequência de comandos é o que funcionou para mim em um dispositivo não-enraizado :
1) Determine o nome do pacote do aplicativo, por exemplo, "com.example.someapp". Pule esta etapa se você já souber o nome do pacote.
Examine a lista de nomes de pacotes e tente encontrar uma correspondência entre o aplicativo em questão e o nome do pacote. Isso geralmente é fácil, mas observe que o nome do pacote pode não ter relação com o nome do aplicativo. Se você não conseguir reconhecer o aplicativo na lista de nomes de pacotes, tente encontrá-lo no Google Play usando um navegador. O URL de um aplicativo no Google Play contém o nome do pacote.
2) Obtenha o nome completo do caminho do arquivo APK para o pacote desejado.
A saída será semelhante ao
pacote: /data/app/com.example.someapp-2.apk
ou
package: /data/app/com.example.someapp-nfFSVxn_CTafgra3Fr_rXQ == / base.apk
3) Usando o nome do caminho completo da Etapa 2, puxe o arquivo APK do dispositivo Android para a caixa de desenvolvimento.
fonte
pm list packages
suporta a-f
bandeira, que lista a localização do .apk para você, comopackage:/data/app/com.google.android.apps.maps-1.apk=com.google.android.apps.maps
. A ajuda interna do pm é inútil, mas o pm também pode filtrar tipos de pacotes também, consulte developer.android.com/studio/command-line/adb.html#pm para obter mais informações. EDIT: apenas notei que a resposta abaixo diz isso, mas essa resposta não é tão votada como esta.adb: error: remote object '/data/app/path.of.the.app-2/base.apk' does not exist
. Se eu procurar essas pastas com um navegador de arquivos, elas estarão vazias.adb shell
e, emcp PathToApk /sdcard/
seguida, copiando do sdcard.Nenhuma raiz é necessária:
Esse código obterá o caminho de pacotes de terceiros com o nome para que você possa identificar facilmente seu APK
a saída será
Agora puxe esse pacote usando o código abaixo:
se você executou acima do cmd in
C:>\
, encontrará esse pacote lá.fonte
-f -s
em vez de-f -3
Eu já vi muitas soluções para esse problema: você precisa fazer o root no telefone ou instalar um aplicativo. Depois de pesquisar bastante, obtive esta solução para telefones não enraizados / enraizados.
Para listar quais aplicativos você obteve até o momento.
Então você pode selecionar um aplicativo, por exemplo, twitter
Uma coisa importante aqui é não configurar uma senha para criptografar seu backup
Isso criará um arquivo chamado backup.ap, mas você ainda não pode abri-lo. Para isso, você precisa extraí-lo novamente, mas usando o comando dd.
Depois disso, tudo o que você precisa fazer é extrair o conteúdo do alcatrão e pronto.
Espero que funcione para vocês
fonte
Etapas para baixar o APK do dispositivo para a área de trabalho
A) Verifique se está executando (emulador / dispositivo real). Para verificar, use este comando
B) Selecione toda a lista de pacotes disponíveis instalada no seu dispositivo. Você pode usar o comando grep para selecionar o pacote específico que deseja baixar.
Saída (lista de pacotes disponíveis)
C) Copie o pacote (do qual você deseja baixar) do link acima. Do nosso caso, escolho este pacote (com.example.myapplication)
Resultado
D) Finalmente, para baixar o APK do seu (emulador / dispositivo real)
Exemplo: tentando puxar esse arquivo CertInstaller.apk na sua máquina local (Mac)
E) Confirme no seu diretório local
fonte
fonte
Um revestimento que funciona para todas as versões do Android:
fonte
Completando a resposta do @Yojimbo, foi o que eu fiz (apenas Linux / Mac, não funcionará imediatamente no Windows ... talvez no shell do bash do git):
Isso é feio festança, mas funciona :)
EDIT: não funciona mais no AndroidM: todos os arquivos são nomeados "base.apk" em outro diretório. Deve ser "trivial" para corrigir.
fonte
Em sistemas unix, você pode tentar esta função:
android_pull_apk com.android.contacts
adb shell pm list packages
fonte
Como dito acima, você pode obter o apk usando o comando pull no adb.
Como você está falando dos aplicativos instalados, vá em frente e consulte o diretório / data / app do seu sistema de arquivos Android. Você encontrará os APKs lá.
Em seguida, use o comando adb - adb pull /data/data/appname.apk
fonte
Experimente este comando one liner bash para fazer backup de todos os seus aplicativos:
Este comando é derivado do script do Firelord . Acabei de renomear todos os apks para seus nomes de pacotes por resolver o problema com o script de elcuco , ou seja, o mesmo
base.apk
arquivo foi substituído no Android 6.0 "Marshmallow" e acima.Observe que este comando faz backup apenas de aplicativos de terceiros, pois não vejo o objetivo de fazer backup de aplicativos internos. Mas se você quiser fazer backup de aplicativos do sistema, apenas omita a
-3
opção.fonte
Se você conhece (ou pode "adivinhar") o caminho para o
.apk
( parece ser o formato/data/app/com.example.someapp-{1,2,..}.apk
para), também pode copiá-lo/data/app
também. Isso funcionou mesmo no meu telefone Android sem raiz e estoque.Basta usar um aplicativo Emulador de Terminal (como este ) e execute:
Depois, você pode movê-lo do cartão SD para onde quiser (ou anexá-lo a um e-mail etc.). O último bit pode ser tecnicamente opcional, mas facilita muito sua vida ao tentar fazer algo com o
.apk
arquivo.fonte
Os procedimentos descritos aqui não funcionam no Android 7 (Nougat) [e possivelmente no Android 6, mas não consigo verificar]. Você não pode extrair os arquivos .apk diretamente no Nougat (a menos que esteja no modo raiz, mas isso exija um telefone root). Mas, você pode copiar o .apk para um caminho alternativo (digamos / sdcard / Download) no telefone usando o shell adb e, em seguida, você pode fazer um pull adb no caminho alternativo.
fonte
adb shell
comandos do comentário de @Isa A) funcionou bem para mim no Android 7.1.1, não enraizada.Obtenha o aplicativo aberto no momento com:
Obter o caminho para o nome do pacote
4.Copie o caminho que você encontrou no diretório sdcard
5.Puxe o apk
Editar
Se a etapa 2 não funcionar, use isto:
fonte
Aqui está como você faz isso:
Baixe e instale o APK Extractor no seu dispositivo. É gratuito e é compatível com quase todos os dispositivos Android. Outro ponto positivo é que nem sequer requer raiz ou qualquer coisa para funcionar. Depois de instalá-lo, inicie-o. Lá, você verá uma lista de aplicativos que estão no seu dispositivo, incluindo os aplicativos que você instalou mais tarde, juntamente com os aplicativos do sistema. Pressione e segure qualquer aplicativo que você deseja extrair (você pode selecionar vários ou todos os aplicativos ao mesmo tempo) e clique na opção de extração que vê no topo. Você também terá a opção de compartilhar via Bluetooth ou mensagem. Pronto, você verá os aplicativos extraídos como AppName_AppPackage_AppVersionName_AppVersionCode.apk, que serão salvos no caminho / sdcard / ExtractedApks / por padrão.
Para obter uma descrição detalhada de como extrair arquivos apk no android , visite: http://appslova.com/how-to-extract-apk-files-in-android/
fonte
Todas essas respostas requerem várias etapas para cada arquivo apk recuperado do dispositivo. 1. determine o nome do pacote, 2. encontre o arquivo e 3. faça o download. Criei um
apk_grabber
script python simples para fazer isso em qualquer aplicativo que corresponda a um determinado regex e depois descompila esses apks em arquivos jar.fonte
Eu não usei o código para puxar o arquivo .apk do celular, mas eu tenho usado o software para extrair o arquivo .apk do celular e o software que usei estão abaixo com o link do Google Play:
Espero que ajude você.
fonte
quer muito, muito confortável solução de 1 minuto?
só você este aplicativo https://play.google.com/store/apps/details?id=com.cvinfo.filemanager (gerenciador de arquivos inteligente do Google Play).
toque em "aplicativos", escolha um e toque em "backup". ele terminará no seu sistema de arquivos na
app_backup
pasta;)fonte
Não é necessário usar nenhuma ferramenta Raiz e nenhuma ferramenta ADB. Instale o aplicativo MyAppSharer da loja de jogos.
fonte
eu tenho um
does not exist error
Aqui está como eu faço funcionar
fonte
Ainda outro script bash (ou seja, funcionará para a maioria dos sistemas baseados em unix). Com base na resposta de Pedro Rodrigues , mas é um pouco mais fácil de usar.
Melhorias na versão de Pedro:
adb pull
continuou reclamandono such file or directory
enquantoadb shell
podia acessar o arquivo. Por isso, usei uma abordagem diferente, com arquivo temporário.Salve isso em um arquivo executável:
fonte
O mais simples é: Instale o aplicativo "ShareIt" no telefone. Agora instale o aplicativo shareIt no PC ou outro telefone. Agora, pelo telefone, onde o aplicativo está instalado, abra o ShareIt e envie. Em outro telefone ou PC, abra o ShareIt e receba.
fonte
Eu realmente gostei de todas essas respostas. A maioria dos scripts para exportar e renomear todos eles foram escritos no Bash. Eu fiz um pequeno script Perl que faz o mesmo (que deve funcionar tanto no Perl para Windows quanto no Linux, testado apenas no Ubuntu).
download-apk.pl
A saída é algo semelhante a:
fonte
Isso ajudará quem procura uma resposta não técnica
Isso é simples hack
Baixe o aplicativo
App Share/Send Pro
da google play store. Selecione o aplicativo que você deseja enviar e o método de envio do aplicativo.Eu costumo usar o Bluetooth para enviar aplicativos para o meu PC ou outro telefone.
fonte