domingo, febrero 23, 2020

Cómo configurar un Remote Mouse en tu iPhone para controlar tu MacOS y no morir en el intento

Hace tiempo que vengo utilizando el mismo equipo para trabajar. Un MacBook Pro pre-Retina. De los que NO llevan USB-C y no hay que ponerles cien mil millones de adaptadores para conectarles cosas tan raras como un disco USB normal, o cualquier otro dispositivo de los millones que hay con USB. Es cierto que confiando en Apple me compré un Macbook de esos que llevan la TouchBar en el teclado, y después de perder algún adaptador y de dejarme tirado en alguna presentación, opté por regresar al MacBook Pro "antiguo"

Figura 1: Cómo configurar un Remote Mouse en tu iPhone para controlar tu MacOS
y no morir en el intento

Y le he dado mucha caña. Tiene más programas de puntos por viajes que yo. Lo he usado hasta que lo he roto por muchos sitios diferentes. Algunos técnicos de audiovisuales en eventos conocen ya mi equipo por "el del USB machacado", porque se me cayó una vez al suelo y tengo abollado la entrada USB izquierda de mi MacBook Pro.

Y sí, me he cargado también el teclado y el TouchPad del equipo original, así que ahora para trabajar llevo un teclado USB/BlueTooth Apple y un raton Magic Bluetooth de Apple, también. Y así voy tirando hasta que decida qué equipo va a sustituir definitivamente a mi MacBook Pro, que ya no sé si aguantará muchos más viajes. Aquí lo tenéis conmigo en medio del mar mientras posteo con él.


Si has leído hasta aquí entenderás la historia que te voy a contar, porque me sucedió cuando, como os podéis imaginar, me olvidé del ratón y necesitaba usar mi equipo para trabajar. Como de costumbre, me hallaba en mitad de Madrid, así que entré a una cafetería de un hotel a tomarme un café americano de los míos e intentar trabajar un par de horas.

Pero no tenía ratón, así que la historia se complicaba un poco, pero no mucho, pensé. Al final, estamos en el siglo XXI largo ya, así que esto debe ser fácil. Voy a configurarme un ratón en la pantalla del iPhone y lo conecto por Bluetooth y andando. Pero me dio un poco más de guerra de lo deseado, así que quiero compartirlo con vosotros para que tengáis las lecciones aprendidas en mente por si os pasa alguna vez.

Usando una App Ratón en iPhone

Pensé en utilizar una app en iOS que simulara un mouse y se conectara a MacOS por BlueTooth. Esto no debía ser tan difícil, pero lo que descubrí es que esta idea que tenía yo en la cabeza que "debía de estar", no estaba tal y como yo la imaginé. Sí que existen apps que te permiten controlar el ratón del MacOS o del Windows desde iPhone pero utilizan la red WiFi y necesitan una conexión a un servidor HTTP que debe ser instalado en el equipo. 

Las apps de mouse remoto por BlueTooth puro no funcionan, así que debe ser que iPhone no implementa alguno de los perfiles necesarios para esta función - o no - ya lo investigaré con mi equipo de Ideas Locas. Bueno, podría valerme la solución WiFi, pero eso implicaba para mí una serie de tareas a realizar antes de poder tener un ratón en mi iPhone. Tenía que:
1.- Conectar el equipo a Internet: Esto implica que debería conectar mi terminal iPhone haciendo uso del Personal HotSpot que se puede crear en iPhone o conectarme a la red WiFi del sitio. En cualquier caso, implicaba una serie de clics en zonas del sistema operativo de las que no me sabía las combinaciones de teclas necesarias para llegar allí. Y como veréis más adelante no es fácil del todo. 
Para no consumir todos los datos, y sobre todo porque había poca cobertura dentro de la cafetería, y por que la red WiFi era pública con clave para los clientes - y la tenía - decidí que lo mejor sería usar la WiFi y listo.
2.- Descargarme un servidor de una web de Internet: Más clics, pero todos dentro de las pestañas del navegador. No parecía muy complicado, si no fuera porque tuvieras que lidiar con las opciones de accesibilidad de los diseñadores de las páginas web.
3.- Instalar el servidor y configurarlo: Más configuraciones de seguridad. Hay que deshabilitar Firewall, FileVault y hay que revisar qué es lo que vas a meter en tu equipo. No soy precisamente un tipo  confiado para instalar nada en mi ordenador, así que más trabajo de revisión.
4.- Instalar la app en el iPhone: Esto paso es el más sencillo, así que no parecía que fuera a generar ningún problema.
Como podéis ver, tenía muchas tareas a realizar, y tenía que conseguir hacer todas ellas sin tener un ratón, antes de poder disponer de un ratón en mi iPhone para controlar el MacOS, así que... manos a la obra.

