como usar o comando adb para enviar um arquivo no dispositivo sem cartão SD

104

Como enviar um arquivo do computador para um dispositivo Android sem cartão SD. Eu tentei:

C:\anand>adb push anand.jpg /data/local
3399 KB/s (111387 bytes in 0.032s)

C:\anand>adb push anand.jpg /data/opt
3199 KB/s (111387 bytes in 0.034s)

C:\anand>adb push anand.jpg /data/tmp
3884 KB/s (111387 bytes in 0.028s)

comandos acima para mover um arquivo anand.jpgpara o dispositivo, mas não obtive esse jpgarquivo no dispositivo. Não obtive nenhum resultado de sucesso no prompt do cmd, só obtive:

3399 KB/s (111387 bytes in 0.032s).
Nikhil Kumar
fonte
3
Tente adb shell "cd /data/local && mkdir tmp"então adb push anand.jpg /data/local/tmp. Como você verifica o arquivo no dispositivo, com adb shell?
@RC Estou usando o comando ls para verificar os arquivos. consegui pelo menos no modo de exibição DDMS no emulator.but ainda não consegui no dispositivo. quando estou tentando o comando "adb push", ele mostra o dispositivo não encontrado para o dispositivo real. mas dispositivos adb está exibindo o dispositivo.
Nikhil Kumar
Gostaria de parar o emulador, desconectar o dispositivo e, depois de garantir que o dispositivo está no modo de depuração, conecte o dispositivo e tente novamente
1
Esta questão parece estar fora do assunto porque não se trata de programação. Veja sobre quais tópicos posso perguntar aqui na Central de Ajuda. Talvez os entusiastas do Android Stack Exchange sejam um lugar melhor para perguntar.
jww
A sugestão de RC funcionou nessa variação para mim: adb shell "cd /sdcard && mkdir temp"então abd push x.apk /sdcard/temp"acabei com meu arquivo na pasta temporária do meu sdcard e consegui fazer o flash de lá.
Kajetan Abt

Respostas:

130

Do Ubuntu Terminal, abaixo funciona para mim.

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'
Hardik Trivedi
fonte
Estou trabalhando no prompt de cmd do windows pode u plz me dizer no windows como fazer isso.
Nikhil Kumar
apenas remova './' e use adb ou adb.exe simples. Certifique-se de que está na pasta de ferramentas da plataforma se não tiver definido o caminho para o Android.
Hardik Trivedi
2
Podemos fazer isso sem fazer o root no telefone?
Jacob
2
@HardikTrivedi: Você está dizendo que o root é necessário para usar adb push em geral ou para este destino de arquivo específico? Estou usando o adb push para gravar um arquivo no cartão SD do dispositivo Android em um dispositivo sem acesso root.
RenniePet
2
Para que o comando push funcione para telefones sem acesso root também, apenas a pasta / data exige o usuário com acesso root.
Hardik Trivedi
33

Eu fiz isso usando este comando:

sintaxe: adb push filename.extension /sdcard/0/

exemplo: adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/

vincsilver
fonte
1
acabei de mover um arquivo mp3 do mac osX para um dispositivo Android 5.0 e tive que escrever o nome do arquivo para estar no dispositivo, ou seja, "adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3"
DoruChidean
28

Siga esses passos :

vá para Android Sdk e, em seguida, 'ferramentas de plataforma' caminho em seu Terminal ou Console

(no mac, o caminho padrão é: / Users / USERNAME / Library / Android / sdk / platform-tools)

Para verificar os SDCards (externos e internos) instalados no seu dispositivo, dispare estes comandos:

  • 1) ./adb shell (pressione return / enter)
  • 2) cd - (pressione retornar / entrar)

agora você verá a lista de diretórios e arquivos do seu dispositivo Android, onde poderá encontrar / sdcard, bem como / storage

  • 3) cd / armazenamento (pressione retornar / entrar)
  • 4) ls (pressione Enter)

você pode ver sdcard0 (geralmente sdcard0 é armazenamento interno) e sdcard1 (se SDCard externo estiver presente)

  • 5) sair (pressione voltar / entrar)

