Auditar aplicaciones móviles Android exige un control total del entorno de ejecución. Sin permisos de root es imposible inspeccionar determinados directorios del sistema, modificar el almacén de certificados o interceptar de forma fiable el tráfico HTTPS cuando la aplicación implementa certificate pinning o controles equivalentes. Esta guía muestra cómo rootear un AVD de Android (Android Virtual Device) de Android Studio, instalar Magisk y configurar el certificado de Burp Suite a nivel de sistema, evitando depender de un dispositivo físico.
El procedimiento es el que seguimos habitualmente en nuestras auditorías de seguridad de aplicaciones web y móviles cuando necesitamos un entorno reproducible, desechable y fácil de restaurar. En lugar de invertir tiempo en flashing de dispositivos reales, con todos los riesgos asociados, un AVD rooteado permite tener en minutos un laboratorio completo con el que abordar cualquier aplicación Android moderna.
Requisitos previos
Antes de empezar, instala y configura los siguientes componentes en tu distribución de trabajo. Cada uno cumple un rol específico en el flujo y saltarse uno suele derivar en errores difíciles de diagnosticar durante el rooteo.
- Android Studio con el componente Virtual Device Manager y el SDK correspondientes a la versión de API que quieras emular.
- rootAVD, disponible en github.com/newbit1/rootAVD. Es el script que realiza todo el trabajo pesado: modifica la imagen
ramdisk.imgy deja Magisk preparado para el primer arranque. - Android Debug Bridge (ADB) añadido al
PATHdel sistema. Lo usaremos para enviar ficheros, ejecutar comandos shell y verificar el estado del dispositivo emulado. - Burp Suite (Community o Professional) correctamente configurado con un proxy accesible desde el AVD.
Con estos elementos listos ya podemos lanzar Android Studio y crear el dispositivo virtual sobre el que vamos a trabajar.
Crear y configurar el AVD
Abrimos el Device Manager de Android Studio para gestionar los dispositivos virtuales disponibles. Desde esta ventana podemos crear, clonar, duplicar o eliminar emuladores.

Pulsamos el botón "+" para añadir un nuevo dispositivo. Android Studio nos pedirá elegir un modelo base: un Pixel moderno con factor de forma teléfono es la opción más compatible con la mayoría de aplicaciones.

A continuación seleccionamos las propiedades del emulador: resolución, densidad de pantalla, memoria RAM, almacenamiento interno y tarjeta SD virtual. Para pruebas de pentesting móvil conviene asignar al menos 2 GB de RAM y 4 GB de almacenamiento interno para evitar problemas al instalar múltiples aplicaciones.

El siguiente paso es elegir la imagen del sistema. Aquí es muy importante escoger una API adecuada a la aplicación objetivo: en este ejemplo trabajamos con la API 33 (Android 13) porque es la que exige la app que queremos auditar, pero cualquier API con Google Play Services compatible con rootAVD sirve.

Terminamos el asistente confirmando la configuración del dispositivo. A partir de este momento ya disponemos de un AVD "limpio" en el Device Manager, todavía sin privilegios de root.

Rootear el AVD con Magisk
Arrancamos el AVD recién creado. Con el emulador ya en ejecución, abrimos una terminal y nos desplazamos al directorio donde hayamos clonado el repositorio rootAVD. El primer paso consiste en listar los AVDs disponibles para identificar la imagen exacta que vamos a modificar.
./rootAVD.sh ListAllAVDs

El script enumera todas las imágenes de sistema instaladas en el host, con su ruta absoluta y la API correspondiente. Localizamos la línea que se corresponde con la API de nuestro AVD (API 33 en este caso) y copiamos el comando que rootAVD sugiere para esa imagen. Este comando embebe la ruta correcta al ramdisk.img y los parámetros necesarios para parchearlo con Magisk.

Ejecutamos el comando que nos ha proporcionado el script para instalar Magisk sobre la imagen del AVD. rootAVD descomprime el ramdisk, inyecta el binario de Magisk, reempaqueta la imagen y la deja lista para el siguiente arranque.

El proceso muestra por consola las fases: extracción del ramdisk, descarga de Magisk, copia del binario y generación del nuevo ramdisk parcheado. Es importante no interrumpir el script ni cerrar el emulador mientras se ejecuta para evitar dejar la imagen corrupta.


Cuando el script finaliza, reiniciamos el AVD. Al arrancar de nuevo debería aparecer la aplicación Magisk instalada en el menú de aplicaciones. Este es el primer indicador visual de que el parcheo ha sido exitoso.

Al abrir Magisk por primera vez nos solicitará realizar una configuración adicional para completar la instalación. Aceptamos para que complete el setup del entorno root, lo que provocará un nuevo reinicio automático del dispositivo.

Una vez reiniciado, abrimos una terminal y ejecutamos los comandos para obtener una shell con privilegios elevados:
adb shell
su
Magisk mostrará en el propio emulador una ventana emergente pidiéndonos que autoricemos el acceso root para la shell de ADB. Hay que aceptarlo para que su devuelva el control al terminal. Si no aceptamos a tiempo, el comando fallará con un permission denied y habrá que volver a ejecutarlo.

