Datos personales

sábado, 25 de septiembre de 2010

Android: Depurando sobre HTC Magic en Debian Lenny

Siguiendo las instrucciones que se indican en el sitio para desarrolladores de Android me resultó imposible poder depurar programas sobre un dispositivo físico (en mi caso, un HTC Magic de Vodafone con Android 1.6).

Aunque las instrucciones son para Ubuntu, en teoría deberían poder aplicarse en Debian Lenny sin mayor problema, pero finalmente el comando adb devices siempre acaba mostrando lo mismo:


* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions


Evidentemente, se trataba de un problema con los permisos, porque, ejecutando el demonio con permisos de root, se obtiene lo siguiente:


# /opt/android-sdk/tools/adb root
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
adbd cannot run as root in production builds

$ /opt/android-sdk/tools/adb devices
List of devices attached
HT962KF05736 device


Solución


Matamos el demonio adb:

/opt/android-sdk/tools/adb kill-server

Creamos la regla /etc/udev/rules.d/51-android.rules con este contenido:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4",
ATTRS{idProduct}=="0c02", GROUP="adm", SYMLINK+="android%n"


El demonio udev debe recargar automáticamente el contenido de la regla.

Volvemos a probar, deberíamos obtener esto siempre que nuestro usuario pertenezca al grupo adm:

$ /opt/android-sdk/tools/adb devices
List of devices attached
HT962KF05736 device


Más información en:

3 comentarios:

  1. Pero si uso windows? En donde creo ese archivo 51-andoid.rules???

    ResponderEliminar
    Respuestas
    1. Ok ya vi que haces referencia a la carpeta /etc dentro del dispositivo, pero no dices como se crea la regla porque si solo escribo /etc/udev/rules.d/51-android.rules
      me dice : /etc/udev/rules.d/51-android.rules: not found

      Eliminar
    2. El fichero "51-andoid.rules" se crea en el disco de tu ordenador, no en el dispositivo.

      Por otro lado, Windows no gestiona los dispositivos mediante udev, por lo que no sirve de nada hacer algo similar en ese sistema operativo.

      Para depurar con dispositivos Hardware sobre Windows, te recomiendo que leas lo que se dice en:

      http://developer.android.com/guide/developing/device.html

      No te puedo dar más detalles porque no uso Windows para este tipo de cosas.

      Eliminar