cómo usar el comando adb para insertar un archivo en el dispositivo sin tarjeta sd

104

Cómo enviar un archivo desde la computadora a un dispositivo Android que no tiene una tarjeta SD. Lo intenté:

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 anteriores para mover un archivo anand.jpgal dispositivo, pero no obtuve este jpgarchivo en el dispositivo. No obtuve ningún resultado de éxito en el indicador de cmd, solo obtuve:

3399 KB/s (111387 bytes in 0.032s).
Nikhil Kumar
fuente
3
Intente adb shell "cd /data/local && mkdir tmp"entonces adb push anand.jpg /data/local/tmp. ¿Cómo se comprueba el archivo en el dispositivo adb shell?
@RC Estoy usando el comando ls para verificar los archivos. Lo obtuve al menos en la vista DDMS del emulador. pero aún así no lo obtuve en el dispositivo. cuando intento el comando "adb push", muestra el dispositivo no encontrado para el dispositivo real. pero adb devices muestra el dispositivo.
Nikhil Kumar
Detendría el emulador, desconectaría el dispositivo, luego, después de asegurarme de que el dispositivo está en modo de depuración, conectaría el dispositivo y
1
Esta pregunta parece estar fuera de tema porque no se trata de programación. Consulte ¿Qué temas puedo preguntar aquí en el Centro de ayuda? Quizás el Stack Exchange para entusiastas de Android sería un mejor lugar para preguntar.
jww
La sugerencia de RC funcionó en esta variación para mí: adb shell "cd /sdcard && mkdir temp"luego abd push x.apk /sdcard/temp"terminé con mi archivo en la carpeta temporal de mi sdcard y pude flashear desde allí.
Kajetan Abt

Respuestas:

130

Desde Ubuntu Terminal, a continuación me funciona.

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'
Hardik Trivedi
fuente
Estoy trabajando en el indicador de Windows cmd. ¿Puede por favor decirme en Windows cómo hacerlo?
Nikhil Kumar
simplemente elimine './' y use adb simple o adb.exe. Asegúrese de estar en la carpeta de herramientas de la plataforma si no ha establecido la ruta para Android.
Hardik Trivedi
2
¿Podemos hacer esto sin rootear el teléfono?
Jacob
2
@HardikTrivedi: ¿Estás diciendo que se necesita enraizamiento para usar adb push en general, o para este destino de archivo en particular? Estoy usando adb push para escribir un archivo en la tarjeta SD del dispositivo Android en un dispositivo no rooteado.
RenniePet
2
Para empujar el comando también funciona para teléfonos no rooteados, solo la carpeta / data requiere un usuario rooteado.
Hardik Trivedi
33

Lo hice usando este comando:

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

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

vincsilver
fuente
1
acabo de mover un archivo mp3 de mac osX a un dispositivo Android 5.0 y tuve que escribir el nombre del archivo para estar en el dispositivo, es decir, "adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3"
DoruChidean
28

Sigue estos pasos :

Vaya a Android Sdk y luego a la ruta 'platform-tools' en su Terminal o Consola

(en mac, la ruta predeterminada es: / Users / USERNAME / Library / Android / sdk / platform-tools)

Para verificar las SDCards (externas e internas) instaladas en su dispositivo, active estos comandos:

  • 1) ./adb shell ( presione regresar / ingresar)
  • 2) cd - (presione regresar / enter)

ahora verá la lista de directorios y archivos de su dispositivo Android, allí puede encontrar / sdcard y / storage

  • 3) cd / almacenamiento (presione regresar / ingresar)
  • 4) ls (presione regresar / ingresar)

es posible que vea sdcard0 (generalmente sdcard0 es almacenamiento interno) y sdcard1 (si la tarjeta SD externa está presente)

  • 5) salir (presione regresar / entrar)

para salir de adb shell

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

copiar archivo

SML
fuente
11

A veces necesitas la extensión

adb push file.zip /sdcard/file.zip

Jonas Borggren
fuente
1
Tengo LG Nexus 5 y no puede poner una tarjeta sd externa en él, pero una parte de la memoria interna se comporta como si fuera una tarjeta sd. En este caso, la tarjeta sd es solo un directorio en el nivel raíz. Puede verificarlo llamando a 'adb shell' Cuando esté en el shell, llame a 'ls' para la lista de directorios
cstuncsik
8

ejecutar debajo del comando en primer lugar

adb root
adb remount

Luego ejecute lo que ingresó previamente

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
fuente
4

Tengo un Nexus 4, es decir, sin almacenamiento externo. Sin embargo, Android piensa tener uno porque monta una partición separada llamada "almacenamiento", montada en "/ almacenamiento / emulado / legado", así que intente presionar allí:adb push anand.jpg /storage/emulated/legacy

Maik
fuente
Para mi nexus 4 /sdcard.file.zip funcionó de maravilla .
sud007
4

Mi solución (ejemplo con un archivo de video mp4 aleatorio):

  1. Establecer un archivo en el dispositivo:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. Obtener un archivo del dispositivo:

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

Para recuperar la ruta en el código:

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

Esto es todo. Esta solución no da problemas de permisos y funciona bien.

Último punto: quería cambiar la información de metadatos del video. Si desea escribir en su dispositivo, debe cambiar el permiso en el archivo AndroidManifest.xml. Agrega esta línea:

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

Ya que existen diferentes caminos para diferentes versiones. Aquí hay una solución genérica:

Encuentra el camino ...

  1. Ingrese adb shellen la línea de comando.
  2. Luego lsy Enter.

Ahora verá los archivos y directorios del dispositivo Android. Ahora con la combinación de lsy cd dirNameencuentre la ruta al almacenamiento interno o externo.

En el directorio raíz, los nombres de los directorios serán como mnt, sdcard, emulator0, etc.

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

M. Usman Khan
fuente
3

Pruebe esto para insertar el almacenamiento interno.

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

Funciona en un dispositivo One plus, sin tarjeta SD.

Naitik Soni
fuente
0

Está intentando escribir en carpetas del sistema. Con ADB, tiene acceso de root (administrador), por lo que puede ver las carpetas del sistema de las cuales sdcard es una de ellas para enviar una imagen que podría usar

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

NB: C: \ Downloads \ anand.jpg reemplazar con la ruta y el nombre de la imagen.

user3555061
fuente
0

Ciertas versiones de Android no activan las tareas adecuadas para actualizar el estado del sistema de archivos. Podría activar una intención explícita para actualizar el estado del sistema de archivos. (Acabo de probar después de estar en la misma situación de OP)

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

(Puede pasar una ruta de archivo específica en lugar de me file:///gusta file:///sdcard)

solucionador
fuente
0

En mi caso, tenía una SDCard ya eliminada todavía registrada en Android. Así que mantuve presionada la entrada de mi tarjeta SD anterior en:

Settings | Storage & USB

y seleccionado "Olvidar".

Luego un normal

adb push myfile.zip /sdcard/

funcionó bien.

Puñal
fuente
0

Esta podría ser la mejor respuesta que pueda leer. Configure Android Studio Luego, vaya a ver y abra el Explorador de dispositivos. Haga clic derecho en la carpeta y simplemente cargue un archivo.

Rushabh Gedam
fuente