Suplantar la ubicación de red de Apple (gs-loc) en iOS: Guía completa para Surge, QX, Loon y Stash

Aprende a modificar el servicio de ubicación de red de Apple (gs-loc) para suplantar la ubicación de tu dispositivo iOS usando herramientas proxy como Surge, Quantumult X, Loon y Stash.

Suplantar la ubicación de red de Apple (gs-loc) en iOS: Guía completa para Surge, QX, Loon y Stash

El servicio de ubicación de red de Apple (gs-loc) determina la ubicación aproximada de tu dispositivo basándose en puntos de acceso Wi-Fi cercanos y torres de telefonía móvil. Esto es distinto de la ubicación basada en GPS y se utiliza cuando las señales GPS son débiles o no están disponibles. El proyecto de código abierto Yu9191/wloc proporciona una forma inteligente de interceptar y modificar las respuestas de gs-loc.apple.com, suplantando efectivamente tu ubicación de red en dispositivos iOS.

Esta guía cubre todo lo que necesitas saber: cómo funciona, cómo configurarlo con varias herramientas proxy y cómo usar el acceso directo complementario para cambiar de ubicación con un solo toque.

¿Por qué suplantar la ubicación de red?

Suplantar la ubicación de red es útil para:

  • Probar aplicaciones basadas en ubicación sin moverte físicamente.
  • Evitar restricciones geográficas que dependen de la ubicación de red (no solo de la IP).
  • Privacidad: evitar que las aplicaciones conozcan tu ubicación real cuando el GPS está apagado.

A diferencia de la suplantación de GPS (que requiere jailbreak o hardware especial), este método funciona en dispositivos iOS estándar con una herramienta proxy instalada.

Cómo funciona

El proyecto consta de dos scripts principales:

  1. wloc.js — Intercepta las respuestas de /clls/wloc (el endpoint de ubicación de Apple), analiza la respuesta protobuf y reemplaza las coordenadas con valores definidos por el usuario.
  2. wloc-settings.js — Intercepta las solicitudes a /wloc-settings/save y escribe las coordenadas deseadas en almacenamiento persistente ($persistentStore).

Cuando usas el selector web (o el acceso directo), envía una solicitud a gs-loc.apple.com/wloc-settings/save?lon=x&lat=y. El módulo proxy intercepta esto y almacena las coordenadas. En la siguiente solicitud de ubicación de red, wloc.js lee estas coordenadas almacenadas y parchea la respuesta protobuf antes de que llegue a la aplicación.

Instrucciones de configuración

Requisitos previos

  • Una herramienta proxy: Surge, Quantumult X, Loon, Stash o Shadowrocket.
  • Certificado MITM (Man-in-the-Middle) instalado y confiable para gs-loc.apple.com y gs-loc-cn.apple.com.
  • El proxy debe estar activo (icono de VPN visible).

Paso 1: Suscribirse al módulo

Elige tu herramienta y suscríbete a la URL del módulo correspondiente:

Herramienta URL del módulo
Surge https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.sgmodule
Quantumult X https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.conf
Loon https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.lpx
Stash https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.stoverride
Shadowrocket https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module

Para Egern, puedes usar el módulo de Surge directamente.

Paso 2: Habilitar MITM

En tu herramienta proxy, habilita MITM y agrega gs-loc.apple.com y gs-loc-cn.apple.com a la lista de nombres de host MITM. Instala el certificado CA generado en tu dispositivo iOS y confíalo (Configuración > General > Acerca de > Configuración de confianza de certificados).

Paso 3: Elegir una ubicación

Tienes dos opciones:

Opción A: Usar el selector web (manual)

Abre la página del worker público: https://wloc-spoofer.wloc.workers.dev/ (o tu instancia autoimplementada). Busca una ubicación, mantén presionado en el mapa para soltar un pin, luego toca "Guardar en dispositivo". Las coordenadas se almacenarán en el almacenamiento persistente del proxy.

Opción B: Usar el acceso directo (recomendado)

Instala los dos accesos directos:

Para establecer una ubicación: Abre Apple Maps o Amap (Gaode), mantén presionado un punto, toca Compartir, luego selecciona el acceso directo "wloc Set Location". El acceso directo extrae las coordenadas (manejando la conversión de GCJ-02 a WGS84 a través de un worker) y las envía al proxy.

