Autor(es) original(es) | |
---|---|
Versión estable | 34.0.1 (marzo de 2023) |
Repositorio | android.googlesource.com |
Escrito en | C++ |
Sistema operativo | Windows, Linux, macOS |
Incluido con | Kit de desarrollo de software para Android |
Tipo | Herramienta de desarrollo de software |
Licencia | Licencia Apache 2.0 |
Sitio web | desarrollador.android.com/studio/command-line/adb |
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 que utiliza el usuario final a través de TCP. Puesto a disposición como software de código abierto bajo la licencia Apache por Google desde 2007, sus características incluyen un shell y la posibilidad de hacer copias de seguridad. El software adb está disponible para Windows , Linux y macOS . Ha sido mal utilizado por botnets y otro malware , para el cual se desarrollaron mitigaciones como la autenticación RSA y la lista blanca de dispositivos .
Las características de adb incluyen copiar archivos desde la computadora host, [1] instalar aplicaciones, ver la salida de logcat, obtener un shell de Unix , [2] y reiniciar en modo Qualcomm EDL . [3] Por ejemplo, las aplicaciones de Android se pueden guardar mediante el comando backup
en un archivo. [4] También incluye soporte para el protocolo Java Debug Wire . [5]
Se han puesto a disposición algunas interfaces gráficas . El Monitor gráfico de dispositivos Android de Android Studio se puede utilizar para recuperar información de un dispositivo Android. [6]
El método de Android para instalar archivos APK en un dispositivo se ha utilizado como una forma de cargar aplicaciones no oficiales en el Subsistema de Windows para Android [7] y en la máquina virtual 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 de forma gratuita en Google Play Store. [9]
El kit de desarrollo de software (SDK) de Android se lanzó por primera vez en 2007. [10] Desde 2017, Google hizo posible 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 realizó una mejora de rendimiento de 5x para instalar aplicaciones y enviar archivos a través de adb. [13] Para un uso más sencillo de Android Things , en 2017 se creó un contenedor en torno a los comandos adb manuales. [14] Para Android 11 en 2020, Google agregó instalaciones incrementales de adb. [15] En 2020, Wi-Fi adb se integró en Android Studio para macOS. [16] En 2021, para Android 12 , el adb backup
comando se limitó para que la copia de seguridad de los datos del usuario de las aplicaciones sea opcional mediante una configuración de manifiesto por aplicación [17] después de quedar obsoleto en Android 10 junto con adb restore
. [18] Fuchsia será compatible con versiones anteriores de adb. Será reemplazado por fx y ffx. [19]
Para Windows, el SDK de Android contiene el binario adb.exe que se puede extraer e instalar. [20] How-To Geek recomienda agregar la carpeta que contiene los binarios a la variable de entorno PATH . [21]
En Ubuntu , adb se puede instalar con el android-tools-adb
paquete. [22] Para Debian , se ha recomendado instalar también el android-sdk-platform-tools-common
paquete junto al adb
paquete, que instala las reglas de udev que hacen posible ejecutar la herramienta sin permisos de root . [23] Para macOS y otras distribuciones de Linux, las herramientas de la plataforma se pueden descargar y la variable PATH se puede modificar en bashrc . [24]
En Android 4.2.2 o posterior ( nivel API 17 ), se muestra un cuadro de diálogo con una huella digital RSA que el usuario debe aceptar. Esto protege contra las computadoras que explotan 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 de forma predeterminada. Al presionar siete veces el número de compilación en el menú acerca de, se vuelven visibles para el usuario. Después de eso, se puede habilitar la opción de depuración USB. [26] Algunos proveedores de Android tienen diferentes procedimientos para habilitarla. Por ejemplo, Huawei requiere ingresar un código PIN antes de que se pueda habilitar adb.
Si la pantalla táctil de un dispositivo Android está rota, es posible conectar un mouse al dispositivo mediante USB On-The-Go y habilitar la depuración USB. [27] [28]
El protocolo adb se puede transportar a través de USB o de Wi-Fi a través de 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 se implementa 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]
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 tiene que 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 y una longitud opcionales. [5]
Los mensajes enviados desde el servidor constan de un encabezado de 24 bytes de longitud, con los siguientes campos: [5]
0xFFFFFFFF
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 eliminar privilegios . El exploit bifurca los procesos hasta que falla debido al agotamiento de los identificadores de proceso . Cuando el demonio se bloquea y se reinicia, no puede iniciar un nuevo proceso con privilegios eliminados y sigue ejecutándose como root. Luego, adb proporcionó un shell 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 había algunas soluciones alternativas disponibles. [30]
Varias familias de malware como ADB.Miner, Ares, IPStorm, Fbot y Trinity han escaneado Internet en busca de disponibilidad pública de la interfaz adb e instalaron malware en esos dispositivos. [31] adb también se puede utilizar para eliminar malware , iniciando en modo seguro y ejecutando el adb uninstall
comando. [32]
{{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ){{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ){{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ){{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace )