Destacados

Más
Domingo, 17 de octubre, 2010

10 operaciones útiles para Android (vía ADB)

26 +100K

10 operaciones útiles para Android vía ADB como copiar archivos, instalar o desinstalar aplicaciones o conectar vía WiFi.

Publicidad

Con el SDK de Android, Java, y los drivers correspondientes instalados en nuestro sistema (Windows, Linux o Mac) tendremos un conjunto de herramientas interesantes para utilizar con nuestro términal.

Si no tienes o no estás seguro de tener correctamente instalados estos tres puntos, antes de continuar, lee las instrucciones en el artículo Preparar el SDK para hacer capturas de pantalla y logs.

Para algunas de estas operaciones será necesario tener acceso root.

Entre las múltiples utilidades que ofrece el SDK, existe una particularmente útil: ADB (Android Debug Bridge), que es algo así como un intermediario entre nuestro sistema operativo y nuestro terminal Android.

Con él se pueden realizar varias tareas, como veremos a continuación, de una forma sencilla y rápida, con sólo conectarlo al USB.

NOTA: La utilidad ADB.EXE está ubicada en la carpeta tools del SDK, por lo que necesitarás estar en esa carpeta. Una buena idea es añadir esta carpeta al PATH del sistema, para no tener que encontrarte ahí necesariamente.

1. Comprobar dispositivos conectados

Un buen punto para empezar, sería el de comprobar si realmente nuestro sistema ha detectado el terminal al conectarlo al USB. Escribimos:

adb devices

Esto debería mostrarnos una lista de los terminales Android conectados al sistema (físicos, emuladores, etc...):

List of devices attached
HT999KF99999 device

En este caso, el dispositivo HT999KF99999 ha sido detectado. Al lado nos muestra el estado del dispositivo (device = conectado, offline = desconectado, etc...).

¿Y en el caso de que tuvieramos varios dispositivos? ¿Todas las acciones que realicemos se harían en todos los dispositivos? Fácil, solo hay que especificar el parámetro -s y el número de serie del dispositivo, seguido por el comando u operación a realizar:

adb -s HT999KF99999 [...]

NOTA: Si no queremos estar escribiendo siempre esos parámetros porque vamos a usar siempre ese dispositivo, podemos establecer una variable de entorno ANDROID_SERIAL con el número de serie.

2. Conectar Android al PC vía WIFI (sin USB)

Otra cuestión bastante útil es la de realizar tareas con el móvil (O incluso enviar ficheros) a través de WIFI, sin necesidad de tener el terminal conectado al USB.

Para ello, lo conectamos al USB para configurarlo:

adb shell setprop service.adb.tcp.port 4444
adb tcpip 4444

Establecemos un puerto TCP para realizar la conexión. En este ejemplo hemos utilizado el puerto 4444/TCP. Acto seguido, obligamos al terminal a reiniciarse en modo conexión vía TCP/IP. Nos mostrará un mensaje similar a este:

restarting in TCP mode port: 4444

Obviamente, debemos estar conectados a una red WiFi, ya que vía GPRS/3G no es posible conectarnos (y no sería recomendable). Si no sabemos la IP privada que tenemos en nuestro terminal, escribimos lo siguiente:

adb shell getprop | findstr ipaddress

Lo que nos devolverá algo similar a lo siguiente, que es la IP del terminal adquirido vía DHCP.

[dhcp.tiwlan0.ipaddress]: [192.168.0.3]

Ahora ya podemos desconectar el terminal del USB. Con esa IP y el puerto TCP, podemos realizar una conexión:

adb connect 192.168.0.3:4444

Lo que debería devolver el siguiente mensaje:

connected to 192.168.0.3:4444

Cuando queramos volver a utilizar el modo normal, escribimos:

adb usb

Y ya podemos conectarlo al USB.

Si todo esto te parece demasiado complicado, recientemente han publicado una aplicación llamada adbWireless, de la que hablan en El Androide Libre.

