Saltar al contenido principal

Frida en Android: Setup completo para dispositivos físicos

Guía actualizada para configurar y utilizar Frida en dispositivos Android físicos rooteados.
Incluye instalación, uso básico, resolución de errores comunes y consideraciones para entornos Android 13-15.

Tabla de Contenidos

Introducción

Frida permite instrumentar aplicaciones Android en tiempo real para:

Usaremos Magisk para mantener root y Frida Server para permitir la inyección de scripts desde nuestro PC.

Requisitos Previos

Equipo de pruebas usado:

Instalación

Instalar ADB

Descarga Platform Tools, extrae e incorpora la carpeta a tu PATH.
Verifica:

adb version

Preparación del entorno en el PC

Instala Frida CLI:

pip install frida-tools

Clave en 2025:
frida --version debe coincidir EXACTAMENTE con la versión del frida-server que descargues de Releases.
Ejemplo: Si el cliente es 17.2.15, descarga frida-server-17.2.15-android-arm64.

Pasos en el dispositivo

Subir y arrancar frida-server:

adb push frida-server /data/local/tmp/
adb shell
su
chmod 755 /data/local/tmp/frida-server
/data/local/tmp/frida-server &

Verificar:

frida-ps -U

Uso básico

Ejecutar script:

frida -U -f com.app.objetivo -l script.js

Ejemplo de script.js:

console.log("[+] Frida conectado");
Java.perform(function(){
    console.log("[+] Dentro de Java");
});

Troubleshooting

Error: “Failed to spawn…”

Causas comunes:

Solución recomendada (2025):

  1. Verificar versiones:
frida --version
adb shell getprop ro.product.cpu.abi
  1. Asegurarte de usar el frida-server correcto (versión y arquitectura).
  2. Matar instancias previas:
adb shell su -c "pkill frida-server"
  1. Reiniciar frida-server y probar de nuevo.

Error: “Unable to perform state transition”

En Android 14+, ART bloquea hooks de Frida.
Antes de recurrir a cambios extremos:

Solución extrema (solo si todo lo anterior falla)
Algunas apps solo funcionan si eliminas com.google.android.art:

adb shell su -c "pm uninstall com.google.android.art"

Esto puede afectar la estabilidad del sistema. Haz backup antes.

Evidencias

Salida exitosa de frida-ps -U:

PID  Name
----  ---------------------
1234  com.android.chrome
5678  com.whatsapp
9012  com.app.objetivo

Flujo de pruebas

  1. Verificación inicial:

    • Dispositivo rooteado con Magisk
    • ADB funcional y dispositivo detectado
    • Frida instalado y versiones coincidentes
  2. Preparación:

    • Subir frida-server al dispositivo
    • Arrancar frida-server con permisos root
    • Verificar procesos visibles con frida-ps -U
  3. Instrumentación:

    • Seleccionar aplicación objetivo
    • Crear script de instrumentación
    • Ejecutar con spawn o attach según necesidad
  4. Debugging:

    • Verificar logs en tiempo real
    • Ajustar scripts según comportamiento observado
    • Documentar hallazgos y bypasses exitosos

Este flujo garantiza un approach sistemático para las pruebas de seguridad con Frida.