Manejando el MacOS con teclas

La experiencia de manejar MacOS con teclas no resulto 100% placentera, pero sí que es cierto que siempre podía abrir el Terminal de comandos y jugar con los comandos de la Shell. Saberse los comandos del terminal, y las teclas rápidas en el sistema es algo muy útil cuando te ha tocado trabajar en seguridad informática con MacOS, como explica el libro de MacOS Hacking, pero además, como tenía el móvil al lado, pude buscar las combinaciones de teclas que me faltaban, hasta que topé con una barrera que me resulto inexplicable: La ventana del portal cautivo de la red WiFi.

Figura 3: Libro de MacOS Hacking en 0xWord

Resulta que si te conectas a una red WiFi que tiene un portal cautivo, se te abre una ventana en primer plano de la pantalla que no es seleccionable con teclas, y que además no se queda en segundo plano. Es verdad que cuando te estas conectando a la red WiFi tienes el foco en esa ventana, pero si lo pierdes, volver a él es imposible, y la única solución es volver al terminal, matar los procesos y volver a realizar con teclas la conexión a esa red WiFi con portal cautivo.

Figura 4: Ejemplo con portal cautivo de WiFi Guests de Telefónica.
La pantalla se queda en primer plano y no se puede llegar por teclas
a ella si pierdes el foco cuando se conecta la WiFi.

Además, seleccionar con teclas los iconos de la barra de tareas en la zona superior de la pantalla tampoco es fácil sin ratón, así que tocar la WiFi para conectar se te puede complicar. Al segundo intento tuve mucho cuidado de no perder el foco de la ventana del portal cautivo, pero me topé con otro problema.

Figura 5: La opción de PIN no tenía opción de accesibilidad de teclado,
así que no se podía llegar a ella con teclas. Fin del camino.

Este fue muy divertido e imposible de salvar. Resulta que el portal cautivo tiene dos opciones de acceder. Una siendo cliente del hotel - que no era mi caso ya que solo estaba de paso -, el otro usando un PIN de acceso que me dieron en la cafetería. Pero la opción por defecto en el portal cautivo era la de la habitación, y tenía que - con teclas - pasar al iframe que mostraba la opción de introducir el PIN. 

Pero... los programadores de esa parte de la aplicación web no habían hecho el QA necesario y no había forma con ninguna de las teclas de navegación que ofrece el Web Browser de MacOS para llegar a ella. Así que llegué a un "dead-end" solo con teclas por culpa de una falla en accesibilidad.

Activando un ratón de emergencia en el teclado de MacOS

Mi primer intento de manejar el MacOS con teclas y comandos de Terminal para configurarme la WiFi habían resultado infructuosos por culpa de las opciones de accesibilidad de un portal cautivo que los desarrolladores se habían saltado, así que fui a la Opción 2, consistente en utilizar el ratón de emergencia que MacOS permite activar.

Para llegar a las opciones de accesibilidad de MacOS con teclas es fácil. Tienes que usar FN+Option+Command+F5 y te sale en pantalla este menú que os estoy enseñando. Por favor, si puedes porque tienes un MacOS hazlo tú mismo y verás lo que te voy a contar a continuación. Como se puede ver, tenemos la opción de activar un ratón en el teclado, y un teclado en pantalla. Y vas a necesitar las dos a la vez, o ir cambiando de una a otra para hacer primero la selección de foco con el ratón auxiliar, y luego poder introducir por teclado el PIN de acceso a la red WiFi.