3. Copiar archivos al terminal

Copiar archivos al terminal es muy sencillo. La sintaxis es la siguiente:

adb push c:\texto.txt /sdcard/texto.txt

El segundo parámetro (c:\texto.txt) indica el fichero que queremos copiar (origen). Como es lógico, podemos obviar la ruta si tenemos el archivo en nuestra carpeta actual.

El tercer parametro es la ruta donde se va a copiar el archivo (destino). Como también es lógico, podemos obviar el nombre del fichero si queremos que conserve el mismo nombre.

En este caso lo estamos copiando a la carpeta sdcard que normalmente es donde se almacenan los datos de la tarjeta SD. También remarcar que esta forma de copiar no necesita montar la tarjeta en Windows, ya que funciona vía directa por ADB.

4. Copiar archivos desde el terminal

De forma análoga al anterior, también existe una forma de copiar ficheros desde el móvil a nuestro PC:

adb pull /data/app/com.emezeta.budaphone.apk c:\

Como segundo parametro tenemos la ruta del fichero de aplicación BudaPhone. Esta ruta puede cambiar dependiendo del terminal y/o la ROM que tengamos.

Como tercer parámetro, tendríamos la ruta donde queremos que se guarde. Se puede utilizar un . (punto) para indicar que se guarde en la ruta actual.

Si quieres tener más destreza en el manejo de comandos similares, te aconsejo que le eches un vistazo al artículo 10 comandos para trabajar en Linux.

5. Examinar info de depuración (aka logcat)

Un recurso valiosísimo para los programadores (y para todo aquel que quiera depurar o descubrir motivos de errores) es el de poder acceder al logcat de Android.

El logcat es un fichero de registro donde se guarda todo lo que ocurre en nuestro móvil: errores, problemas, advertencias e incluso avisos. Podemos ver los últimos mensajes con un sencillo:

adb logcat

Sin embargo, la potencia de este comando está en sus filtros y parámetros:

adb logcat dalvikvm:D *:S

Muestra los mensajes de depuración de la máquina virtual Dalvik, silenciando el resto.

Hay varios niveles más, detallados al final del artículo capturas de pantalla y log de registro en Android. Incluso, utilizando el parámetro -v es posible formatear con cierta información relevante:

adb logcat -v process

Que muestra la información con un mensaje previo con información acerca del PID del proceso que lo efectuó. O, entre otros, información sobre el momento exacto (timestamp) de cuando ha ocurrido:

adb logcat -v time

6. Instalar aplicaciones

Una opción muy interesante para aquellos que trasteamos mucho con aplicaciones (y sobretodo para desarrolladores) es la de instalar ficheros apk (aplicaciones) directamente desde la terminal de nuestro PC.

Esto nos da varias ventajas. En primer lugar podemos tener almacenada una amplia biblioteca de aplicaciones e instalarlas a un sólo golpe de teclado, sin necesidad de ir paso a paso por el Market (sobre todo si se trata de varias aplicaciones).

Si quieres una aplicación para hacer copia de seguridad de tus aplicaciones, te recomiendo echar un vistazo a Android Commander

En segundo lugar, tenemos la posibilidad de instalar aplicaciones que no estén presentes en el Market, o sin necesidad de subirlas para utilizarlas.

adb install aplicacion.apk

Con este sencillo comando bastará. Adb hará el resto. También es posible utilizar los siguientes parámetros:

adb install -r facebook.apk

Reinstala la aplicación de Facebook, sin eliminar los datos de la misma.

adb install -s angrybirds.apk

Instala la aplicación en la tarjeta SD en lugar de guardarla en el teléfono, útil para terminales antiguos con poco espacio o para usuarios con demasiadas aplicaciones y quieren utilizar la tarjeta SD para ese fin.

7. Desinstalar aplicaciones

Si es posible instalar aplicaciones, también lo será desinstalar. Sólo que en este caso, no se especifica el fichero apk, sino el nombre del producto:

adb uninstall com.emezeta.mzspray