Paso 4: Verificar

Abre una aplicación que use ubicación de red (por ejemplo, Clima, Mapas) y verifica si aparece la ubicación suplantada. Si no, asegúrate de que el proxy esté activo y MITM esté funcionando.

Problemas de caché en iOS 26+

A partir de iOS 26, Apple introdujo un almacenamiento en caché agresivo en locationd. El sistema puede reutilizar datos de ubicación almacenados en caché incluso después de que el módulo modifique la respuesta WLOC. Si no ves cambios:

  1. Reinicia tu dispositivo — Esto borra la caché de locationd. Activar el modo avión o los servicios de ubicación por sí solo no funcionará.
  2. Flujo de trabajo recomendado:
    • Establece la ubicación deseada mediante el acceso directo o el selector web.
    • Activa el modo avión, desactiva los servicios de ubicación, luego reinicia.
    • Después del reinicio, desactiva el modo avión (mantén Wi-Fi apagado), conéctate a tu proxy (aparece el icono de VPN), luego activa los servicios de ubicación.
    • Abre Mapas para verificar.

Restaurar la ubicación real

Para volver a tu ubicación de red real:

  • Método 1: Desactiva o elimina el módulo. El script deja de interceptar solicitudes y el sistema usa datos reales. En iOS 26+, reinicia el dispositivo para borrar la caché.
  • Método 2: Borra los datos de almacenamiento persistente. El script entra en "modo de paso" cuando no hay coordenadas personalizadas almacenadas y los parámetros del módulo están en valores predeterminados. Ejecuta lo siguiente en el editor de scripts de tu herramienta proxy:
    • Surge: $persistentStore.write(null, "wloc_settings")
    • Quantumult X: $prefs.removeValueForKey("wloc_settings")
    • Loon: $persistentStore.write(null, "wloc_settings")

Luego reinicia el dispositivo.

Autoimplementación del worker

El worker público tiene límites de uso. Para mayor confiabilidad, implementa tu propia instancia en Cloudflare Workers o Pages:

Workers (un clic)

Desplegar en Cloudflare Workers

Workers (manual)

git clone https://github.com/Yu9191/wloc.git
cd wloc/worker
npm install
npx wrangler login
npm run deploy

Pages (manual)

git clone https://github.com/Yu9191/wloc.git
cd wloc/worker
npm install
npx wrangler pages deploy dist --project-name <nombre-de-tu-proyecto>

Después de la implementación, actualiza la URL del worker del acceso directo a la tuya.

Parámetros de configuración

Parámetro Descripción Predeterminado
longitude Longitud objetivo (el selector web lo anula) null (paso)
latitude Latitud objetivo (el selector web lo anula) null (paso)
accuracy Precisión en metros 25
logLevel Nivel de registro info

Prioridad: Almacenamiento del selector web > Parámetros del módulo > Valores predeterminados.

Consideraciones de privacidad

El worker (/api/parse) es un relé puro: recibe un enlace de mapa, sigue redirecciones, extrae coordenadas, convierte GCJ-02 a WGS84 si es necesario y devuelve JSON. No registra, almacena en caché ni guarda ningún dato. Si te preocupa, implementa tu propia instancia usando el código de código abierto.

Limitaciones

  • Solo modifica la ubicación de red (basada en Wi-Fi/torre de telefonía), no el GPS. Si el GPS es fuerte, iOS puede preferir los datos del GPS.
  • Funciona mejor en interiores donde el GPS es débil.
  • El selector web debe accederse a través del proxy (Safari debe enrutarse a través de la herramienta proxy) para que la solicitud de guardado sea interceptada.

Créditos


Con esta configuración, puedes suplantar fácilmente la ubicación de red de tu dispositivo iOS para pruebas, privacidad o desbloqueo geográfico. La combinación de módulos proxy y accesos directos lo hace tan simple como compartir un pin de mapa.

Fuente

Yu9191/wloc: Modificar las coordenadas de retorno de la ubicación de red de Apple (gs-loc) · Compatible con Surge / Quantumult X / Loon / Stash · Acceso directo para configurar/restaurar ubicación con un solo toque