Si tenemos un teléfono con Android y somos algo curioso es probable que deseemos en algún momento usar el ADB para jugar.
Para poder usarlo debemos tener instalado el SDK de Android con Platform tools y luego activar el modo debug en el teléfono. Para activar el modo debug debemos ir a Ajustes -> Aplicaciones -> Desarrollo y marcamos Depuración USB.
Conectando el teléfono vía USB podremos ejecutar como root en una termnal:
/path_hasta_sdk/platform-tools/adb devices
List of devices attached
HT069P900168 device
Si ejecutamos el mismo comando como usuario normal deberíamos obtener:
/path_hasta_sdk/platform-tools/adb devices
List of devices attached
???????????? no permissions
Los pasos siguientes son para lograr que el ADB pueda usarse con cualquier usuario del sistema.
- Primero debemos identificar el teléfono, para ello ejecutamos un lsusb (acá destaco con rojo el idVendor):
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 009: ID 18d1:4e12 Google Inc. Nexus One Phone (Debug)
Bus 001 Device 003: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
- Creamos el archivo /etc/udev/rules.d/51-android.rules con el siguiente contenido (Debemos usar el idVendor, en rojo, que nos arroje el paso anterior y en OWNER el nombre del usuario que usará adb).
~~SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", MODE="0666"~~
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", SYMLINK+="android_adb", OWNER="username"
- Cambiamos permisos:
chmod a+r /etc/udev/rules.d/51-android.rules
- Recargamos las reglas de UDEV:
udevadm control --reload-rules
- Reconectamos el teléfono y volvemos a probar
Ahora que ya tenemos acceso completo al ADB podemos comenzar a jugar con algunos comandos básicos:
- Instalar un programa (archivo .apk)
./adb install Archivo.apk
822 KB/s (40063 bytes in 0.047s)
pkg: /data/local/tmp/Archivo.apk
- Acceder a la consola y ejecutar comandos directos
./adb shell
- Reiniciar el dispositivo
./adb reboot
- Reiniciar el dispositivo en el bootloader
./adb reboot-bootloader
- Colocar un archivo/carpeta en el dispositivo
./adb push origen destino
- Extraer un archivo/carpeta desde el dispositivo
./adb pull origen destino