What Are GPS Spoofing Apps Actually Doing?

App Ninjas
7 min readJan 20, 2017

--

There a lot of GPS Spoofing apps on the market, each looking a little different from the other, but almost all doing pretty much the same thing. In Android, there is only one way to spoof your device’s GPS (without rooting), and that’s to use Android’s built in Mock Location API located in Developer Options. In Android 6.0 and above you select the specific app you would like to use. In older versions, it’s just a simple check box that enables mock locations mode for any app on your device.

So once you select a mock location app, and start it up, what happens? What data is that mock location app mocking for you? In short, there are 5 variables that the mock location API asks for to mock your location: latitude, longitude, altitude, speed, and accuracy. Typically, most apps just change the latitude and longitude values to change your GPS location to some place in the world. But what about the other 3 values (altitude, speed, and accuracy)? Surprisingly, almost all GPS Spoofing apps set these values to some constant number, whether it’s 0, 1, or some random number, it’s a value that remains the same. Some apps do give the user the option to set these values via settings, but even then, the number never changes when the user is actively using the app and changing their location. The only exception to this, is GPS JoyStick, it is the only app in the Google Play store that actually mocks realistic, always updating data for all necessary GPS values.

GPS JoyStick is the only app in the Google Play store that actually mocks realistic, always updating data for all necessary GPS values.

Real GPS

When your real GPS reports values to your phone, it returns latitude and longitude to pinpoint your location, it returns your current altitude and speed if you’re moving, and it returns an accuracy (in meters) of how accurate it believes those values are. Even the best phones rarely return an accuracy of 1 meter and they definitely don’t return a constant, never changing speed or altitude value. Actually, all values fluctuate every second when you’re moving. And even when standing still, your latitude and longitude values don’t remain the same. This is because your GPS is constantly attempting to pinpoint your location and it changes slightly every time. Furthermore, when you move from one location to another, because your GPS is always fluctuating your actual location, you never travel in a straight line. If you were to imagine traveling from one end of a road to the other, the GPS would report a subtle zigzag from start to finish. Here’s what real GPS values look like when being reported through a typical GPS reader app:

Device GPS While Stationary:

Device GPS While Stationary

Device GPS While Moving:

Device GPS While Moving

Spoofing Apps

So if that’s what a real GPS looks like, what do spoofing apps look like? Sadly almost all GPS Spoofing apps show a constant reading when not moving and even when the app is simulating movement, only the latitude and longitude values update. If you are skeptical of your favorite spoofing app, download any GPS reading app and try it yourself. Here’s an example of what I mean:

Typical Spoofing App While Stationary:

Typical Spoofing App While Stationary

Typical Spoofing App While Moving:

Typical Spoofing App While Moving

Notice how the altitude, speed, and accuracy never change! And to make it more ironic, the speed value remains at 0 even when you are moving! And you can probably guess, if the spoofing app simulates any type of movement for you, whether it’s through a joystick or route option, it would report locations in a perfect straight line from the starting point to the end point, which is definitely not the way a real GPS works.

GPS JoyStick

So if that’s the case, then the majority of apps on the market fail to satisfy how real GPS reports values as mentioned above. Luckily for us, there is one app that actually emulates what a real GPS should report: GPS JoyStick

It is the only app in the Google Play store that actually mocks realistic, always updating data for all necessary GPS values. And all of those values are customizable via the Settings page. In almost all cases, the default values work perfectly for simulating real GPS values. To top it off, the slew of features it comes with make it pretty much the only GPS Spoofing app that you need for Pokemon GO. From favorites to routes for teleporting and auto egg hatching/walking, to the teleport dialog for sniping with Pokesniper/Pokezz or any latitude-longitude coordinates, there isn’t any app that comes close to having all the features you need to play Pokemon GO. It’s a free app and available now on the Google Play Store. And of course, here’s what GPS JoyStick looks like when mocking your location:

GPS JoyStick While Stationary:

GPS JoyStick While Stationary

GPS JoyStick While Moving:

GPS JoyStick While Moving

Look familiar? You may have noticed, there were slight fluctuations in latitude, longitude and accuracy while not moving. And when it was simulating movement, the speed and altitude also started changing. This is exactly how your device’s GPS works. As it stands, there are no apps out there that emulate a real GPS to this degree and detail. Do download and test this yourself if you are curious.

But Does It Matter?

Now this begs the question, does any of this matter? If all you need is latitude and longitude to change your location and it successfully works to trick whatever app you want to trick, then does it matter that the app is also reporting some random (never changing) numbers for altitude, speed and accuracy? The answer to that is, it depends. For some apps no, it doesn’t matter, but for some others, like Pokemon GO for instance, it probably does matter, a lot.

Pokemon GO took the world by storm, it was the first location based augmented reality game that truly appealed to the masses and gained popularity extremely quickly. Forcing players to physically walk to a specific location to catch virtual creatures is no easy task, but Pokemon GO did it. But with all games, there are always people who don’t have the ability, time or option to play as intended. For Pokemon GO, many players simply did not live near places required to truly enjoy the game. As a result, we saw a flood of GPS Spoofing apps hit the app stores to satisfy the needs of many trainers who just weren’t able to travel to places to capture Pokemon.

Niantic, the company that developed Pokemon GO, is no stranger to GPS Spoofing apps since they had to deal with them in their first location based game: Ingress. With that said, it may only be a matter of time before they start implementing similar techniques to catch spoofers in Pokemon GO. But there must be a reason they have held off on banning spoofers if they have the methods to detect them. My guess is, they don’t have a full proof method of detecting spoofers and instead rely on observing data and behaviors. In other words, if they see location data from a player that always returns the same altitude no matter there they are in the world, they can probably discern that they are spoofing. The same goes for speed and accuracy values. It could be that Niantic is waiting to capture enough data to catch spoofers with 100% accuracy as they probably don’t want to deal with banning legitimate paying players and dealing with the backlash that would follow.

So What Should We Do?

Obviously, the safest bet is to play as intended and avoid GPS Spoofing apps all together. However, as mentioned before, for many players that is simply not an option to truly enjoy the game and experience. In this case, the best alternative is to use an app that emulates GPS values like a real GPS would, such as GPS JoyStick, and to spoof in a way that would emulate how you would play the game in real life. In other words, you move in reasonable speeds, stick to the road/path and don’t teleport far distances unless the appropriate amount of time has passed (i.e. if your last logged in location in Pokemon GO was San Fransisco and you want to teleport to New York, then you should wait ~7 hours before teleporting and reopening the game). So try out GPS JoyStick today if you haven’t already, because it’s free, smart and might just be the safest option out there!

--

--