Location Spoofing on Android TV using a VPN

Many streaming services provide content based on your location due to licensing agreements with content providers. If you are in an out of market location or another country, access may be restricted and you will not be able to view content. Using a VPN is one method people use to spoof their location and get around location restrictions put in place by streaming media services.

I have rules on my router to selectively route CBS All Access Traffic to a VPN server in Los Angeles. The CBS All Access streaming service works great on my Amazon Fire TV and Roku Ultra player for on-demand and live TV shows. On these devices, CBS All Access uses the IP address of the VPN server to determine my location. CBS needs to know the my location in order to deliver the local CBS channel for live TV programming. Using a VPN is required for live TV programming if you live in an area considered to be out of market. Out of market areas are usually rural areas or smaller cities.

Android Location Services

Last year, I purchased a Nvidia Shield after reading many positive reviews. I use an Ethernet cable connection from the Nvida Shield to the router for access to the internet. With this setup, CBS All Access works great for on-demand shows when using a VPN connection. However, in order to watch live TV programming on CBS All Access, the Location Services feature must be enabled in the Settings Menu.

How Location Tracking Works

So, how does Google collect WiFi location data? They use you. Or, to be more exact, they use your Android phone or tablet. 

Steven J. Vaughan-Nichols for Networking

The Location Services feature on the the Nvidia Shield Android box works by connecting to your router’s WiFi SSID. Most people usually have the GPS and WiFi features of their phone turned on concurrently. Google is able to determine the approximate location of your router by information it receives when your cellular phone connects to the WiFi SSID. The problem with the Location Services feature on the Android TV box is that it overrides the location spoofing ability of the VPN connection.

The following TD;DR provides a brief summarizes how Android Location Services works:

TL;DR

Android Location Services periodically checks on your location using GPS, Cellular-ID, and Wi-Fi to locate your device. When it does this, your Android phone will send back publicly broadcast Wi-Fi access points’ Service set identifier (SSID) and Media Access Control (MAC) data. Again, this isn’t just how Google does it; it’s how everyone does it. It’s Industry practice for location database vendors.

I encourage you to read the entire article How Google–and everyone else–gets Wi-Fi location data on ZDNet.

Spoofing Wi-Fi Location

Is your Android TV box betraying your location to streaming service providers? If so, what can you do about it?

There are numerous “Fake GPS Location” Apps in the Google Play Store for Android phones. Unfortunately, there are no “Fake GPS Location” Apps available in the Google Play Store for Android TV boxes.

For Android TV box users who like to tinker, the only remedy available is the SkyLift Wi-Fi Geolocation Spoofing Device. The project status on the website states it is under active development. But there have been no updates to the website since I first became aware of the device in September 2018. The last commits to the source code on the project GitHub page were made on 21 February 2019. It does appear work on the spoofing device is continuing.

Alternative Streaming Media Devices

Luckily, for consumers, there are many streaming media devices on the market, such as the Amazon Fire TV and Roku family of streaming devices, that do not require the use of the router’s WiFi signal to determine your location.  Combined with a VPN service like TorGuard, these devices allow one to circumvent location restrictions through the use of a VPN.

Both Amazon Fire TV and Android TV use the Android OS. However, there are some differences between the two. One of the major differences is that Google Location Services aren’t used on the Amazon Fire TV. This makes the Fire TV a good alternative for consumers who prefer the Android OS but want to avoid the issues associated with the Android Location Services feature.

Overcoming VPN Blocks

Due to licensing agreements with content providers, many streaming services now block VPN providers. TorGuard is able to overcome these blocks. To learn more, I encourage you to read my post Why I use TorGuard as my VPN Provider.