Seguridad
La página se sirve desde droid.devpier.dev, pero el emulador y el gateway se ejecutan en tu Mac. Cualquier página web que abras podría intentar conectarse a un programa en tu Mac, así que el gateway comprueba cada conexión.
Solo loopback
Sección titulada «Solo loopback»El gateway escucha solo en 127.0.0.1. No acepta conexiones de tu red local ni de internet. Otras computadoras no pueden llegar a él.
Lista de orígenes permitidos
Sección titulada «Lista de orígenes permitidos»Los navegadores envían un encabezado Origin cuando una página abre un WebSocket. El gateway acepta solo estos orígenes:
https://droid.devpier.devhttp://127.0.0.1:<port>http://localhost:<port>
Una conexión con cualquier otro origen, o sin origen, se cierra con el código 4003. Una página de otro sitio no puede controlar tu emulador, aunque adivine el puerto.
Token de inicio
Sección titulada «Token de inicio»- Cada vez que el gateway se inicia, crea un nuevo token aleatorio: 32 bytes aleatorios, codificados como una cadena base64url de 43 caracteres.
- El gateway abre la página con el puerto y el token después de
#:https://droid.devpier.dev/app/#port=<port>&token=<token>. Los navegadores no envían al servidor web la parte que va después de#, así que el token nunca llega adroid.devpier.dev. - La página guarda el puerto y el token en el almacenamiento local del navegador, para que puedas recargar la página, y los quita de la barra de direcciones.
- El primer mensaje de cada conexión debe llevar el token. Si es incorrecto, el gateway responde con un error
bad-tokeny cierra la conexión con el código4001. - Cuando el gateway se reinicia, el token anterior deja de funcionar. Abre el nuevo enlace que muestra.
El sitio web no se conecta a tu Mac
Sección titulada «El sitio web no se conecta a tu Mac»El permiso de red local de Chrome y la comprobación de Origin del gateway funcionan por sitio, no por ruta. Por eso, las páginas de documentación comparten el permiso con la página del emulador en /app/. Para limitar lo que eso implica:
- Solo la página del emulador en
/app/se conecta al gateway. La página de inicio y esta documentación nunca lo hacen, así que leerlas no activa el aviso de permiso. - El sitio no carga scripts, estilos, fuentes ni contenido multimedia de terceros. Todo se sirve desde
droid.devpier.dev. - El token es una segunda comprobación: una página en
droid.devpier.devsin el token no puede usar el gateway.
Instalación de software
Sección titulada «Instalación de software»El gateway nunca instala paquetes del Android SDK ni crea dispositivos sin preguntar. Pregunta [y/N] en Terminal, y la respuesta predeterminada es no. Las licencias del Android SDK las aceptas tú mismo.
Códigos de cierre de conexión
Sección titulada «Códigos de cierre de conexión»| Código | Significado |
|---|---|
4000 |
El primer mensaje no fue hello. |
4001 |
Token incorrecto. |
4002 |
La página y el gateway usan versiones de protocolo diferentes. |
4003 |
Origen no permitido. |
Reportar un problema
Sección titulada «Reportar un problema»Abre un issue en github.com/twosugar/android-emu-web.