AVD - Android Virtual Device
Muchas gracias a @offsecjay por su ayuda en la creación de este contenido.
Qué es
Android Studio permite ejecutar máquinas virtuales de Android que puedes usar para probar APKs. Para utilizarlas necesitarás:
Las herramientas del SDK de Android - Descargar aquí.
O Android Studio (con las herramientas del SDK de Android) - Descargar aquí.
En Windows (en mi caso) después de instalar Android Studio tuve las Herramientas del SDK instaladas en: C:\Users\<NombreUsuario>\AppData\Local\Android\Sdk\tools
En Mac puedes descargar las herramientas del SDK y tenerlas en el PATH ejecutando:
O desde la interfaz gráfica de Android Studio como se indica en https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a que los instalará en ~/Library/Android/sdk/cmdline-tools/latest/bin/
y ~/Library/Android/sdk/platform-tools/
y ~/Library/Android/sdk/emulator/
Para los problemas de Java:
GUI
Preparar Máquina Virtual
Si has instalado Android Studio, simplemente abre la vista principal del proyecto y accede a: Herramientas --> Administrador AVD.
Luego, haz clic en Crear dispositivo virtual
selecciona el teléfono que deseas usar y haz clic en Siguiente.
¡Si necesitas un teléfono con Play Store instalado, selecciona uno con el icono de Play Store!
En la vista actual podrás seleccionar y descargar la imagen de Android que ejecutará el teléfono:
Entonces, selecciónalo y si no está descargado haz clic en el símbolo de Descargar junto al nombre (ahora espera hasta que se descargue la imagen).
Una vez descargada la imagen, simplemente selecciona Siguiente
y Finalizar
.
La máquina virtual será creada. Ahora cada vez que accedas al administrador AVD estará presente.
Ejecutar Máquina Virtual
Para ejecutarla simplemente presiona el botón de Inicio.
Herramienta de Línea de Comandos
Primero necesitas decidir qué teléfono deseas usar, para ver la lista de teléfonos posibles ejecuta:
Una vez que hayas decidido el nombre del dispositivo que deseas utilizar, necesitas decidir qué imagen de Android deseas ejecutar en este dispositivo.
Puedes listar todas las opciones usando sdkmanager
:
Y descarga el que desees utilizar con:
Una vez que hayas descargado la imagen de Android que deseas utilizar, puedes listar todas las imágenes de Android descargadas con:
En este momento has decidido el dispositivo que deseas utilizar y has descargado la imagen de Android, por lo que puedes crear la máquina virtual usando:
En el último comando creé una VM llamada "AVD9" utilizando el dispositivo "Nexus 5X" y la imagen de Android "system-images;android-28;google_apis;x86_64". Ahora puedes listar las máquinas virtuales que has creado con:
Ejecutar Máquina Virtual
Ya hemos visto cómo puedes listar las máquinas virtuales creadas, pero también puedes listarlas usando:
Puedes simplemente ejecutar cualquier máquina virtual creada usando:
O utilizando opciones más avanzadas, puedes ejecutar una máquina virtual como:
Opciones de línea de comandos
Sin embargo, hay muchas opciones útiles de línea de comandos diferentes que puedes usar para iniciar una máquina virtual. A continuación, puedes encontrar algunas opciones interesantes pero puedes encontrar una lista completa aquí
Arranque
-snapshot name
: Iniciar instantánea de VM-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Enumerar todas las instantáneas grabadas
Red
-dns-server 192.0.2.0, 192.0.2.255
: Permite indicar de forma separada por comas los servidores DNS para la VM.-http-proxy 192.168.1.12:8080
: Permite indicar un proxy HTTP para usar (muy útil para capturar el tráfico usando Burp)-port 5556
: Establecer el número de puerto TCP que se utiliza para la consola y adb.-ports 5556,5559
: Establecer los puertos TCP utilizados para la consola y adb.-tcpdump /path/dumpfile.cap
: Capturar todo el tráfico en un archivo
Sistema
-selinux {disabled|permissive}
: Establecer el módulo de seguridad de Linux mejorado a modo deshabilitado o permisivo en un sistema operativo Linux.-timezone Europe/Paris
: Establecer la zona horaria para el dispositivo virtual-screen {touch(default)|multi-touch|o-touch}
: Establecer el modo de pantalla táctil emulado.-writable-system
: Usa esta opción para tener una imagen de sistema escribible durante tu sesión de emulación. También necesitarás ejecutaradb root; adb remount
. Esto es muy útil para instalar un nuevo certificado en el sistema.
Rootear un dispositivo de Play Store
Si descargaste un dispositivo con Play Store, no podrás obtener acceso root directamente y recibirás este mensaje de error
Usando rootAVD con Magisk pude rootearlo (sigue por ejemplo este video o este otro).
Instalar Certificado Burp
Consulta la siguiente página para aprender cómo instalar un certificado CA personalizado:
pageInstall Burp CertificateBuenas Opciones de AVD
Tomar una Captura de Pantalla
Puedes utilizar la interfaz gráfica para tomar una captura de la máquina virtual en cualquier momento:
Última actualización