>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Shell

Cómo extraer datos ocultos y telemetría de Android mediante ADB limpio

Android Forensics Logo

Cuando tengo en mis manos un dispositivo de prueba con un error intermitente o comportamiento sospechoso, la ventana estándar de Logcat de Android Studio a menudo se queda corta. Quiero tomar rápidamente una instantánea del sistema: qué cuentas están vinculadas, cuántas veces se ha reiniciado el teléfono, qué se ejecuta en los servicios en segundo plano y cómo se consumió la batería.

La mayoría de las personas en estos casos buscan inmediatamente derechos de root o descargan utilidades GUI pesadas. En realidad, el Android Debug Bridge (ADB) estándar puede generar grandes cantidades de datos sin software de terceros. El proyecto AndroidForensics del desarrollador Douglas Fresh Habian recopila todos estos comandos en una única guía de referencia y dos scripts Bash listos para usar.

Qué hay dentro del repositorio

En esencia, el repositorio es una hoja de referencia y un conjunto de scripts de automatización para análisis forenses y diagnóstico profundo de dispositivos Android. El proyecto se centra en trabajar con dispositivos sin derechos de root, aunque algunos comandos de bajo nivel revelarán más en compilaciones de ingeniería.

El repositorio contiene dos archivos ejecutables principales:

  1. extract.sh — script principal de evaluación inicial y recopilación de datos de usuario. Extrae propiedades del sistema, configuración de red, listas de paquetes instalados, servicios activos e intenta leer proveedores de contenido.
  2. dumpsys.sh — recopilador de telemetría del sistema. El script consulta más de dos docenas de subsistemas internos de Android a través de la utilidad dumpsys y organiza los registros en archivos de texto separados.

Cada ejecución crea una carpeta separada con marca de tiempo, donde los resultados de cada comando individual se almacenan de forma ordenada. Esto elimina el desorden en la terminal y ayuda a capturar inmediatamente el estado del sistema en un momento específico.

Comandos útiles para añadir a tu arsenal

El README incluye tanto llamadas básicas de getprop como comandos de una sola línea no obvios con análisis de salida a través de grep, sed y awk.

Recopilación de datos de cuentas y direcciones de correo electrónico

A través del administrador de cuentas, puedes descubrir rápidamente a qué servicios está vinculado el teléfono y recopilar todas las direcciones de correo electrónico registradas:

adb shell dumpsys account | grep -i com.*$ -o | cut -d' ' -f1 | cut -d} -f1 | grep -v com$

Para buscar direcciones de correo electrónico, el autor sugiere una expresión regular directamente en el volcado del sistema:

adb shell dumpsys | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"

Este comando es útil cuando necesitas verificar rápidamente si un probador anterior olvidó cerrar la sesión de cuentas de trabajo en un banco de pruebas compartido.

Contador de reinicios y línea de tiempo del sistema

A veces un error solo se reproduce después de un reinicio en frío, pero el usuario afirma que el teléfono nunca se apagó. Puedes verificar esto a través de la configuración global:

adb shell settings list global | grep "boot_count=" | cut -d= -f2 | head -n 1 | xargs echo "Booted:" | sed 's/$/ times/g'

Y si necesitas entender la imagen general del consumo de recursos y la actividad de las aplicaciones a lo largo del tiempo, los comandos de estadísticas vienen al rescate:

adb shell dumpsys usagestats
adb shell dumpsys batterystats
adb shell settings list system

Acceso a proveedores de contenido

Para extraer contactos, historial de llamadas y mensajes, el script realiza consultas directas a los URIs del sistema:

# Список контактов и номеров телефонов
adb shell content query --uri content://contacts/phones/ --projection display_name:number

# Журнал звонков
adb shell content query --uri content://call_log/calls

# База входящих и исходящих SMS
adb shell content query --uri content://sms/

Aquí hay una limitación técnica importante. A partir de Android 11, Google apretó significativamente el modelo de seguridad. En versiones más recientes del sistema operativo, consultar directamente content://sms/ o contactos a través de ADB sin permisos especiales o root resultará en un error de acceso. Sin embargo, en dispositivos de prueba más antiguos (Android 9–10) o compilaciones personalizadas de desarrollador, estos comandos continúan funcionando de manera confiable.

Cómo funciona la automatización

Si ejecutar comandos manualmente se vuelve tedioso, los scripts automatizan la rutina. Para comenzar, simplemente clona el repositorio y otorga permisos de ejecución:

git clone https://github.com/DouglasFreshHabian/AndroidForensics.git
cd AndroidForensics
chmod +x extract.sh dumpsys.sh

Cuando se ejecuta ./extract.sh, el script primero verifica si adb está instalado, hace ping a los dispositivos conectados e inicia la recopilación.

Durante la operación, extract.sh realiza varias tareas en paralelo:

  • Crea un directorio llamado ADB_Report_20251025_163200.
  • Consulta las propiedades del dispositivo (ro.product.model, ro.build.version.release, ro.serialno).
  • Toma una instantánea de las últimas líneas del registro del sistema a través de adb logcat -d.
  • En segundo plano, comienza a generar un informe completo adb bugreport sin bloquear la terminal.
  • Al completarse, muestra una tabla de resumen con colores que incluye los tamaños de todos los archivos guardados.

El segundo script, dumpsys.sh, se enfoca exclusivamente en diagnosticar servicios del sistema. Consulta secuencialmente meminfo, wifi, power, location, sensorservice, netstats y 15 servicios más, guardando cada salida en wifi.txt, meminfo.txt, etc. Si un servicio no está disponible, el script lo marca como caído y continúa la operación.

Dónde resulta útil en la práctica

El proyecto tiene varias áreas obvias de aplicación:

  • QA y pruebas de aplicaciones móviles. El script dumpsys.sh ayuda a recopilar un contexto completo del estado del dispositivo en un par de segundos antes de presentar un informe de error complejo sobre fugas de memoria o consumo de energía.
  • Auditoría de dispositivos antes de entregarlos. Si un grupo de dispositivos de prueba circula por el equipo, es útil ejecutar rápidamente un script de limpieza y verificación para garantizar que no queden cuentas de otros usuarios ni procesos pesados en segundo plano en el teléfono inteligente.
  • Evaluación inicial de incidentes. Los especialistas en seguridad obtienen una forma rápida de capturar un volcado del estado del teléfono inteligente sin instalar APKs dudosos y sin realizar cambios innecesarios en el sistema de archivos.

AndroidForensics no intenta reinventar la rueda ni reemplazar paquetes forenses completos como Autopsy. La fortaleza del repositorio está en otro lugar: toma las utilidades estándar de línea de comandos de Android, las empaqueta en un formato legible y ahorra tiempo al escribir manualmente pipelines de bash.

Si regularmente conectas teléfonos inteligentes Android a tu computadora para depuración, pruebas o análisis de seguridad, añade estos scripts a tu kit de herramientas local. Se ejecutan en segundos y a menudo encuentran cosas que se escapan durante una mirada rápida a la GUI.

Proyectos relacionados