Figura 6: FAIL de Diseño. ¿Sabrías decirme qué opción tiene el foco?
¿Crees que es una buena decisión de diseño UX en las opciones de accesibilidad ésta
para gente que va buscando Invert Display Colour o Colour Filters porque no ven bien?

Lo curioso de ese menú es que para saber qué opción tienes seleccionada - se va moviendo el foco entre las diferentes opciones co el Tabulador - tienes que tener una vista de águila y el brillo de la pantalla a tope, ya que los desarrolladores de Apple han puesto un sutil brillo morado o azul, o yo qué sé, para que sepas qué opción tiene el foco en este menú. De hecho, si miras la pantalla, tendrás que fijarte varias veces para saber qué opción está con foco. Cuando te acostumbras, la seleccionas con el Espacio y listo, ya tienes ratón en pantalla.

Figura 7: Con este teclado se pueden introducir datos usando el ratón alternativo.

El ratón se maneja con las teclas 789 arriba, UO, al medio, JKL abajo, y el clic es la I. Va a la velocidad que va, pero ya puedes moverte por pantalla ya hacer clic en el iframe de la web del portal cautivo para poder introducir el PIN. Para ello, vuelves a desactivar el ratón auxiliar, o lo introduces con el teclado en pantalla. Con la velocidad del ratón auxiliar, y la introducción de la URL para descargar el servidor, tuve que ir activando y desactivando constantemente el ratón auxiliar, pero al final conseguí llegar a la web de descarga del servidor y bajar el software para mi MacOS.

Configurando el servidor para el ratón en iOS

Saber el software qué te tienes que bajar no es complicado. Basta con que te bajes una de las varias apps que están aprobadas en AppStore para dar ratón remoto vía WiFi y cuando la ejecutes lo primero que te va a decir es de qué URL te tienes que descargar el software. Para ello, con que arranques la app en tu iPhone, te va a guiar en cómo configurarlo.

Figura 8: Apps de remote mouse en AppStore

Por supuesto, tienes que desactivar el FileVault, y luego configurar el Firewall para permitir tráfico entrante en tu MacOS por HTTP para el puerto del servidor que te indique la app, y luego necesitas que funcione la red WiFi suficientemente rápido.

Figura 9: Configuración de servidor de WiFi Mouse en IPv4 & IPv6 

Por supuesto, si tienes ese software, lo mejor es que protejas el acceso a este servidor con una contraseña, así que tienes que configurar la opción en las opciones del servicio en tu MacOS, tal y como se ve en la imagen.

Figura 10: WiFi Mouse te da un TouchPad en iOS para manejar MacOS

El resto, es fácil, manejar el MacOS desde tu app como si fuera un TouchPad remoto, pero la aventura de configurarlo por culpa del portal cautivo y de las opciones de "accesibilidad" de MacOS hizo que tardara más de lo deseado. Eso sí, al final lo pude hacer.

Lecciones aprendidas

La primera de todas es que la venta de Portal Cautivo necesita tener la posibilidad de ser accesible mediante teclado, algo que no es posible y Apple debería arreglar. La segunda es que las opciones de accesibilidad de las webs, especialmente de las de los portales cautivo, son muy importantes en cualquier desarrollo que se haga en estos entornos. La tercera es que Apple debería arreglar la forma en la que presenta el elemento seleccionado en las opciones de accesibilidad, sobre todo teniendo en cuenta que va a venir gente con visibilidad reducida - como yo que ya tengo que llevar gafas para leer de cerca -.

Y la última, y más importante, que ya tengo todo pre-configurado para la próxima vez, así que si tienes un MacOS, no viene mal que lo pruebes un día, lo dejes preinstalado y te ahorras un problema en el futuro - sobre todo si lo usas para dar charlas como yo -. Ahora voy a mirar lo del Remote BlueTooth Mouse en iPhone a ver cómo se puede hacer. Ya os contaré.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)


No hay comentarios:

Entrada destacada

Programa de Especialización "Inteligencia Artificial para Expertos en Ciberseguridad" 2ª Edición.

Hoy, en medio del verano, os traigo información de la 2ª Edición del   Programa de Especialización  de "Inteligencia Artificial para Ex...

Entradas populares