ADB (Android Debug Bridge) es una herramienta de línea de comandos que permite la comunicación entre una computadora y un dispositivo Android. ADB ofrece una variedad de comandos que permiten a los desarrolladores y testers de seguridad interactuar con un dispositivo Android, transferir archivos, instalar o eliminar aplicaciones, y recopilar información para depuración o pruebas de seguridad.
Instalación
Para la instalación se puede descargar el software desde la página oficial: http://adbshell.com/ En mi caso como todo lo haré desde Kali Linux lo instalo de la siguiente forma:
Conexión
Esto enumerará los dispositivos conectados; si aparece “unathorised”, esto significa que debes desbloquear tu móvil y aceptar la conexión.
Esto indica al dispositivo que debe iniciar un servidor adb en el puerto 5555:
Conéctate a esa IP y ese Puerto:
Si obtienes un error como el siguiente en un software de Android Virtual (como Genymotion):
Es porque estás intentando conectarte a un servidor ADB con una versión diferente. Solo intenta encontrar el binario adb que el software está utilizando (ve a C:\Program Files\Genymobile\Genymotion y busca adb.exe
)
Varios dispositivos
Siempre que encuentres varios dispositivos conectados a tu máquina necesitarás especificar en cuál deseas ejecutar el comando adb.
adb devices List of devices attached 10.10.10.247:42135 offline 127.0.0.1:5555 device
Gestor de Paquetes
Instalar/Desinstalar
adb install [opción] <ruta>
adb uninstall [options] <PACKAGE>
Paquetes
Imprime todos los paquetes, opcionalmente solo aquellos cuyo nombre de paquete contiene el texto en <FILTER>
.
adb shell pm path <PACKAGE>
Imprime la ruta al APK del dado.
adb shell pm clear <PACKAGE>
Elimina todos los datos asociados con un paquete.
Administrador de archivos
adb pull <remote> [local]
Descarga un archivo especificado de un emulador/dispositivo a tu computadora.
adb push <local> <remote>
Sube un archivo especificado desde tu computadora a un emulador/dispositivo.
Captura de pantalla/Grabación de pantalla
adb shell screencap <filename>
Tomando una captura de pantalla de la pantalla del dispositivo.
adb shell screenrecord [options] <filename>
Grabando la pantalla de dispositivos que ejecutan Android 4.4 (nivel de API 19) y superior.
(presiona Ctrl-C para detener la grabación)
Puedes descargar los archivos (imágenes y videos) usando _adb pull_
Shell
adb shell
Obtén un shell dentro del dispositivo
adb shell <CMD>
Ejecuta un comando dentro del dispositivo
pm
Los siguientes comandos se ejecutan dentro de un shell
Processes
Si deseas obtener el PID del proceso de tu aplicación, puedes ejecutar:
Y busca tu aplicación
O puedes hacer
Y imprimirá el PID de la aplicación
Sistema
Reinicia el demonio adbd con permisos de root. Luego, debes conectarte nuevamente al servidor ADB y serás root (si está disponible).
flashear/restaurar paquetes de actualización Android update.zip.
Logs
Logcat
Para filtrar los mensajes de solo una aplicación, obtén el PID de la aplicación y usa grep (linux/macos) o findstr (windows) para filtrar la salida de logcat:
adb logcat [opción] [filtro-specs]
Notas: presiona Ctrl-C para detener el monitor
adb logcat -b <Buffer>
dumpsys
dumps datos del sistema
adb shell dumpsys [opciones]
Notas: Un dispositivo móvil con las Opciones de Desarrollador habilitadas que ejecute Android 5.0 o superior.
Notas: Battery Historian convierte esos datos en una visualización HTML. PASO 1 adb shell dumpsys batterystats > batterystats.txt PASO 2 python historian.py batterystats.txt > batterystats.html
Backup
Realizar un backup de un dispositivo android desde adb.
Si deseas inspeccionar el contenido de la copia de seguridad: