come utilizzare il comando adb per eseguire il push di un file sul dispositivo senza scheda SD


104

Come inviare un file dal computer a un dispositivo Android che non contiene una scheda SD. Provai:

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)

comandi precedenti per spostare un file anand.jpgsul dispositivo ma non ho ricevuto questo jpgfile nel dispositivo. Non ho ottenuto alcun risultato positivo al prompt di cmd, ho solo ottenuto:

3399 KB/s (111387 bytes in 0.032s).

3
adb shell "cd /data/local && mkdir tmp"Allora prova adb push anand.jpg /data/local/tmp. Come controlli il file sul dispositivo, con adb shell?

@RC sto usando il comando ls per controllare i file. l'ho ottenuto almeno nella vista DDMS sull'emulatore, ma ancora non l'ho ricevuto sul dispositivo. quando provo il comando "adb push" mostra il dispositivo non trovato per il dispositivo reale. ma adb devices sta mostrando il dispositivo.
Nikhil Kumar


1
Questa domanda sembra essere fuori tema perché non riguarda la programmazione. Vedi Quali argomenti posso chiedere qui nel Centro assistenza. Forse lo Stack Exchange per gli appassionati di Android sarebbe un posto migliore per chiedere.
jww

Il suggerimento di RC ha funzionato in questa variazione per me: adb shell "cd /sdcard && mkdir temp"poi abd push x.apk /sdcard/temp"sono finito con il mio file nella cartella temp sulla mia sdcard, e da lì sono stato in grado di eseguire il flash.
Kajetan circa

Risposte:


130

Dal terminale Ubuntu, di seguito funziona per me.

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'

Sto lavorando al prompt di Windows cmd, puoi dirmi in Windows come farlo.
Nikhil Kumar

basta rimuovere "./" e utilizzare semplici adb o adb.exe. Assicurati di essere nella cartella degli strumenti della piattaforma se non hai impostato il percorso per Android.
Hardik Trivedi

2
Possiamo farlo senza eseguire il root del telefono?
Jacob il

2
@HardikTrivedi: Stai dicendo che il rooting è necessario per utilizzare adb push in generale, o per questa particolare destinazione del file? Sto usando adb push per scrivere un file sulla scheda SD del dispositivo Android su un dispositivo non rootato.
RenniePet

2
Per spingere il comando funziona anche per il telefono non rootato, solo la cartella / data richiede l'utente root.
Hardik Trivedi

33

L'ho fatto usando questo comando:

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

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


1
ho appena spostato un file mp3 da mac osX a un dispositivo Android 5.0 e ho dovuto scrivere il nome del file sul dispositivo, ad esempio "adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3"
DoruChidean

28

Segui questi passi :

vai su Android Sdk quindi sul percorso "platform-tools" sul tuo terminale o console

(su Mac, il percorso predefinito è: / Users / USERNAME / Library / Android / sdk / platform-tools)

Per controllare le schede SD (esterne e interne) installate sul tuo dispositivo, attiva questi comandi:

  • 1) ./adb shell (premi invio / invio )
  • 2) cd - (premi invio / invio)

ora vedrai l'elenco delle directory e dei file dal tuo dispositivo Android lì potresti trovare / sdcard e / storage

  • 3) cd / archiviazione (premi invio / invio)
  • 4) ls (premi invio / invio)

potresti vedere sdcard0 (generalmente sdcard0 è la memoria interna) e sdcard1 (se è presente SDCard esterna)

  • 5) esci (premi invio / invio)

uscire dalla shell di adb

  • 6) ./adb push '/Users/SML/Documents/filename.zip' / storage / sdcard0 / path_to_store / (premi invio / invio )

per copiare il file


11

A volte hai bisogno dell'estensione,

adb push file.zip /sdcard/file.zip


1
Ho LG Nexus 5 e non puoi inserire una scheda SD esterna ma una parte della memoria interna si comporta come se fosse una scheda SD In questo caso la scheda SD è solo una directory a livello di root Puoi controllarla chiamando 'adb shell' Quando sei nella shell chiama 'ls' per l'elenco delle directory
cstuncsik

8

eseguire prima il comando sotto

adb root
adb remount

Quindi esegui ciò che hai inserito in precedenza

C:\anand>adb push anand.jpg /data/local
C:\anand>adb push anand.jpg /data/opt
C:\anand>adb push anand.jpg /data/tmp

4

Ho un Nexus 4, cioè senza memoria esterna. Tuttavia Android pensa di averne uno perché monta una partizione separata chiamata "storage", montata in "/ storage / emulated / legacy", quindi prova a spingere lì:adb push anand.jpg /storage/emulated/legacy


Per il mio nexus 4 /sdcard.file.zip ha funzionato a meraviglia .
sud007

4

La mia soluzione (esempio con un file video mp4 casuale):

  1. Imposta un file sul dispositivo:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. Ottieni un file dal dispositivo:

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

Per recuperare il percorso nel codice:

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

Questo è tutto. Questa soluzione non dà problemi di autorizzazione e funziona bene.

Ultimo punto: volevo modificare le informazioni sui metadati del video. Se vuoi scrivere sul tuo dispositivo devi cambiare l'autorizzazione nel file AndroidManifest.xml. Aggiungi questa riga:

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

3

Poiché ci sono diversi percorsi per diverse versioni. Ecco una soluzione generica:

Trova il percorso ...

  1. accedere adb shell nella riga di comando.
  2. Quindi lse Invio.

Ora vedrai i file e le directory del dispositivo Android. Ora con la combinazione di lsecd dirName trova il percorso per l'archiviazione interna o esterna.

Nella directory principale, i nomi delle directory saranno come mnt, sdcard, emulator0, ecc

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


3

Prova questo per inserire la memoria interna.

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

Funziona in un dispositivo plus, senza scheda SD.


0

Stai tentando di scrivere nelle cartelle di sistema. Con ADB hai accesso root (amministratore) in modo da vedere le cartelle di sistema di cui sdcard è una di queste in modo da inviare un'immagine che potresti usare

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

NB: C: \ Downloads \ anand.jpg sostituire con il percorso e il nome dell'immagine ..


0

Alcune versioni di Android non attivano le attività appropriate per l'aggiornamento dello stato del file system. È possibile attivare un intento esplicito per l'aggiornamento dello stato del file system. (Ho appena provato dopo essere stato nella stessa situazione dell'OP)

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

(Puoi passare un percorso file specifico invece di file:///come file:///sdcard)


0

Nel mio caso, avevo una SDCard già rimossa ancora registrata in Android. Quindi ho premuto a lungo la voce per la mia vecchia SDCard sotto:

Settings | Storage & USB

e selezionato "Dimentica".

Successivamente un normale

adb push myfile.zip /sdcard/

ha funzionato bene.


0

Questa potrebbe essere la migliore risposta che potresti leggere. Configurazione di Android Studio Quindi vai a visualizzare e aprire Esplora dispositivi. Fare clic con il tasto destro sulla cartella e caricare un file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.