¿Qué es la Mock Location API?
Android, desde sus primeras versiones, proporciona una API oficial para desarrolladores que permite inyectar localizaciones simuladas. Esta funcionalidad se creó para pruebas de apps de mapas, navegación o servicios basados en localización (LBS, Location-Based Services). Al activarla, cualquier aplicación con los permisos adecuados puede proporcionar coordenadas GPS falsas al framework del sistema.
El flujo general es:
-
Activar el modo desarrollador
En el dispositivo Android, se debe habilitarOpciones de desarrollador
y seleccionar una app comoAplicación de ubicación simulada
(Select mock location app
). -
Uso de la API
Mediante la claseLocationManager
oFusedLocationProviderClient
, la app establece localizaciones ficticias que sobrescriben la señal GPS real del dispositivo.
Arquitectura general
El mecanismo básico se compone de los siguientes elementos:
-
Permiso de localización (
ACCESS_FINE_LOCATION
oACCESS_COARSE_LOCATION
) para recibir/inyectar datos de localización. -
Permiso de ubicación simulada (
android.permission.ACCESS_MOCK_LOCATION
en dispositivos con API <= 22).
Nota: A partir de Android 6.0 (API 23), este permiso se gestiona desde el modo desarrollador. -
Un provider de localización registrado como
mock
medianteLocationManager.addTestProvider
.
Ejemplo práctico: GPS-Spoof
El repositorio GPS-Spoof es un proyecto Android que demuestra cómo establecer coordenadas falsas. El flujo es el siguiente:
1. Configuración del Provider
2. Inyección de coordenadas
Este fragmento reemplaza la señal GPS con coordenadas arbitrarias. La clave es que el provider debe estar habilitado como test provider, lo que requiere privilegios de mock location
.
Demo
Limitaciones y detección
Muchas apps de seguridad, banca o juegos basados en geolocalización (como Pokémon Go) implementan mecanismos para detectar localizaciones falsificadas. Algunas contramedidas comunes incluyen:
-
Verificar la integridad del provider: comprobar que no haya
mock providers
activos. -
Validar inconsistencias: por ejemplo, si la red Wi-Fi o la IP pública indican una ubicación distinta.
-
Detectar apps de spoofing conocidas mediante escaneo de paquetes instalados.
Un bypass típico para evadir estas restricciones implica rootear el dispositivo o modificar el framework de Android para inyectar localizaciones directamente a nivel del sistema (por ejemplo, usando módulos Xposed).
Conclusión
Manipular la localización GPS es una técnica clave para auditar apps dependientes de la posición geográfica. La Mock Location API de Android ofrece un punto de entrada sencillo y documentado, aunque cada vez más apps implementan controles anti-spoofing. Para bypass más avanzados, se requiere acceso root y herramientas como Xposed o Magisk.
Comentarios
Publicar un comentario