para sair do shell adb

  • 6) ./adb push '/Users/SML/Documents/filename.zip' / storage / sdcard0 / path_to_store / (pressione return / enter)

copiar o arquivo

SML
fonte
11

Às vezes você precisa da extensão,

adb push file.zip /sdcard/file.zip

Jonas Borggren
fonte
1
Eu tenho o LG Nexus 5 e você não pode colocar um sdcard externo nele, mas uma parte da memória interna se comporta como se fosse um sdcard. Neste caso, o sdcard é apenas um diretório no nível raiz. Você pode verificá-lo chamando 'adb shell' Quando você estiver no shell, chame 'ls' para a lista de diretórios
cstuncsik
8

execute abaixo do comando primeiro

adb root
adb remount

Em seguida, execute o que você inseriu anteriormente

C:\anand>adb push anand.jpg /data/local
C:\anand>adb push anand.jpg /data/opt
C:\anand>adb push anand.jpg /data/tmp
Rocky Chen
fonte
4

Eu tenho um Nexus 4, sem armazenamento externo. No entanto, o Android pensa ter um porque monta uma partição separada chamada "storage", montada em "/ storage / emulado / legacy", então tente empurrar lá:adb push anand.jpg /storage/emulated/legacy

Maik
fonte
Para o meu nexo 4 /sdcard.file.zip funcionou perfeitamente .
sud007
4

Minha solução (exemplo com um arquivo de vídeo mp4 aleatório):

  1. Defina um arquivo para o dispositivo:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. Obtenha um arquivo do dispositivo:

    adb pull /storage/emulated/legacy/myVideoFile.mp4 

Para recuperar o caminho no código:

String myFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myVideoFile.mp4";

Isso é tudo. Esta solução não dá problemas de permissão e funciona bem.

Último ponto: eu queria alterar as informações de metadados do vídeo. Se você deseja escrever em seu dispositivo, você deve alterar a permissão em AndroidManifest.xml. Adicione esta linha:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Alex
fonte
3

Como existem caminhos diferentes para diferentes versões. Aqui está uma solução genérica:

Encontre o caminho ...

  1. Entre adb shellna linha de comando.
  2. Então lse Enter.

Agora você verá os arquivos e diretórios do dispositivo Android. Agora, com a combinação de lse cd dirNameencontre o caminho para o armazenamento interno ou externo.

No diretório raiz, os nomes dos diretórios serão como mnt, sdcard, emulator0,etc.

Exemplo: adb push file.txt mnt/sdcard/myDir/Projects/

M. Usman Khan
fonte
3

Tente fazer isso para empurrar o armazenamento interno.

adb push my-file.apk ./storage/emulated/0/

Funciona em dispositivo One plus, sem cartão SD.

Naitik Soni
fonte
0

Você está tentando gravar em pastas do sistema. Com o ADB você tem acesso root (admin) para ver as pastas do sistema, das quais sdcard é uma delas, para enviar uma foto que você possa usar

D: \ Arquivos de programas \ Android \ sdk \ platform-tools \ adb push am files \ android sdk \ adb.exe push C: \ Downloads \ anand.jpg / sdcard / pictures /

NB: C: \ Downloads \ anand.jpg substitua pelo caminho e nome para a imagem ..

user3555061
fonte
0

Certas versões do Android não disparam tarefas adequadas para atualizar o estado do sistema de arquivos. Você pode acionar uma intenção explícita de atualizar o status do sistema de arquivos. (Acabei de testar depois de estar na mesma situação do OP)

adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///

(Você poderia passar um caminho de arquivo específico em vez de file:///como file:///sdcard)

solucionador
fonte
0

No meu caso, eu tinha um SDCard já removido e ainda registrado no Android. Então, pressionei longamente a entrada do meu SDCard antigo em:

Settings | Storage & USB

e selecionou "Esquecer".

Depois um normal

adb push myfile.zip /sdcard/

funcionou bem.

Dirk
fonte
0

Esta pode ser a melhor resposta que você pode ler. Configure o Android Studio Em seguida, vá para visualizar e abrir o Device Explorer. Clique com o botão direito na pasta e apenas carregue um arquivo.

Rushabh Gedam
fonte