Muy útil para desinstalar rápidamente y de un plumazo, si hemos estado probando varias aplicaciones divertidas para probarlas.

También es posible, desinstalar la aplicación sin eliminar los datos de la misma, con el parámetro -k.

8. Reiniciar el dispositivo

Si necesitamos reiniciar nuestro terminal, es muy sencillo hacerlo desde ADB:

adb reboot

Además, podemos seleccionar dos tipos de reinicios adicionales:

adb reboot bootloader

Bootloader es el cargador principal de Android, desde donde se pueden realizar varias operaciones con respecto al funcionamiento del terminal (cambio de firmware, etc...).

adb reboot recovery

Recovery es una especie de panel de recuperación, desde el cuál se pueden realizar tareas varias de recuperación, como puede ser particionamiento, wipes, flasheo, etc...

NOTA: No reiniciar en estos modos si no se sabe lo que se está haciendo. Se pueden realizar cambios que dejen al sistema operativo en un estado no funcional.

9. Remontar la partición del sistema

Otra de las tareas útiles, para aquellos que quieren adentrarse en el mundo del funcionamiento de Android es el de volver a montar la partición de sistema de Android con permisos de lectura y escritura, ya que en principio, sólo tiene permisos de lectura.

adb remount

Esto permitirá realizar cambios de escritura en la partición /system.

10. Ejecutar comandos en el entorno Android

Puesto que Android funciona con una base de kernel de Linux, es posible lanzar comandos en la terminal propia de android. Para ello podemos abrir una consola con el siguiente comando:

adb shell

O lanzar comandos directamente:

adb shell [comando]

Esto abre un amplio abanico de posibilidades (sobre todo para usuarios root) a los que propongo empezar con unos sencillos, para ir conociendo el sistema:

adb shell df -h

Que nos mostrará las particiones montadas y el espacio libre, entre otros datos. O por otra parte:

adb shell ls -lh /

Que nos mostrará los ficheros y carpetas de la carpeta raiz del teléfono.

Comparte este artículo
Sobre el autor de Emezeta

Escrito por , más conocido como Manz. Es Ingeniero-Técnico en Informática de Gestión por la Universidad de La Laguna y residente en Santa Cruz de Tenerife.

