2 puntos por GN⁺ 2024-11-13 | 1 comentarios | Compartir por WhatsApp
  • Desde iOS 18.1, los AirPods Pro 2 pueden usarse como audífonos, pero por las restricciones regionales los usuarios con pérdida auditiva en India no podían usar de inmediato la función principal
  • Las condiciones de restricción abarcaban varios frentes, como residir en un país compatible, usar iOS 18.1 o superior y firmware 7B19 o superior; el dispositivo podía determinar la ubicación combinando IP, configuración regional, GPS, red móvil e información de ubicación por WiFi
  • Manipular el proxy y usar la simulación de CoreLocation de Xcode no funcionó, y por las pistas en los logs de locationd y la configuración, parecía que la ubicación simulada no se usaba para determinar el dominio regulatorio
  • Al final se hizo un experimento de jaula de Faraday para imitar el entorno WiFi de Menlo Park, California, con datos de Wigle y un ESP32, reduciendo además las señales cercanas con una caja forrada de aluminio y un microondas
  • Una vez activada, la función Hearing Aid se sincronizaba con la cuenta de iCloud y podía usarse también en otros dispositivos; la tarea clave que quedaba era definir un procedimiento reproducible para habilitar esta función restringida a usuarios reales

Restricción regional de la función de audífono en AirPods Pro 2

  • Justo después de la actualización a iOS 18.1, se compraron unos AirPods Pro 2 para un abuelo con pérdida auditiva, pero Apple limitó la función Hearing Aid a Estados Unidos y algunos otros países, así que en India era prácticamente imposible usarla
  • Los audífonos convencionales pueden costar desde ₹50,000 hasta más de ₹8L, según su capacidad de ajuste
  • Apple promociona que la función de audífono de los AirPods puede compensar la audición hasta 60dbHL, especialmente alrededor de las frecuencias del habla
  • Si se estaba en una ubicación compatible, se tenían AirPods Pro 2 y se usaba iOS 18.1 o superior junto con firmware 7B19 o superior, la pantalla de esa función aparecía en la app Health
    • Si la función se “activaba” en un dispositivo con iOS 18.1 o superior, también podía habilitarse en dispositivos con versiones más antiguas, como firmware 7A294

Cómo determina iOS la ubicación

  • La investigación inicial mostró que los dispositivos iOS podían determinar el país y la región del usuario por varias vías
    • Enviando una solicitud GET a https://gspe1-ssl.ls.apple.com/pep/gcc para obtener un código de país basado en la ubicación por IP
    • Revisando la configuración regional del Apple Store
    • También podía tomar como referencia la configuración regional del dispositivo, la zona horaria y el idioma
  • En dispositivos con GPS y red móvil, también era posible una determinación más directa de la ubicación
    • Ubicación basada en la señal GPS
    • Determinación por red móvil comparando MCC/MNC con una base de datos interna
  • Para reducir el alcance del experimento, se usó un iPad de 10.ª generación modelo WiFi sin conectividad celular
    • Falsificar GPS y antenas celulares tampoco era imposible si se construía una jaula de Faraday, pero requería mucho más trabajo

Elusión fallida: proxy y simulación de ubicación

  • Primero se cambió la configuración regional y el país en iOS, y se hizo pasar el tráfico de red del dispositivo por un proxy en una laptop para que la respuesta del endpoint de geolocalización pareciera US en lugar de IN
  • También se intentó falsear CoreLocation con la función de ubicación simulada de Xcode
  • Este método no funcionó
    • Por el certificate pinning, varias apps y pantallas de configuración no pudieron conectarse a los servidores de Apple
    • Era posible que también se hubiera bloqueado la conexión al servidor de Apple necesaria para activar la función, aunque eso no se verificó por completo
  • En los logs de la consola aparecían mensajes que sugerían que la función debía activarse, pero en la práctica la pantalla de configuración de Hearing Aid no se abría

