Conecta con nosotros

Prácticos

Conoce qué es Android Debug Bridge (ADB)

Publicado

el

Android Debug Bridge (ADB)

En esta ocasión vamos a realizar una introducción de ADB, que son las iniciales de Android Debug Bridge (Puente de Depuración de Android en inglés). Nuestra intención no es profundizar mucho, sino simplemente mostrar cómo ponerlo en funcionamiento en Windows y Linux y algunas cosas que se pueden hacer con él. Dicho con otras palabras, es más un material introductorio que un tutorial técnico avanzado, si bien es cierto que puede ser un tanto difícil si no se tienen ciertos conocimientos previos sobre cómo lidiar con una consola de comandos.

¿Qué es Android Debug Bridge (ADB)?

De manera resumida y para simplificar, ADB es una herramienta mediante línea de comandos que permite a una computadora Windows, Linux o Mac comunicarse con un dispositivo Android. Permite hacer una gran variedad de acciones sobre el dispositivo Android, entre las que están enviar ficheros desde el ordenador, copiar ficheros presentes en el dispositivo Android, depurar aplicaciones, instalar y desinstalar paquetes y proporciona acceso a una shell de Unix.

También permite reiniciar un dispositivo Android de forma estándar, en modo recovery (recuperación), bootloader (cargados de arranque) o relizando un proceso previo de sideloading (transferir ficheros entre dos dispositivos locales, cosa que se suele hacer cuando se quiere cambiar el Android del fabricante por un ROM personalizado), además de permitir llevar a cabo otras muchas acciones.

Como vemos, ADB es bastante versátil, aunque, al menos con las herramientas oficiales de Google, requiere de tener unos mínimos conocimientos sobre líneas de comandos para utilizarlo.

Cómo descargar y ejecutar el SDK de Android para Windows

Lo lógico es acceder a la web para desarrolladores de Android, pero en su página de inicio lo que se pone a disposición por defecto no es el SDK pelado, sino toda la pila para el desarrollo de aplicaciones a través del Entorno de Desarrollo Integrado (IDE) oficial: Android Studio.

Android Studio se basa en la tecnología de JetBrains y es un IDE muy capaz, pero se desvía del propósito de este tutorial introductorio al servir muchísimas más cosas de las necesarias. Como alternativa, descargaremos el SDK “pelado”, que se puede obtener a través de la siguiente ruta:

Descargar el SDK de Android para Windows

Después aparecerán los términos y condiciones de uso, que el usuario tendrá que aceptar si quiere iniciar la descarga del SDK de Android (parece que en estos momentos la web tiene un bug).

Aceptar y los términos y condiciones de uso del SDK de Android para proceder a su descarga

Una vez descargado el fichero en formato ZIP, hay que acceder al subdirectorio ‘platform-tools’ que tendría que haber aparecido (en caso de realizar el proceso de extracción con las herramientas del propio Windows, posiblemente haya que descender un subnivel más) después de descomprimirlo, pulsar la combinación de teclas ‘ctrl+L’ y copiar la ruta que aparece como texto seleccionado.

Copiar la ruta donde se ubica el SDK de Android en Windows

Tras copiar la ruta del Explorador de archivos de Windows 10, se procede a abrir una consola de PowerShell y escribir el siguiente, pero sin pulsar intro:

cd ""

Después de escribir el “esqueleto” del comando, se pega entre las comillas la ruta obtenida del explorador de archivos de Windows. Es importante tener en cuenta que “Guillermo Puertas” es el usuario empleado para este tutorial, por lo que este puede cambiar. El uso de las comillas es para evitar que los espacios corten el comando.

cd "C:\Users\TU USUARIO\Downloads\platform-tools"

Accediendo con PowerShell al directorio donde se ubica el SDK de Android en Windows 10 para usar ADB

Para comprobar si ADB está disponible, es suficiente con ejecutarlo con el argumento de ayuda y ver si esta se muestra o si bien aparece algún tipo de error.

.\adb --help

Accediendo a la ayuda de ADB

Modificando la PATH del usuario en Windows

Como obtener la ruta donde se ubica el SDK de Android una y otra vez termina por hacerse pesado, como alternativa se puede añadir su ubicación a la PATH del usuario. Para ello se tiene que abrir la configuración avanzada del sistema de Windows 10.

Configuración avanzada del sistema de Windows 10

En la ventana que aparece, cuyo título es “Propiedades del sistema”, se procede a pulsar sobre el botón “Variables del entorno” que se ubica en la parte inferior de “Opciones avanzadas”.

