Interceptant HTTPS en Android Emulat
Introducció
Començaré arrencant una màquina virtual (VM) amb Ubuntu 26.04 neta on farem la instal·lació de tots els paquets.
Instal·lació de Waydroid
Si et vols saltar aquesta secció o fas servir alguna altra distribució de Linux, pots seguir la guia oficial d'instal·lació aquí.
Afegim el repositori de Waydroid
sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash
Instal·lem el paquet
sudo apt update
sudo apt install waydroid -y
Ara ja podem iniciar l'emulador des del menú d'inici o amb waydroid a la terminal.
Durant la primera obertura se'ns demanarà quina imatge del sistema volem instalar. Recomano escollir la versió amb "Aplicacions de Google" si més endavant voldrem fer servir la Play Store per descarregar aplicacions.
Un cop acabada la descàrrega se'ns obrirà la finestra principal des d'on interactuar amb l'emulador.
Instal·lació de mitm-proxy
MiTM-Proxy és un software que ens permet redirigir el transit de xarxa del contenidor d'Android a través d'una xarxa virtual abans de sortir a l'internet. Per tal de mantenir tot ben polit, farem servir un un entorn virtual de Python i instal·larem el proxy a través de pip.
Creem un entorn amb python3 -m venv mitmproxy i l'activem amb source mitmproxy/bin/activate i deixem la terminal oberta. En aquesta finestra gestionarem el proxy.
Instal·lem el proxy amb pip install mitmproxy i un cop acabat podem arrencar-lo amb mitmweb -p 8888 --listen-host 192.168.240.1 on 8888 és el port on s'allotja el panell web del proxy i 192.168.240.1 l'adreça base de la xarxa de l'emulador. Això es pot comprovar amb ip a o ifconfig on veurem:
waydroid0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.240.1 netmask 255.255.255.0 broadcast 192.168.240.255
inet6 fe80::216:3eff:fe00:1 prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:00:00:01 txqueuelen 1000 (Ethernet)
RX packets 20072 bytes 2245961 (2.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 53932 bytes 209240634 (209.2 MB)
TX errors 0 dropped 1 overruns 0 carrier 0 collisions 0
Certificat CA
Per tal de poder desencriptar el trànsit entre el dispositiu i el servidor cal afegir a l'emulador un certificat que genera el proxy.
Amb openssl x509 -subject_hash_old -in ~/.mitmproxy/mitmproxy-ca-cert.pem extraiem la primera línia de la sortida de la comanda. Per exemple: c8750f0d. Anotem aquesta cadena.
Ara afegirem el certificat a l'emulador.
Creem la carpeta pare amb sudo mkdir -p /var/lib/waydroid/overlay/system/etc/security/cacerts/ i copiem el certificat amb sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem /var/lib/waydroid/overlay/system/etc/security/cacerts/c8750f0d.0 tenint en compte que el nom de l'arxiu és el mateix que la cadena que em anotat abans.
Finalment ajustem els permisos: sudo chmod 644 /var/lib/waydroid/overlay/system/etc/security/cacerts/c8750f0d.0.
Sel·lecció Proxy
Un cop el proxy i l'emulador són encesos, només falta dirigir les sol·licituds del sistema cap a aquest. Per a això obrirem una terminal d'Android amb sudo waydroid shell i introduïrem:
settings put global http_proxy 192.168.240.1:8888per passar pel proxy.settings put global http_proxy :0per desactivar-lo.
Exemple pràctic
- Arrenquem el proxy dins l'entorn virtual.
- Arrenquem Waydroid i activem el proxy.
- Obrim el navegador web d'Android i fem una cerca. Per exemple a https://giuli.cat
- Observem el panell web del proxy i veure'm les peticions fetes pel navegador. Enhorabona, has interceptat HTTPS!

Extra: Instal·lació d'aplicacions XAPK
Darrerament s'ha estès l'ús de paquets XAPK en contra dels estàndards APK, fàcilment instal·lables al nostre contenidor. Per a solventar això emprarem una aplicació que ens permeti instal·lar aquests arxius.
Podem descarregar XAPK Managager per a aquesta finalitat.
Instal·la l'apk com qualsevol altre des de l'emulador o a través de la CLI de Waydroid. Més info a waydroid help.
Extra: Waydroid en una Màquina Virtual
Per tal de poder fer servir l'emulador en una màquina virtual serà necessari deshabilitar l'acceleració per hardware.
Editem l'arxiu /var/lib/waydroid/waydroid.cfg i a l'apartat [properties] afegim:
ro.hardware.gralloc=default
ro.hardware.egl=swiftshader
Finalment apliquem amb sudo waydroid upgrade -o i tornem a arrencar l'emulador.