Pistas reveladas en locationd

  • Al revisar los logs al día siguiente, aparecieron mensajes que indicaban que el dispositivo seguía considerando que no estaba en Estados Unidos, aun con IP y configuración regional falseadas
  • Se extrajeron los binarios countryd y locationd para buscar cadenas relacionadas
  • Dentro de locationd se encontró una configuración booleana llamada AllowSimulatedLocation, cuyo valor por defecto era 0
  • También se encontró el getter skipUpdatingRegulatoryDomain, que aparentemente se usa en sendUpdateToRDIfAllowed para decidir si se actualiza el dominio regulatorio
  • Se llegó a la conclusión de que simular CoreLocation con las herramientas integradas de Xcode no servía para la determinación del dominio regulatorio de Hearing Aid
    • La función Hearing Aid podía controlarse desde macOS, pero la activación tenía que hacerse desde un dispositivo iOS
    • Seguía existiendo la posibilidad de modificar binarios en macOS con SIP desactivado para activar la función directamente, pero esa vía no se exploró

Cómo falsear la información de ubicación por WiFi

  • Los dispositivos modernos pueden triangular la ubicación a nivel de ciudad combinando los SSID WiFi cercanos, las direcciones MAC de routers y dispositivos, y el GPS
  • Esa era también la razón por la que un iPad solo con WiFi podía mostrar una ubicación precisa en apps incluso sin GPS ni red celular: posicionamiento por ubicación WiFi
  • Se creó una cuenta en Wigle, una de las bases de datos públicas de ubicación WiFi, para obtener datos de Menlo Park, California
  • Se hizo un fork y modificación de Skylift, configurando un ESP32 para transmitir rápidamente una rotación de SSID WiFi
    • Así, el ESP32 imitaba el entorno inalámbrico de otra región
    • La cantidad de SSID en rotación se aumentó de 10 a 100
  • Como alrededor de Lagrange Point había muchas redes WiFi reales provenientes de casas cercanas, si no se debilitaban o sobrepasaban esas señales, el iPad podía seguir reportando otras redes del entorno

Experimento con jaula de Faraday y microondas

  • La primera jaula de Faraday se construyó envolviendo una caja de cartón corrugado con papel aluminio
  • Dentro de la caja se colocaron un ESP32 transmitiendo SSID de California y el iPad, que estaba conectado a una laptop para acceso a internet y logs de consola
  • Aprovechando que tanto el WiFi como el microondas usan la banda de 2.4GHz, se intentó bloquear las señales persistentes de las redes cercanas haciendo funcionar un microondas con fuga a máxima potencia
  • Se preparó un script para reiniciar el iPad y activar la red cinco minutos después de meterlo en la caja
  • En el primer intento, el iPad seguía identificado como región IN, pero tras ajustar varias veces la jaula de Faraday, la interferencia del microondas y el proceso de reinicio, finalmente apareció en la consola el mensaje de cambio de región esperado
  • Después de eso, al sacar el iPad y abrir los AirPods, apareció de inmediato el proceso de configuración de Hearing Aid

Procedimiento reproducible y plan de activación masiva

  • Después de probar el concepto, se empezó a trabajar en un procedimiento más estable y reproducible para habilitar la función a personas que la necesitaban
  • Tras varios días de experimentos, se construyó una jaula de Faraday más permanente
  • También se planeó operar un pequeño campamento de activación en Lagrange Point para personas en Bengaluru a quienes les serviría usar los AirPods como audífonos
  • La participación y las actualizaciones se recibirían por una cuenta de X y un hilo de publicaciones

Comportamiento después de la activación

  • La función Hearing Aid parecía funcionar como un preset de ecualizador enviado a los AirPods, reemplazando el modo de transparencia
  • Una vez activada la función Hearing Aid, el feature flag se sincronizaba con la cuenta de iCloud
  • Gracias a esa sincronización, no era necesario repetir el mismo proceso en todos los dispositivos para poder usar la función

