Top Qs
Línea de tiempo
Chat
Contexto

Android Debug Bridge

De Wikipedia, la enciclopedia libre

Android Debug Bridge
Remove ads

El Android Debug Bridge (comúnmente abreviado como adb) es una herramienta de programación utilizada para la depuración de dispositivos basados en Android. El demonio en el dispositivo Android se conecta con el servidor en la PC host a través de USB o TCP, que se conecta al cliente utilizado por el usuario final a través de TCP. Disponible como software de código abierto bajo la Licencia Apache por Google desde 2007, sus características incluyen un intérprete de comandos y la posibilidad de realizar copias de seguridad. El software adb está disponible para Windows, Linux y macOS. Ha sido utilizado de forma indebida por botnets y otros malware, para los cuales se desarrollaron mitigaciones como la autenticación RSA y la lista blanca de dispositivos.

Datos rápidos Información general, Tipo de programa ...
Remove ads

Características

Thumb
Monitor de Dispositivos Android

Las características de adb incluyen la copia de archivos desde la computadora host,[1] instalación de aplicaciones, visualización de la salida de logcat, obtención de un shell,[2] y reinicio en Modo EDL de Qualcomm.[3] Por ejemplo, las aplicaciones de Android pueden guardarse con el comando copia de seguridad en un archivo.[4] También incluye soporte para el Protocolo de Depuración de Java.[5]

Se han desarrollado algunas interfaces gráficas. El Monitor de Dispositivos Android en Android Studio puede usarse para recuperar información de un dispositivo Android.[6]

El método de Android para instalar archivos APK en un dispositivo se ha utilizado para cargar aplicaciones no oficiales en Windows Subsystem for Android[7] y en la máquina virtual de Android de Chrome OS.[8]

Shizuku permite que un teléfono Android se conecte a su propio ADB cuando está conectado a una red inalámbrica. La aplicación está disponible gratuitamente en Google Play Store.[9]

Remove ads

Historia de desarrollo

El Kit de Desarrollo de Software de Android (SDK) fue lanzado por primera vez en 2007.[10] Desde 2017, Google permitió descargar adb por separado del SDK de Android.[11]

En 2015, Microsoft lanzó un emulador de Android que puede conectarse al cliente adb.[12] En 2016, para Android Studio 2.0, se mejoró el rendimiento en 5 veces para la instalación de aplicaciones y la transferencia de archivos a través de adb.[13] Para facilitar el uso de Android Things, en 2017 se creó un envoltorio alrededor de los comandos manuales de adb.[14] Para Android 11 en 2020, Google añadió instalaciones incrementales de adb.[15] En 2020, se integró adb por Wi-Fi en Android Studio para macOS.[16] En 2021, para Android 12, el comando adb backup fue limitado para que la copia de datos de usuario de aplicaciones sea opcional mediante una configuración de manifiesto por aplicación[17] tras ser obsoleto en Android 10 junto con adb restore.[18] Fuchsia será compatible con adb de forma retroactiva. Será reemplazado por fx y ffx.[19]

Remove ads

Configuración

Resumir
Contexto
Thumb
Para habilitar la depuración USB en el dispositivo Android, debe activarse en la ventana de «configuraciones de desarrollador»
Para habilitar la depuración USB en el dispositivo Android, debe activarse en la ventana de «configuraciones de desarrollador»  
Thumb
Tras conectar el dispositivo a la computadora host, el usuario debe verificar la huella digital de la clave RSA de la computadora host
Tras conectar el dispositivo a la computadora host, el usuario debe verificar la huella digital de la clave RSA de la computadora host  

Computadora host

Para Windows, el SDK de Android contiene el binario adb.exe que puede extraerse e instalarse.[20] How-To Geek recomienda añadir la carpeta que contiene los binarios a la variable de entorno PATH.[21]

En Ubuntu, adb puede instalarse con el paquete android-tools-adb.[22] Para Debian, se recomienda instalar también el paquete android-sdk-platform-tools-common junto con el paquete adb, que instala las reglas udev que permiten ejecutar la herramienta sin permisos de root.[23] Para macOS y otras distribuciones de Linux, las herramientas de plataforma pueden descargarse y la variable PATH puede modificarse en bashrc.[24]

Dispositivo Android

En Android 4.2.2 o posterior (API nivel 17), se muestra un diálogo con una huella digital RSA que el usuario debe aceptar. Esto protege contra computadoras que exploten el mecanismo de depuración sin el consentimiento del usuario del dispositivo.[25] A partir de Android 4.2, las configuraciones de desarrollador están ocultas por defecto. Presionar siete veces el número de compilación en el menú «Acerca de» las hace visibles al usuario. Después, la opción de depuración USB puede habilitarse.[26] Algunos proveedores de Android tienen procedimientos diferentes para habilitarlo. Por ejemplo, Huawei requiere ingresar un código PIN antes de que adb pueda habilitarse.

Si la pantalla táctil de un dispositivo Android está rota, es posible conectar un ratón al dispositivo usando USB On-The-Go y habilitar la depuración USB.[27][28]

Remove ads

Arquitectura

Resumir
Contexto

El protocolo adb puede transportarse a través de USB o Wi-Fi mediante TCP. Utiliza una arquitectura cliente-servidor. Hay dos protocolos diferentes en uso. El primero es entre el cliente y el servidor, y el segundo es entre el servidor y el demonio. El demonio adb está implementado en C y se encuentra en el espacio de usuario de Android. El demonio es facilitado por el marco USB de Android, UsbDeviceManager y UsbDebuggingManager.[5]

Protocolo cliente ↔ servidor

El modo de comunicación entre el cliente y el servidor es un socket TCP. El servidor escucha en un puerto, al que el cliente debe enviar una solicitud. La solicitud contiene un campo inicial de 4 bytes en ASCII y una carga útil. La carga útil comienza con la palabra «host», para indicar que debe enviarse al servidor. El servidor puede responder con OKAY o FAIL para indicar el estado, combinado con una carga útil opcional y su longitud.[5]

Protocolo servidor ↔ demonio

Los mensajes enviados desde el servidor consisten en un encabezado de 24 bytes, con los siguientes campos:[5]

  • Comando
  • Primer argumento
  • Segundo argumento
  • Longitud de la carga útil, 0 o superior
  • CRC-32 de la carga de datos
  • Valor mágico, calculado mediante comando XOR 0xFFFFFFFF
Remove ads

Seguridad

Hasta Android 2.2, Android era vulnerable al exploit «RageAgainstTheCage». El demonio adb no verificaba el valor de retorno de la llamada al sistema setuid al reducir privilegios. El exploit bifurca procesos hasta que falla debido al agotamiento de los identificadores de proceso. Cuando el demonio se cuelga y se reinicia, no puede iniciar un nuevo proceso con privilegios reducidos y sigue ejecutándose como root. Entonces, adb proporcionaba un shell de root.[29] En 2017, se reveló una vulnerabilidad de seguridad que explotaba ADB para tomar el control del módem integrado. El ataque requería que adb ya estuviera habilitado y autorizado, aunque se encontraron algunos métodos alternativos.[30]

Varias familias de malware como ADB.Miner, Ares, IPStorm, Fbot y Trinity han escaneado internet en busca de la disponibilidad pública de la interfaz adb e instalado malware en esos dispositivos.[31] adb también puede usarse para eliminar malware, al iniciar en modo seguro y ejecutar el comando adb uninstall.[32]

Remove ads

Referencias

Enlaces externos

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads