Puente de depuración de Android

Herramienta para depurar dispositivos basados ​​en Android

Puente de depuración de Android
Autor(es) original(es)Google
Versión estable
34.0.1 (marzo de 2023)
Repositorioandroid.googlesource.com
Escrito enC++
Sistema operativoWindows, Linux, macOS
Incluido conKit de desarrollo de software para Android
TipoHerramienta de desarrollo de software
LicenciaLicencia Apache 2.0
Sitio webdesarrollador.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 .

Características

Monitor de dispositivos Android

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 backupen 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]

Historial de desarrollo

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 backupcomando 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]

Configuración

Computadora host

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-adbpaquete. [22] Para Debian , se ha recomendado instalar también el android-sdk-platform-tools-commonpaquete junto al adbpaquete, 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]

Dispositivo Android

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]

Arquitectura

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 UsbDeviceManagery 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 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]

Protocolo servidor ↔ demonio

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

  • Dominio
  • Primer argumento
  • Segundo argumento
  • Longitud de la carga útil, 0 o superior
  • CRC-32 de la carga útil de datos
  • Valor mágico, calculado mediante el comando XOR0xFFFFFFFF

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 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 uninstallcomando. [32]

Véase también

Referencias

  1. ^ Darcey, Lauren (2012). Desarrollo de aplicaciones inalámbricas para Android. Shane Conder (3.ª ed.). Upper Saddle River, Nueva Jersey: Addison-Wesley. ISBN 978-0-321-81383-1. OCLC  749852462. Archivado desde el original el 26 de septiembre de 2021. Consultado el 26 de septiembre de 2021 .
  2. ^ "Cosas que puedes hacer con el comando adb de Android". Para Dummies . Archivado desde el original el 2018-05-15 . Consultado el 2021-09-09 .
  3. ^ EASTTOM, CHUCK (2021). Una guía detallada sobre análisis forense de dispositivos móviles. [Sl]: CRC PRESS. p. 72. ISBN 978-0-367-63300-4. OCLC  1250310301. Archivado desde el original el 26 de septiembre de 2021. Consultado el 26 de septiembre de 2021 .
  4. ^ Jack Wallen (6 de marzo de 2015). «Cómo crear una copia de seguridad completa de tu dispositivo Android sin root». Archivado desde el original el 24 de enero de 2016. Consultado el 29 de enero de 2016 .
  5. ^ abcd Regupathy, Rajaram (2014). Unboxing de Android USB: un enfoque práctico con ejemplos del mundo real. Berkeley, CA. ISBN 978-1-4302-6209-1. OCLC  880673864. Archivado desde el original el 26 de septiembre de 2021. Consultado el 26 de septiembre de 2021 .{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
  6. ^ Morgillo, Ivan; Viola, Stefano (2016). Aprendizaje de la programación integrada en Android N: cree un sistema perfectamente personalizado aprovechando el poder del sistema operativo Android en su dispositivo integrado. Birmingham, Reino Unido. p. 89. ISBN 9781785283284. OCLC  1020708322. Archivado desde el original el 26 de septiembre de 2021. Consultado el 26 de septiembre de 2021 .{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
  7. ^ "Cómo instalar aplicaciones de Android en Windows 11". 23 de enero de 2022.
  8. ^ "Cómo descargar aplicaciones de forma local en una Chromebook". 5 de marzo de 2023.
  9. ^ "Manual de usuario | Shizuku". shizuku.rikka.app . Consultado el 19 de julio de 2024 .
  10. ^ "Google lanza el SDK de Android". Macworld . Archivado desde el original el 2021-09-10 . Consultado el 2021-09-10 .
  11. ^ "Google pone a disposición ADB, fastboot y otras herramientas de la plataforma sin necesidad de descargar el SDK completo o Android Studio". Android Police . 2017-01-05. Archivado desde el original el 2021-04-10 . Consultado el 2021-09-09 .
  12. ^ Vasile, Cosmin. «Microsoft lanza un emulador de Android y se supone que es más rápido que el de Google». Softpedia . Archivado desde el original el 2021-09-10 . Consultado el 2021-09-10 .
  13. ^ "Android Studio 2.0 - Beta". Blog de desarrolladores de Android . Archivado desde el original el 2021-09-10 . Consultado el 2021-09-10 .
  14. ^ "Android Things Developer Preview 6". Blog de desarrolladores de Android . Archivado desde el original el 2021-09-10 . Consultado el 2021-09-10 .
  15. ^ "Llevándolo al nivel 11: Android 11 para desarrolladores". Blog de desarrolladores de Android . Archivado desde el original el 2021-09-17 . Consultado el 2021-09-10 .
  16. ^ "Anuncio de Android Studio Arctic Fox (2020.3.1) y el complemento Android Gradle 7.0". Blog de desarrolladores de Android . Archivado desde el original el 2021-09-12 . Consultado el 2021-09-10 .
  17. ^ "Cambios de comportamiento: aplicaciones orientadas a Android 12 | Android 12 Beta". Desarrolladores de Android . Archivado desde el original el 2021-09-28 . Consultado el 2021-09-28 .
  18. ^ "Google considera eliminar la copia de seguridad y restauración de ADB de Android".
  19. ^ Bradshaw, Kyle (26 de agosto de 2022). "Google quiere que los dispositivos Fuchsia sean manejables con la herramienta ADB de Android". 9to5Google . Consultado el 29 de agosto de 2022 .
  20. ^ Harwani, BM (2013). PhoneGap build: desarrollo de aplicaciones móviles multiplataforma en la nube. Boca Raton. p. 38. ISBN 978-1-4665-8975-9. OCLC  862745697. Archivado desde el original el 7 de marzo de 2022. Consultado el 29 de enero de 2022 .{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
  21. ^ Hoffman, Chris; Fedewa, Joe (4 de septiembre de 2021). "Cómo instalar y usar ADB, la utilidad Android Debug Bridge". How-To Geek . Archivado desde el original el 2021-09-18 . Consultado el 2021-09-09 .
  22. ^ Smyth, Neil (2020). "7". Fundamentos de desarrollo de Android Studio 4. 0 - Edición Java: desarrollo de aplicaciones de Android con Android Studio 4. 0, Java y Android Jetpack. Cary. ISBN 978-1-951442-21-7. OCLC  1190906409. Archivado desde el original el 26 de septiembre de 2021. Consultado el 26 de septiembre de 2021 .{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
  23. ^ "Debian -- Detalles del paquete adb en bullseye". packages.debian.org . Archivado desde el original el 8 de septiembre de 2021 . Consultado el 8 de septiembre de 2021 .
  24. ^ "Cómo instalar Android Debug Bridge (ADB) y Fastboot". Lifewire . Archivado desde el original el 2022-01-30 . Consultado el 2022-01-18 .
  25. ^ "Ejecutar aplicaciones en un dispositivo de hardware". Desarrolladores de Android . Archivado desde el original el 8 de septiembre de 2021. Consultado el 8 de septiembre de 2021 .
  26. ^ Wallen, Jack. «Cómo habilitar las opciones de desarrollador en Android 4.2». TechRepublic . Archivado desde el original el 2021-09-09 . Consultado el 2021-09-09 .
  27. ^ Ogubuike, Udochi (9 de agosto de 2019). «Cómo habilitar el modo de depuración USB en Android». The Punch . Archivado desde el original el 17 de septiembre de 2019. Consultado el 9 de septiembre de 2021 .
  28. ^ Aranzulla, Salvatore . "Comience a activar la depuración del USB". Salvatore Aranzulla (en italiano). Archivado desde el original el 9 de septiembre de 2021 . Consultado el 9 de septiembre de 2021 .
  29. ^ Drake, Joshua J. (2014). Manual del hacker de Android. Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianápolis, IN: Wiley. p. 75. ISBN 978-1-118-60861-6. OCLC  875820167. Archivado desde el original el 26 de septiembre de 2021. Consultado el 26 de septiembre de 2021 .
  30. ^ Mendelsohn, Tom (9 de enero de 2017). «Google detecta una grave vulnerabilidad de Android que exponía los dispositivos al espionaje». Ars Technica . Archivado desde el original el 10 de septiembre de 2021. Consultado el 10 de septiembre de 2021 .
  31. ^ Cimpanu, Catalin. "Dispositivos Android atrapados en una botnet DDoS". ZDNet . Archivado desde el original el 2021-09-10 . Consultado el 2021-09-10 .
  32. ^ Schuman, Evan. "Esta aplicación Vultur lleva la malicia al siguiente nivel". Computerworld . Archivado desde el original el 2021-09-10 . Consultado el 2021-09-10 .
  • Sitio web oficial
  • "Uso de ADB y fastboot". Wiki de LineageOS . Consultado el 2 de mayo de 2023 .
  • "Puente de depuración de Android". Wiki de Arch Linux . Consultado el 2 de mayo de 2023 .
  • "Android/adb - Wiki de Gentoo". Wiki de Gentoo Linux . Consultado el 2023-05-02 .
  • "Puente de depuración de Android". Wiki de Android . Consultado el 2 de mayo de 2023 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Puente_de_depuración_de_Android&oldid=1235449153"