gentoo linux, java, software libre y otras hierbas
mar, 23 2010 - 2:27 am

Manipulación de smartphones con Android desde la consola de Linux

En esta entrada aprenderemos a manipular dispositivos móviles que tengan Android instalado a través de la consola en Linux. Esto es útil al momento de instalar aplicaciones, navegar entre los directorios del equipo, depurar las base de datos, etc. Además, no hay ningún fabricante de móviles (al menos que yo conozca) que proporcione herramientas para controlar los dispositivos desde Linux. En mi caso, tengo un HTC Tattoo el cual solo puede ser manipulado desde Windows usando HTC Sync :cry:

Con el HTC Tattoo y la mayoría de los smartphones con Android es posible usar la opción de almacenamiento en Linux sin ningún tipo de configuración especial. Simplemente se conecta el equipo, se ejecuta la aplicación Connect to PC y se selecciona Disk Drive con lo cual podremos acceder a la memoria SD. Pero, para realizar operaciones avanzadas necesitaremos seguir estos pasos:

1. Instalar el SDK de Android

La instalación y configuración de Android se explica en la anterior entrada: Introducción a la programación con Android.

2. Configurar el path del SDK

Para trabajar cómodamente con los comandos que nos proporciona el SDK, ejecutaremos el siguiente comando (reemplazando la ruta del SDK por la tuya):

echo "export PATH=$PATH:/ruta/del/sdk/tools"
source ~/.bashrc

3. Instalar la máquina virtual de Java

Recomiendo usar los instaladores de la página de Sun. También puedes hacerlo desde los repositorios de tu distro.

4. Crear una regla en udev

Debemos ahora crear una regla en udev para que al momento de conectar el dispositivo lo podamos usar con el SDK de Android. Así que creamos y editamos como root el archivo /etc/udev/rules.d/99-android.rules y dentro ponemos:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", SYMLINK+="android_adb", MODE="0666"

Note que estoy usando el idVendor 0bb4 que es el correspondiente al HTC Tattoo. Para conocer el de su smartphone, debe conectarlo y usar el comando lsusb.

5. Conectarse al dispositivo

Conectamos el smartphone (sí, tenía que estar desconectado :D ), y seleccionamos la opción HTC Sync… por supuesto, vamos a obtener un error que dice que no encontró el HTC Sync en el PC… lo bueno es que con esto se activa el modo depuración del USB, el cual nos permitirá conectarnos desde la terminal de Linux. Primero debemos mirar si se reconoce el dispositivo ejecutando este comando:

adb devices

Si todo sale bien, veremos algo como esto:

* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT9A3LG11652    device

HT9A3LG11652 es el nombre de mi dispositivo; este nombre nos permitirá referenciarlo al momento de ejecutar comandos sobre el desde CLI de Linux. Veamos qué podemos hacer ahora que tenemos el smartphone conectado…

adb -s HT9A3LG11652 shell #ejecutar una shell
adb -s HT9A3LG11652 push archivo_local archivo_destino #copiar un archivo al smartphone
adb -s HT9A3LG11652 pull archivo_remoto archivo_local #copiar un archivo desde el smartphone
adb -s HT9A3LG11652 shell rm -r /system/sd/archivo #borrar archivos del smartphone
adb -s HT9A3LG11652 install nombre_aplicacion.apk #instalar aplicaciones
adb -s HT9A3LG11652 uninstall nombre.paquete #desinstalar aplicaciones

Eso es todo por ahora… cualquier duda, comentario o sugerencia es bienvenido. ¡Hasta la próxima!

10 Comentarios | deja el tuyo

ago, 30 2009 - 5:30 pm

Lista de códigos de colores para bash

Siempre olvido cómo generar salida coloreada en la consola, y por lo tanto pierdo tiempo buscando en Internet. Así que, aprovechando que tengo fresco dicho tema, mejor dejo un listado y las instrucciones con el ánimo de que sea útil para alguien (y para mi, por supuesto).

  • Negro 0;30
  • Gris oscuro 1;30
  • Azul 0;34
  • Azul resaltado 1;34
  • Verde 0;32
  • Verde resaltado 1;32
  • Cian 0;36
  • Cyan resaltado 1;36
  • Rojo 0;31
  • Rojo resaltado 1;31
  • Púrpura 0;35
  • Púrpura resaltado 1;35
  • Café 0;33
  • Amarillo 1;33
  • Gris 0;37
  • Blanco 1;37


Ejemplos…

Si lo vas a probar usando el comando echo, debes ejecutarlo con el parámetro -e:

echo -e 'Esto es \e[0;31mrojo\e[0m y esto es \e[1;34mazul resaltado\e[0m'

Resultadobash-colors

echo -e 'Así se escribe \e[1;34mG\e[0m\e[1;31mo\e[0m\e[1;33mo\e[0m\e[1;34mg\e[0m\e[1;32ml\e[0m\e[1;31me\e[0m'

Resultado: google

Como puedes observar, se trata de poner lo que quieras colorear entre los caracteres de escape \e[CODIGOm y \e[0m.

5 Comentarios | deja el tuyo

oct, 12 2008 - 4:44 am

Comandos útiles para Linux

¿Qué versión del kernel tengo?

$ uname -r
2.6.17.13-smp

¿Qué versión de X tengo instalada?

$ X -version 2>&1 | sed ‘/^$/d’ | head -n1
X Window System Version 6.9.0

¿Tengo aceleración por hardware en mi placa de video?

$ glxinfo | grep “direct rendering”
direct rendering: Yes 

¿Qué procesador(es) tiene mi compu?

$cat /proc/cpuinfo | grep “model name”
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz

Leer el resto de la entrada…

6 Comentarios | deja el tuyo

« Entradas anteriores