26 comentarios de lectores
ikki ikki Lunes, 18 de octubre de 2010, 02:00
1
buen articulo
Responder Permalink URL · Mozilla Firefox 3.6.10 · Windows XP ·
jafl jafl Lunes, 18 de octubre de 2010, 12:01
2
Muy bueno el artículo además de útil
Responder Permalink URL · Mozilla Firefox 3.0 · Windows XP ·
bases empresas bases empresas Martes, 19 de octubre de 2010, 17:49
3
hola , queria felicitarte por tu pagina , es excelente. Te mando un abrazo
Responder Permalink URL · Mozilla Firefox 3.6.7 · Windows XP ·
Tarot gratis Tarot gratis Lunes, 1 de noviembre de 2010, 20:38
4
Excelente recompilacion de las mejores 10 aplicaciones para android, hace poco me compre un Motorola Quench y estaba buscando alguna web para saber cuales eran las 10 mejores aplicaciones para dicho sistema operativo
Responder Permalink URL · Mozilla Firefox 3.6.12 · Windows XP ·
Irrelevante
Norberto Norberto Martes, 2 de noviembre de 2010, 10:31
5
Entiendo.
Responder Permalink Apple · Linux ·
Gustavo ROmero Gustavo ROmero Martes, 5 de julio de 2011, 23:44
6
Enhorabuena!! Acabo de instalar el Android SDK en Linux y he estado cacharreando con el movil y probando los comandos que has publicado en tu artículo. Veo que eres del gremio, yo también soy Ingeniero Informático en la Universidad de Alcalá, ya solo a falta del proyecto. Felicidades por el artículo y un saludo!
Responder Permalink Mozilla Firefox 5.0 · Linux ·
Richy Richy Miércoles, 31 de agosto de 2011, 07:35
7
Decidme ingenieros, ¿Podríais ayudar a un novato con espectativas autodidactas recientes en android y linux? Vereis que en cuanto a lo de conexión wifi con el sdk, algo falla, esque una vez que hago adb tcpip YYYY, (donde Y es el puerto), pues que me abandona la conexion al sdk mediante usb y ya no tengo puente con el movil, por lo cual no me aparece en adb devices y a la hora de poner adb connect XXX.X.X.XXX:YYYY (es decir la ip "X" con el puerto "Y") no me da conexión y encima me dice unable to connect to xxx.xxx.x.xxx:yyy:yyy (¿¡Por qué me repite el puerto!?). No creo que sea por eso pero hice path al platform-tools y estoy preparando un .bat para automatizarlo todo con un comando. Se agradece muchísimo de antemano la ayuda ^.^
Responder Permalink Chrome 13.0.782.215 · Windows XP ·
Manz Manz Jueves, 1 de septiembre de 2011, 01:10
8
@Richy: El que te abandone la conexión al SDK mediante USB es normal. La idea es que al realizar los dos comandos anteriores (setprop y tcpip) prepares la conexión WIFI para conectar luego vía adb connect. No se me ocurre que puede haber ocurrido para que te aparezca eso, pero si quieres, realiza el proceso y pega la salida en un sitio tipo PasteBin a ver si te podemos echar una mano.
Responder Permalink URL · Chrome 13.0.782.215 · Windows 7 ·
maximiliano maximiliano Domingo, 25 de septiembre de 2011, 01:00
9
Hola, nose si estaré en el lugar correcto. Recién comienzo con la interfaz android y todo su potencial. Les quería preguntar como puedo hacer una aplicación que me pudiere conectar el movil al pc para manipular las funciones del teclado (del cp). Por ejemplo para escribir en un block de notas desde el movil. Se puede usar el ADB? Uso el eclipse para desarrollar aplicaciones para android con el sdk. Obviamente no pido el código completo, pero si recomendaciones o funciones básicas que debería tener en cuenta. Desde ya muchas gracias.
Responder Permalink Internet Explorer 9.0 · Windows 7 ·
Richy Richy Domingo, 25 de septiembre de 2011, 15:51
10
@Manz: Uff ya lo siento darte la tabarra, con el setprop se supone que pone el puerto en escucha o algo así no? , por que luego haciendo netstat salía ese puerto pero con una ip de ceros, pero luego de darle el comando "adb tcip YYYY", es lógico que diga que naranjas de la china por que ya no está conectado al movil pa darle comandos, con lo cual tengo que terminar la conexión dando comandos de linux con la consola del movil, no se podría hacer una cadena de códigos que la meta toda a la vez y en un orden, para así cuando llegue al punto de que no hay conexión siga metiendole los códigos de la cadena y lo termine todo, eso me evitaría problemillas, como el de que desde la consola de android no puedo usar los comandos de adb, pero yo eso no se muy bien como hacerlo, también había pensado en meterle al movil que se que esta basado en linux las instrucciones para que sepa hacer los comandos de adb y estube mirando algunas cosillas de eso pero no se si surtiría efecto, que opinas?, hay algunas aplicaciones que en market que ya te dan conexion por wifi, pero me hacía ilusión investigar y poder hacerlo a mi manera y entender mejor como funciona y tal. En cuanto a lo de Paste Bin no se muy bien lo que es pero me hago una idea que será algo así donde yo pego el texto de la consola como si lo pegase en un foro, y alguien que lo lea me dirá que fallos cree que hay, eso de paste expiration que es el tiempo que tardará en borrarse del "foro". Perdón por mi vocabulario informático si ves que tengo algún error en el no dudes en corregirme así aprendo más, ^.^ MUCHISIMAS GRACIAS. Tambien quería dar mis felicitaciones tienes un blog muy interesante bien estructurado, divertido, y da mucha ayuda,
Responder Permalink Mozilla Firefox 4.0 · Linux ·
Juccis Juccis Miércoles, 9 de noviembre de 2011, 16:02
11
Saludos primero felicitaciones por la pagina, he estado intetando ejecutar algunos comandos en adb por ejemplo (ls data/data) pero me sale que tengo el acceso denegado, supongo que debo entrar como root, mi pregunta es como ingreso como root??? desde el adb a mi telefono
Responder Permalink Mozilla Firefox 7.0.1 · Windows XP ·
biLLio biLLio Martes, 31 de julio de 2012, 04:08
12
Muy buen articulo, pero queria saber si hay alguna forma de crear la carpeta /system ya que x lo visto la elimine cuando trate de instalar un rom o alguna otra manera de copiar la carpeta system que tengo en mi pc al android, gracias seria muy util alguna respuesta
Responder Permalink Chrome 20.0.1132.57 · Windows 7 ·
DestinObscuro DestinObscuro Viernes, 14 de diciembre de 2012, 23:15
13
Muy buen post, ahora de alguna forma u otra, se le puede sacar mucho partido.
Responder Permalink Opera 9.80 · Linux ·
kamellonxb kamellonxb Viernes, 22 de febrero de 2013, 19:19
14
buen post, solo tengo un problema, quiero ejecutar el comando remount y me dice que noo esta permitido, que puedo hacer para solucionar esto, gracias.
Responder Permalink Chrome 24.0.1312.57 · Windows 7 ·
Poli Poli Martes, 12 de marzo de 2013, 21:20
15
Hola te hago una consulta, yo cada vez que enciendo la tablet, vuelve a estado de fabrica sola.. tarda mucho en encender... no me deja entrar en modo recovery... y descubri que si borro por ejemplo las fotos que tengo en la memoria interna de la tablet... estas se borran... pero reinicio la tablet... la cual vuelve a fabrica y las fotos borrada aparecen por arte de magia... sabes que puedo hacer para solucionarlo?? Gracias!
Responder Permalink Chrome 25.0.1364.152 · Windows XP ·
gabriela melo gabriela melo Miércoles, 3 de abril de 2013, 16:16
16
hola mi tableta es una avva se bloqueo por los patrones y solo me aparece el robot con la panza abieta y tirado que hago
Responder Permalink Chrome 26.0.1410.43 · Windows 7 ·
Jesus Jesus Sábado, 6 de abril de 2013, 21:46
17
Sólo dar las gracias de corazón. Ayer se me rompió la pantalla de mi Galaxy SII y gracias a este artículo he podido recuperar mis fotos, agenda....Gracias de nuevo!
Responder Permalink Chrome 26.0.1410.43 · Windows 7 ·
Alvarex Alvarex Jueves, 25 de abril de 2013, 15:08
18
Buen post una pregunta tengo una tab 2 10.1 wifi y quiero conectar un modem cuando la bateria esta 100% me reconoce el modem con ppp widget pero cuando empieza a descargarse reconoce el modem como high power device y no puedo navegar, me pregunto debe haber alguna opcion en la que cuando la bateria d ela tab esta 100% da mayor energia al puerto usb y cuando esta descargando le quita enegria y ya lo reconoce como high power device tienes alguna solución o comentario al respecto?
Responder Permalink Internet Explorer 9.0 · Windows 7 ·
Jose Antonio Jose Antonio Sábado, 6 de julio de 2013, 21:43
19
Muy Bien! solo que hay que observar que en terminales el uso de espacio en el nombre de los archivos a manipular no es posible
Responder Permalink Chrome 25.0.1364.97 · Windows 7 ·
Minor Minor Martes, 6 de agosto de 2013, 16:07
20
Hola quiero saber como puedo abrir el puerto 5037 es que quiero forzar al Android a instalar las aplicaciones en la SD pero cuando llego al paso del puerto en Netstat no me aparece el puerto 5037 que se ocupa para hacer lo de la SD
Responder Permalink Chrome 28.0.1500.95 · Windows 7 ·
Maxi Maxi Domingo, 8 de septiembre de 2013, 22:42
21
Hola te pido por favor tu ayuda!! ayer deje caer mi smartphone Motorola Razr HD y se me rompio la pantalla, tanto asi que se quebro y muestra apenas unos destellos de luz, el mayor problema es que la tenia con el floqueo de figura *esa que unis los puntos en la pantalla para desbloquear*. Mi problema es que quiero recuperar los datos de la memoria interna y al estar bloqueada, aunque la conecte a mi PC no puedo acceder a ella. Sabiendo que tengo el numero de pin de mi sim puedo desbloquear la info mediante mi pc? Desde ya muchas gracias!!!
Responder Permalink Chrome 29.0.1547.62 · Windows 7 ·
jE jE Domingo, 29 de diciembre de 2013, 04:54
22
hola que tal, me gustaría saber si hay alguna forma mediante la cual se pueda arreglar el wi-fi de mi lg-p500h ya que al intentar encenderlo no logra encenderlo y solamente dice "Error" he flasheado con la rom de fábrica y el problema persiste, incluso le he metido una rom de cyanogenmod y el problema persiste, el celular se me cayó y cuando lo levanté lo único que noté es que la conexión wi-fi ya no podía activarla y por obvias razones no puedo ni siquiera llegar a examinar las redes ni a nada de nada, simplemente no me deja activar el wi-fi.
Responder Permalink Chrome 31.0.1650.63 · Windows XP ·
jE jE Domingo, 29 de diciembre de 2013, 05:00
23
buscando y buscando la forma de repararlo he llegado a ésta página y me resultó muy interesante el post preguntándome a la vez si a través de comandos se podría obtener el estado del wifi y saber si el daño es físico o sólo de software ya que al introducir el código *#*#4636#*#* en la información del wifi, obtengo wifi sate: unknown, network state: vacío, supplicant state: uninitialized, rssi: -9999, etc. etc.
Responder Permalink Chrome 31.0.1650.63 · Windows XP ·
hector hector Viernes, 8 de agosto de 2014, 08:50
24
La memoria interna de mi celular (o creo que solo la carpeta de "datos") se quedo en solo lectura y no puedo hacer absolutamente nada, ni siquiera restaurar el sistema desde el recovery ni desde el celular, no puedo instalar o desinstalar app, no me dejan de salir mensajes de que se detuvo tal proceso o tal aplicacion. Como puedo volver a dejar la memoria interna (o carpeta de datos) de mi celular con permisos de escritura y lectura. ya que asi no puedo usarlo para NADA, ni hacer llamadas ni mensajes ni NADA. espero alguien me pueda ayudar.
Responder Permalink Chrome 36.0.1985.125 · Windows 8 ·
EDSON HERNANDEZ EDSON HERNANDEZ Lunes, 3 de noviembre de 2014, 21:17
25
La verdad esta muy bien explicado todo pero podrá ayudarme con este problema por que ya intente de todo y no puedo "el proceso android.process.acore se ha detenido.
Responder Permalink Chrome 37.0.2062.120 · Windows 7 ·
Ale Paciotti Ale Paciotti Lunes, 17 de noviembre de 2014, 02:00
26
Felicitaciones por el post, por el sitio, realmente me ha sido de muchísima utilidad. Soy bastante nuevo en el desarrollo de aplicaciones android, y lo que mas me ha costado es armar el entorno de desarrollo en Linux 64 bits. Con esto de poder ejecutar la aplicación via wi-fi, ya está.. es super genial.. Muchisimas gracias!
Responder Permalink URL · Chrome 38.0.2125.122 · Linux ·
Publica tu opinión



Acepto las condiciones y políticas de privacidad de este sitio web.
Suscribirme a través de FeedBurner a los nuevos artículos del blog por email.

Previsualización

Aquí se previsualizará su comentario. Revise que sea correcto antes de publicarlo.