1 comentarios

 
GN⁺ 2024-11-13
Comentarios en Hacker News
  • La función de Hearing Aid en realidad parece ser un preset de ecualizador enviado a los AirPods, y al parecer reemplaza el modo transparencia
    Si Apple no lo hubiera promocionado como “audífono” ni hubiera usado terminología médica, probablemente los reguladores no habrían intervenido. Otros audífonos totalmente inalámbricos con ecualizador paramétrico y modo transparencia también podrían hacer lo mismo
    A cambio habrían perdido la ventaja de marketing, aunque probablemente ese mismo era un gran riesgo calculado. Estos dispositivos tienen una cantidad enorme de capacidad de procesamiento y flexibilidad. Incluso los productos de menos de 10 dólares con el infame SoC de JieLi son básicamente computadoras de 32 bits a 160 MHz en cada oído
    Sorprende que todavía no haya audífonos totalmente inalámbricos que presuman firmware de código abierto, y parece que en comunidades chinas y rusas sí ha habido algo de trabajo de personalización

    • Es un problema mucho mayor que simplemente “perder la ventaja de marketing”. Apple no se mueve en el vacío, y Sony y Bose también apuntan a ese mercado, con altas probabilidades de impulsar su marketing a su manera
      Si Apple solo dijera algo como “funciona más o menos como audífono”, quedaría en una desventaja importante frente a otras marcas que podrían poner carteles en lugares muy visibles de los puntos de venta. Claro, Apple todavía podría ganar en ventas en línea o entre gente que no necesite tanta confiabilidad
      https://electronics.sony.com/otc-hearing-aids
    • Está PineBuds Pro: https://pine64.com/product/pinebuds-pro-open-firmware-capabl...
    • Para quien tenga curiosidad, TWS significa “True Wireless Stereo”
      https://audiochamps.com/what-does-tws-mean/
      O sea, audífonos Bluetooth
    • También podrían haber estado apuntando a quienes usan FSA/HSA para gastos médicos
    • Si esa fuera la única preocupación, sería una buena noticia. No parece muy probable que Apple vaya a desactivar esta función
      Me preocupaba que hubiera otros temas regulatorios, como el volumen, pero no se me ocurre nada específico
  • Hay una parte que dice que “como WiFi y los hornos de microondas operan en la misma frecuencia de 2.4 GHz, hicieron funcionar un microondas con fuga a máxima potencia para bloquear la señal de red persistente en el aire”, pero curiosamente WiFi está diseñado para evitar este tipo de interferencia
    Los hornos de microondas no emiten potencia en los cruces por cero de la corriente alterna, y durante ese intervalo no hay señal en el aire que interfiera con las ondas de radio. WiFi primero escucha antes de transmitir para evitar chocar con otros dispositivos, y la señal del microondas es suficiente para activar esa detección
    No recuerdo si, por ser de media onda, el microondas genera ventanas de 1/120 de segundo 60 veces por segundo, o si solo hay una ventana de umbral alrededor del cruce por cero donde la potencia es demasiado baja para interferir. Aquí parece bastante probable que el microondas en realidad no haya contribuido mucho

    • Más allá de lo que diga el análisis teórico, al menos con una combinación de microondas y router sí he podido reproducir el fenómeno de que el microondas interfiere con la señal WiFi
      Aunque otras veces no hubo ningún efecto perceptible
    • Me da curiosidad por qué el microondas no emite potencia en el cruce por cero de la corriente alterna. ¿Está diseñado para modular la señal de 2.4 GHz sobre 50/60 Hz?
    • Entonces, ¿dos microondas con fuga conectados a fases eléctricas distintas podrían bloquear el WiFi de 2.4 GHz?
    • En teoría sí, pero en la práctica la idea de que los microondas interfieren con WiFi está tan difundida que hasta salió en XKCD
  • En Reddit, alguien comentó que se puede acceder directamente a la función de prueba auditiva con una URL especial
    x-apple-health://HearingAppPlugin.healthplugin/HearingTest
    Me pregunto si también se podrá encontrar un deeplink similar para activar el modo Hearing Aid
    https://www.reddit.com/r/AirpodsPro/comments/1gftyqo/is_the_...

    • También investigué esa parte, pero no encontré nada
      Hasta cierto punto, el método actual simplemente terminó siendo el enfoque más fácil
      Seguro hay algo. Apple cambió los esquemas de manejadores de URL en iOS 18, así que los repositorios viejos que hacían referencia a esto ya no funcionan
  • Soy Rithwik, uno de los autores. Responderé preguntas si tienen alguna

    • Es un hack realmente genial y me divertí mucho leyéndolo. Si tuviera que hacer una pregunta, sería qué planean hacer después con la nueva jaula de Faraday
    • Me confunde un poco cómo manejan la región. Tengo un iPhone comprado en Canadá, cuenta de Apple canadiense, tarjeta de crédito canadiense y dirección de facturación canadiense, además de la App Store configurada en Canadá, pero llevo viviendo en España varios años
      Para Apple sigo siendo totalmente “canadiense”. No veo nada de las funciones de tiendas de apps de terceros restringidas a la UE, y sí puedo acceder a funciones como Apple Intelligence, que no se puede usar en la UE
      No puedo probar la función de audífono porque no está disponible ni en Canadá ni en España, pero me intriga en qué se diferencia esta restricción regional de audífono de otras funciones de restricción o activación por región de Apple
    • El artículo estuvo excelente. Ver este tipo de hackeo casual sobre cómo funcionan las apps de iOS se siente como un mundo completamente distinto, sobre todo porque siempre pensé que iOS estaba bastante cerrado
      Me gustaría saber cómo empezaron, si hay materiales que recomienden, y también, ya que dijeron que al final no terminaron comprando unos audífonos muy caros, qué audífonos usan realmente o cuáles les gustaría comprar
    • Es un hack muy bueno. Me sorprendió un poco que realmente hubiera que hacer hasta spoofing de red WiFi, pero es impresionante lo que terminaron descubriendo
    • Me gustó mucho leer el artículo. Me da curiosidad qué tan satisfechos están sus abuelos con la función de audífono. Si de verdad funciona bien y cómo anda la duración de la batería
  • Me pregunto si esta configuración se restablece después de cierto tiempo, o si basta con hacerlo una sola vez.
    Me preocupa que el iPad o los AirPods decidan que han estado demasiado tiempo en India y quiten la función.

    • Soy uno de los autores. Esta es una configuración que solo hay que hacer una vez.
      Una vez que se activa la función, se establece una marca en la cuenta de iCloud, así que seguirá funcionando sin importar a dónde viajes. Al mismo tiempo, se envía un perfil de ecualización al modo transparencia de los AirPods y se activa la función de audífono.
      Una vez hecho, se mantiene a menos que restablezcas los AirPods.
      Pero hay una curiosidad interesante. Activé esta función en los AirPods de otra persona, y si en el dispositivo o la cuenta de esa persona la función no aparece como “disponible”, esa persona no podrá ajustar la configuración desde su propio dispositivo.
  • Este caso muestra muy bien por qué el software libre es tan importante. El bloqueo regional aquí es una práctica hostil que no tiene ningún sentido.
    Si el software o firmware fuera libre y abierto, se podría parchear para eliminar o desactivar el bloqueo regional. Incluso es muy probable que esa restricción nunca se hubiera incluido.

    • En el caso general, las restricciones regionales sí tienen sentido.
      En los países aprobados, los reguladores tendrían que haber aprobado esto como un dispositivo de asistencia médica. Si se pudiera vender un dispositivo de asistencia médica sin aprobación, también podrían venderse bajo ese nombre cosas que realmente podrían lastimar o matar a la gente.
      El problema aquí es que este caso parece una función de asistencia que no causa daño, así que prohibirla se ve ridículo. Pero si la regulación no se aplica, entonces no sirve de nada.
      Al final, puede que los reguladores de otros países sean lentos o, en el peor de los casos, que Apple ni siquiera haya solicitado la aprobación.
  • Me pregunto si alguien sabe qué hace realmente el modo Hearing Protection. No está disponible en Noruega ni fuera de Norteamérica.
    Ya había usado antes los AirPods Pro 2 para proteger mis oídos y funcionaban bastante bien. Me pregunto si es solo que la expresión “Hearing Protection” se puede usar únicamente en EE. UU., o si realmente es una función mejor que la cancelación de ruido normal de los Pro 2.

    • Lo más probable es que lo único nuevo sea la app de prueba auditiva y el marketing. Los AirPods ya tenían estas funciones.
      Por cómo suena Hearing Protection al funcionar, parece compresión multibanda; es decir, divide el rango de frecuencias audibles en varias bandas y aplica compresión por separado a cada una. Pero también da la impresión de que esto ya lo hacían desde antes.
  • Me pregunto si esto realmente es distinto del modo transparencia personalizado de Accesibilidad que existía antes del anuncio de la función de audífono.
    Se podía usar el audiograma guardado en la app Salud. Pero el modo transparencia personalizado sonaba bastante mal, como un filtro peine.

    • Sí. No parece ser diferente. He usado esa función desde marzo.
  • Está increíble. En i3Detroit están construyendo una jaula de Faraday del tamaño de un walk-in closet. Claro, como estamos en Estados Unidos, no hace falta para este hack en particular, pero hay montones de razones divertidas para tener una.
    La razón principal es que muy cerca hay un transmisor de WOMC con una EIRP de 135,000 watts. Eso se mete en todo tipo de equipos y hace más difíciles otras mediciones de radiofrecuencia. Para cosas como alinear amplificadores, conviene fijar primero una línea base sólida en un entorno silencioso antes de agregar posibles causas como la intermodulación.
    También puedes depurar equipos inalámbricos como WiFi, Bluetooth, etc., sin montones de nodos cercanos. Puedes filtrar la salida del sniffer, pero es más divertido filtrar la entrada misma.
    Incluso podrías encender una red móvil 1G o 2G sin preocuparte por licencias de frecuencia. También podrías practicar técnicas agresivas de WiFi que podrían interferir con la red existente del hackerspace.
    Podrías jugar con un spoofer de GPS en una zona sin FCC, o hacer experimentos divertidos de forma responsable. Incluso podrías encerrar un iPhone adentro y ver si se reinicia solo.

    • Sí. Ya hasta sorprende que haya vivido todo este tiempo sin una jaula de Faraday.
      Me da muchísimas ganas de meter dispositivos adentro y llenar el aire interior de radiofrecuencia sin preocuparme por licencias.
      De hecho, vi una jaula de Faraday a escala real en el Indian Institute of Science, y me dio gusto ver que su estructura y enfoque eran parecidos a los nuestros.
  • En este caso, parece que el certificate pinning también se podría resolver con bastante facilidad. Bastaría con usar un proxy o una VPN. Aun así, todo el alboroto de la jaula de Faraday está muy bueno.

    • Creo que hace falta explicar cómo una VPN resolvería el problema del certificate pinning. El autor ya estaba modificando el tráfico HTTP/S del iPhone mediante una conexión de red con proxy, y según entiendo una VPN no permite falsificar respuestas HTTPS válidas usando un certificado del servidor fijado.
    • Al final eso fue lo que hicimos. Usamos una VPN comercial y le dimos internet al dispositivo por cable USB.
      Probablemente también habría funcionado usar Tailscale en algún VPS.
    • No veo cómo usar una VPN haría más fácil montarte un ataque de intermediario a ti mismo para modificar la respuesta de ese GET.