Variables del entorno de Windows 10

En “Variables de usuario para TU USUARIO” (Guillermo Puertas en nuestro caso) se tiene que seleccionar la variable ‘Path’ y pulsar sobre el botón “Editar”.

Añadir la ruta donde se ubica el SDK de Android a la PATH del usuario en Windows 10

Por último, el usuario debe pulsar sobre el botón “Nuevo”, pegar la ruta donde se ubica el SDK de Android en una nueva línea, pulsar sobre la tecla intro, pulsar sobre los botones de “Aceptar” de las ventanas “Editar variable de entorno” y “Variables de entorno” e ir cerrando todo para llevar a cabo un reinicio del sistema.

Introducir la ruta donde se ubica el SDK de Android en Windows 10 a la PATH del usuario

Tras seguir todos estos pasos, el usuario debería de poder usar ADB nada más abrir la consola de PowerShell, así que en lugar de tener que escribir esto:

\.adb

Puede directamente introducir lo siguiente:

adb

Cómo obtener ADB en Linux

La obtención de ADB en Linux, si se recurre a los repositorios de las distribuciones, es más sencilla que en Windows. Básicamente, lo único que hay que hacer es instalar el paquete que contenga las herramientas del SDK de Android. El hecho de estar usando la línea de comandos también simplifica el proceso.

Paquete a instalar en Ubuntu 20.04 LTS (y posiblemente versiones posteriores) y Debian 11 Bullseye:

sudo apt install android-sdk

En caso de que la instalación dé problemas, es probable que se solucione con el siguiente comando:

sudo apt --fix-broken install

Paquete a instalar en Fedora Workstation:

sudo dnf install android-tools

Paquete a instalar en Fedora Silverblue y Kinoite (en este caso es necesario reiniciar):

rpm-ostree install android-tools

Paquete a instalar en Manjaro (donde es posible que esté preinstalado) y Arch Linux:

sudo pacman -S android-tools

Tras instalar el paquete correspondiente, ADB ya debería de funcionar de manera integrada en la PATH del sistema, sin necesidad de más configuraciones. Para comprobarlo basta con mostrar la ayuda.

adb --help

Ayuda de ADB mostrada desde Linux

“Bonus track” para los usuarios de Linux

En caso de intentar reiniciar el móvil en modo ‘bootloader’ o ‘recovery’ con ADB desde Linux, el usuario puede encontrarse con que no tiene los permisos suficientes para llevar a cabo la acción. Eso se arregla añadiendo una regla de udev para el dispositivo Android en uso.

En primer lugar se conecta el dispositivo Android a través de USB y ejecutar el siguiente comando:

lsusb

En nuestro caso, el smartphone conectado ha sido reconocido como si fuera un dispositivo Nexus o Pixel de Google, a pesar de ser en realidad un POCO X3 PRO. De la línea correspondiente al smartphone se copia la primera parte del identificador, la que aparece a la izquierda de los dos puntos en la sexta columna.

'lsusb' para copiar el identificador (id) del dispositivo Android en Linux

Después se tiene que abrir o crear el siguiente fichero con un editor de texto plano y permisos de administrador. En nuestro caso mencionamos Gedit por ser gráfico y estar preinstalado en Ubuntu, pero el usuario puede emplear Nano, Vim o el que quiera:

sudo gedit /etc/udev/rules.d/51-android.rules

Introducir en el fichero la siguiente línea, pero cambiando el identificador por el del dispositivo Android que se encuentre conectado en el ordenador del usuario.

SUBSYSTEM=="usb", ATTR{idVendor}=="IDDISPOSITIVO", MODE="0666", GROUP="plugdev"

Anadiendo el identificador del dispositivo Android a la regla de udev en Linux

Tras introducir la regla, se procede a guardar los cambios, cerrar el fichero y reiniciar el sistema para que surta efecto y poder así reiniciar un dispositivo Android en modo ‘bootloader’ o ‘recovery’.

Activando el modo desarrollador y la depuración USB en un dispositivo Android

Para hacer uso de ADB hay que iniciar el modo desarrollador y activar la depuración USB de Android. Los pasos son esencialmente los mismos en todos los móviles y tablets que hacen uso del sistema operativo de Google, pero su orden puede variar debido a que su naturaleza Open Source permite introducir grandes modificaciones. En nuestro caso hemos usado un POCO X3 PRO, que sigue las líneas marcadas por Xiaomi.

El primer paso consiste en abrir los Ajustes del sistema y pulsar encima de “Sobre el teléfono”.

