The problem. Location spoofing is fairly simple for most Android apps. It's done either by using Xposed modules such as XPricyLua or by using a location spoofing app such as Fake GPS Location or even both. But few sophisticated apps such as WeChat or GPS Info & NMEA Logging will anyway detect your real location even if you use an Xposed module or a FakeGPS app or even both. It happens because they utilize hardware level SDK (e.g. BaiduLocationSDK) and will relay on NMEA sentences rather than LocationManager and FusedLocationProvider APIs. There's a related post on stackoverflow that haven't been resolved.

Spoofing methods I have tried and they haven't worked (even on rooted Android):

  • Xposed Modules such as XPrivacyLua and LocationInjector (apps see NMEA sentences from real location)
  • Anything using Developer options, mock location app (Fake GPS location, MockGeoFix, Bluetooth GPS Provider)
  • Fused location provider spoofing with apps using both mock location and Xposed module (Mock Locations (fake GPS path))
  • IP geolocation spoofing (VPN)
  • GPS provider spoofing & IP geolocation spoofing
  • geo nmea and geo fix commands (worked on emulator, MockGeoFix doesn't show NMEA sentences)

Ideas. Some GPS-over-bluetooth/network/serial apps such as GNSSTool or GPS Connector almost do the work. They are able to receive NMEA sentences from other hardware devices (e.g. Android phone) or even replay them from nmea-files BUT but WeChat and GPS Info & NMEA Logging doesn't see satellites and NMEA sentences anyway (as mock location app selected).

The question. Are there any other applications, modules (Xposed, Magisk), methods or ideas to spoof location in apps relaying on NMEA sentences on a physical Android 8.1 phone?



You must log in to answer this question.

Browse other questions tagged .