Para confirmar que la escalada ha funcionado ejecutamos:
whoami
Si el resultado es root, ya disponemos de una shell con privilegios completos sobre el dispositivo emulado. Este paso es el smoke test del rooteo.

Antes de pasar al siguiente bloque conviene abrir Magisk y actualizar la aplicación desde su propia interfaz. Esta actualización interna completa la instalación del entorno Magisk, ajusta módulos internos y consolida los cambios realizados por rootAVD.




Con la actualización completada ya tenemos un AVD totalmente operativo en modo root, listo para la siguiente fase: el certificado de Burp Suite.
Instalar el certificado de Burp Suite
Para interceptar el tráfico HTTPS de una aplicación necesitamos que Android confíe en la autoridad certificadora (CA) de Burp Suite. En Android 7 y posteriores, las aplicaciones sólo confían por defecto en certificados del almacén System, ignorando los certificados instalados como "usuario". Por eso no basta con importar el certificado: tenemos que colocarlo en el almacén del sistema, y para eso es precisamente para lo que hemos rooteado el AVD.
El primer paso es exportar el certificado CA desde Burp Suite en formato DER. Dentro de Burp abrimos Proxy → Proxy Settings → Import / Export CA certificate y elegimos la opción correspondiente.

Seleccionamos exportar en formato DER y guardamos el archivo como burp_certificate.der en un directorio accesible desde la terminal del host.

Con el certificado ya en disco, lo subimos al dispositivo emulado usando ADB:
adb push burp_certificate.der /sdcard/Download

Ahora toca instalarlo desde la interfaz gráfica del AVD. Navegamos a Ajustes → Seguridad → Más ajustes de seguridad → Cifrado y credenciales → Instalar un certificado. La ruta exacta puede variar ligeramente según la versión de Android, pero el menú de Cifrado y credenciales siempre existe en AOSP.




Elegimos instalar como CA Certificate (Certificado de AC). Android nos advertirá sobre los riesgos de instalar una CA personalizada; en un entorno de auditoría controlado es aceptable aceptar el aviso.


Verificamos que el certificado ha quedado registrado accediendo a Credenciales de confianza → Usuario. En este punto el certificado está instalado como certificado de usuario, pero todavía no es de confianza para las aplicaciones modernas.


Para convertirlo en certificado del sistema usamos el módulo de Magisk AlwaysTrustUserCerts, que inyecta automáticamente los certificados de usuario dentro del almacén system en cada arranque. Descargamos el módulo desde el repositorio oficial NVISOsecurity/MagiskTrustUserCerts y lo subimos al AVD:
adb push AlwaysTrustUserCerts.zip /sdcard/Download

Dentro del AVD abrimos Magisk → Módulos → Instalar desde almacenamiento y seleccionamos el ZIP que acabamos de subir. Magisk se encargará de ejecutar el script de instalación del módulo.




Al terminar veremos el módulo listado como instalado y activo. Reiniciamos el AVD para que el módulo aplique sus cambios al almacén system durante el arranque.

Verificación y pruebas
Tras el reinicio podemos comprobar que el certificado de Burp Suite aparece ahora en las credenciales del sistema, no sólo en las de usuario. Este detalle es lo que permite que prácticamente cualquier aplicación acepte el certificado como válido sin levantar excepciones TLS.

Con el AVD configurado para enviar su tráfico a Burp Suite (mediante el proxy del emulador o iptables) ya podemos abrir cualquier aplicación y comenzar a interceptar el tráfico HTTPS. Si la app no implementa certificate pinning adicional, veremos todas sus peticiones en claro en la pestaña Proxy de Burp.

A partir de este punto ya tienes un laboratorio reproducible de pentesting móvil sobre Android. Puedes duplicar el AVD para mantener una imagen limpia de referencia, instalar herramientas como Frida, Objection, drozer o MobSF, o incluso automatizar el setup con scripts para recrear el entorno en minutos.
Consideraciones finales
Aunque este laboratorio es ideal para pruebas iniciales, recuerda que muchas aplicaciones modernas implementan mecanismos de evasión como certificate pinning estricto, detección de root, comprobación de emulador o anti-debugging. En esos casos el rooteo del AVD y el certificado a nivel system son sólo el primer paso: necesitarás técnicas adicionales con Frida o Objection para instrumentar la aplicación en tiempo de ejecución y neutralizar esos controles.
Si tu empresa desarrolla o depende de aplicaciones móviles y necesita garantizar que son robustas frente a un atacante motivado, en Secra realizamos auditorías completas de seguridad móvil alineadas con OWASP MASVS y MASTG, cubriendo tanto el análisis estático del código como el dinámico de la aplicación en ejecución sobre entornos como el que acabamos de construir. Contáctanos para una evaluación inicial gratuita y recibirás una hoja de ruta concreta para reforzar la postura de seguridad de tus apps Android e iOS.