Activar el modo desarrollador en Android desde un terminal POCO-Xiaomi

El segundo paso consiste en pulsar siete veces (o las que hagan falta) sobre la versión del sistema operativo para activar el modo desarrollador, que en nuestro caso es la versión de MIUI para POCO.

Activar el modo desarrollador en Android desde un terminal POCO/Xiaomi

Con el modo desarrollador ya activado, toca habilitar la depuración USB. Para ello se tiene que volver a la pantalla principal de los Ajustes y dirigirse a Ajustes adicionales > Opciones de desarrollador > Depuración USB.

Tras accionar el interruptor para habilitar la depuración USB, aparecerá una pantalla de confirmación que el usuario deberá cumplimentar correctamente.

Habilitar depuración USB en Android

Al conectar el dispositivo Android a través de USB tendría que aparecer la huella digital para permitir la depuración USB. Obviamente, la respuesta a la pregunta debe ser afirmativa.

Permitir al ordenador la depuración USB del dispositivo Android

Tras seguir todos estos pasos ya se tendría que poder proceder a hacer uso de Android Debug Bridge.

Cómo hacer uso de ADB

Hacer un uso básico de ADB (recordamos que este es un tutorial introductorio) es fácil si se tienen unas nociones de cómo usar una línea de comandos. A partir de aquí vamos a suponer que el usuario de Windows ha añadido el SDK de Android a su PATH. En caso de no haberlo hecho, en el comienzo de los comandos, en lugar de poner ‘adb’ hay que poner ‘.\adb’, además de tener que acceder antes mediante la línea de comandos a la ubicación donde se encuentra el SDK de Android.

Para mostrar los dispositivos Android conectados, el comando a ejecutar es el siguiente:

adb devices

Listar dispositivos Android con ADB

Aunque hay formas más sencillas de hacer esto gracias a que el subárbol de directorios del usuario en Android puede ser montado como una unidad de almacenamiento, es posible enviar un fichero desde el ordenador con el argumento ‘push’. ‘pantalla1.png’ es el fichero ubicado en el ordenador que se quiere enviar al móvil POCO, mientras que ‘/storage/self/primary’ es la raíz del almacenamiento interno del usuario. Es importante tener en cuenta que, al menos en un principio, no se puede enviar un fichero a cualquier subdirectorio de Android debido a temas de permisos.

adb push pantalla1.png '/storage/self/primary'

Enviando un fichero desde el ordenador a dispositivo Android con ADB

El argumento ‘pull’ permite obtener un fichero almacenado en el dispositivo Android. En este caso hemos descargado un documento sobre la características IBS de AMD ubicado en la carpeta ‘Download’, que se encuentra justo debajo de la raíz del almacenamiento interno del usuario.

adb pull '/storage/self/primary/Download/AMD_IBS_paper_EN.pdf'

Obteniendo con ADB un fichero del dispositivo Android para tenerlo en el ordenador

Para reiniciar un dispositivo Android de manera estándar con ADB se ejecuta lo siguiente:

adb reboot

Para reiniciar en modo ‘recovery’ el comando es este:

adb reboot recovery

Y lo siguiente para reiniciar en modo ‘bootloader’:

adb reboot bootloader

Para acceder a la shell de Unix de ADB se tiene que introducir lo siguiente:

adb shell

Accediendo a la shell de Unix de ADB. Una vez dentro, se ha ejecutado el comando 'ls'.

Accediendo a la shell de Unix de ADB. Una vez dentro, se ha ejecutado el comando ‘ls’.

Si el usuario ve que ADB no funciona correctamente, una posible solución pasa por matar el servidor y volverlo a iniciar:

adb kill-server
adb start-server

Conclusión

Y hasta aquí lo más esencial de ADB. En el tintero nos hemos dejado a ‘fastboot’, otra herramienta muy interesante y cuyo uso es imprescindible si se quiere cambiar el Android preinstalado por el fabricante por un ROM de terceros como LineageOS.

Pese a todo, esperamos que este tutorial sirva para empezar a tener una idea de las posibilidades que ofrece Android (o más bien su ecosistema de herramientas) a través de la línea de comandos, porque ya se sabe, el conocimiento es poder, y cuanto más conocimientos tenga el usuario, más libre será a la hora de decidir sobre los dispositivos que usa. Y como el movimiento se demuestra andando puedes revisar nuestra guía: Cómo instalar una ROM Android personalizada y aprovechar sus ventajas.

Apasionado del software en general y de Linux en particular. El Open Source, la multiplataforma y la seguridad son mis especialidades.

Lo más leído