Gaming Ingress

by ~Me

I imagine most of you are familiar with the Ingress game, but in case you are not, let me quote Wikipedia for some background:

"Ingress is an augmented-reality massively multiplayer online location-based game created by Niantic, Inc.  The game was first released exclusively for Android devices on November 15, 2012, and was made available for Apple's iOS on July 14, 2014.  The game has a complex science fiction back story with a continuous open narrative, which however is not necessary for playing and enjoying the game.  Ingress has also been considered to be a location-based exergame."

There are two "factions" or teams that are continually working in opposition.  As a quick description for most people I just use "Geocaching with your phone."

The most important part, from the viewpoint of this article, is that it is location based.

To play the game, you need to go to specific places ("portals" in the game).  This can present challenges - time, distance, and accessibility.  In an extreme example, there is a portal within an amusement park that is closed during the winter.  Either you have a connection with someone that gets you in the park (an employee for instance), you break the law (hopping fences - prohibited by game rules), you get a ride in a helicopter (actually done), or you game the game (also against the rules).

How is Location Determined?

In general, there are several choices - GNSS (Global Navigation Satellite System, commonly referred to as "GPS" - Global Position System, the U.S. Department of Defense's version), Wi-Fi triangulation, cell site triangulation, and a combination of the three.  There is another possibility: user data entry either through something like Google Locations or spoofing one of the first three.

The game must be able to determine current position with reasonable accuracy to even start up.  It needs to know current position in order to play the game.  Google Locations is not accepted anymore (it appears it was at one time); electronic position determination is required.

In order to promote walking/bicycling (and likely to avoid lawsuits resulting from accidents), the game prevents any significant gameplay for a period of several minutes after you have been traveling above a speed of about 35 mph.  The timing does seem to have an integrating function (the longer you spend at a higher speed means more time blocked; a few seconds at 40 mph may result in a time block that is unnoticeable).  The delay seems to last 2.5 minutes after a period of highway travel (for instance, after five to ten minutes at 65 mph).

Even if you exit the game before moving and restart at a destination, it seems to apply this time block unless the shutdown time exceeds around 15 minutes.

So, if you are in your car, you drive at some speed likely over 35 mph to the next portal, pull over, wait for the time block to expire, play, and then drive to the next portal.  That's great if there is somewhere to pull over close to the portal.  And you don't mind the constant start/stopping - you have nowhere else to be that day.

There is an alternative.

There is programming in the game that allows time between electronic location fixes.  As you drive by a portal you can turn off location services.  To the game, you will appear to remain still - you then have approximately five minutes to play.  Of course, you may still need to wait out the speed delay, but there is sufficient time to capture a portal, take control, protect it, and link it to numerous other portals.  I've recorded up to five minutes 20 seconds before the game complains about loss of signal.  I don't know if this is related to the program pulling position fix every 20-30 seconds or the loss of signal not being reported for that period.

Of course, when you re-enable electronic location, your position will jump, and even if you were driving under 35 mph, you will likely have the speed delay at the next portal.

Location Limitations

When there are limited GNSS satellites visible and you do not use position enhancement (Wi-Fi and cell site), your position can change significantly.  I've seen this referred to as "jitter' because your pointer (relating your position) will move randomly around the screen.  You can take advantage of this jitter to reach locations that are just outside your reach.  For instance, you're outside a park that closes at night where the portal is just outside your normal reach.  If your position should shift around a bit, suddenly you are there.  Or you could be sitting in a classroom wanting to reach a portal during a boring class.  Inside is even better since the visibility of GNSS satellites is limited.

Remote Machines

Within the game, there is the assumption that you are physically co-located with your device.  But what if that was not true?  For instance, if there was a portal accessible from your home and another from your dorm.  You can't be in both places at once and you certainly can't be in those places while you are in class.

What's the alternative?

Additional machines.  The easy answer would be independent devices (smartphones or tablets) sitting at those locations, connected to power, and connected over Wi-Fi.  You would then connect to them using a tool like TeamViewer.  You shut down the game client on your local device (phone/tablet), connect to the remote device, and start up the game.  You may have jumped a bit of distance in a short time (triggering the speed disable) and have to wait out the speed delay.  You then make your plays, shut down the remote copy of the game, and terminate the remote session.  Repeat as needed.

This could be particularly useful fora valued portal with limited connectivity - if you know someone at the remote location.

One of the game plays is linking three portals together to create something known as "control fields."  The bigger the field - the longer the links - the better.  At the same time, the other faction is trying to prevent you from creating these - or taking them down once created.  Having a remote machine at each of those portals would allow you to quickly rebuild those fields.

Position Spoofing

It is very difficult to spoof your position when the receiver chip (GNSS, Wi-Fi, or cellular) is embedded in your device.  You might be able to trick it by blocking outside signals and setting up Wi-Fi units (setting MAC and SSID and manufacturer) that match another location.  Or you could take your device apart, carefully remove the GNSS chip, get the datasheet, and create a feed that matches the results.

For instance, the chip may provide serial data for communications in a text format (NMEA for instance).

There may be four important wires: Transmit, Receive, Ground, and Power (a.k.a., V+).  Then all you would need is an interface that would feed NMEA "sentences" into the phone.  While it might not be smart to frequently jump great distances (for instance, appearing at a portal in Washington D.C. one moment and then in suburban London, England the next), it would be much less likely noticed if you recorded a route between preferred portals (most mapping applications will let you save routes) that you could replay at a later time when you are unable to make the physical journey.

But what if you don't want to risk destroying your expensive smartphone?

After all, even if the phone is a generation or two old, it is still sellable on eBay or useful as a backup if your current one fails.  Other devices can run Android.  For instance, a standard PC running Windows 10 with the Sun/Oracle Virtual Box or a Raspberry Pi 2 will run Android natively.  The chipset is common in mobile devices.  Another option is an Odroid which runs Android or Ubuntu.  It would then be relatively easy to create an internal "virtual GNSS receiver" program - or wire up a serial interface that looks like a GNSS receiver (remember, all you need is a serial line) to provide this data.

You think it can't be done?  The Stratux device, based on the Raspberry Pi, not only provides aviation data (aircraft positions and weather), but it can be configured with a GNSS receiver to serve current position data up to aviation applications.  How hard would it be to swap the receiver with a program that emulates the receiver's behavior but provides locations you want?

And GSM/GPRS data devices are available on USB dongles.  Or you could get a "MiFi" cellular data device.

Position Jamming

Jamming of GNSS satellite position signals is illegal in the United States (and likely in the rest of the world).  That doesn't mean that it is impossible.  There are firms offshore that will happily sell you a GNSS (or even cellular) jammer.  If you are unlucky, customs will not catch the shipment.  I say "unlucky" because an active jammer will get noticed and will get you fined because they impact aviation safety.  Note the articles included in References.

Having said that, imagine if you had a portal you really wanted to protect.  If you could keep others from getting position data, they would not be able to play the game at the portal (unless they were spoofing location).  A jammer would fit that role.

I may have an article on jamming in the near future.

Additional Accounts

Another means of gaming Ingress is by holding multiple accounts.

This would require multiple devices preferably phones with different numbers since one of the validations Niantic (performs is to your number).  It is not unusual for multiple people to be playing together at the same time (husband/wife and significant-other teams are quite common) so, properly handled, should not be obvious to the game masters.

If you have a device that allows multiple users (a tablet for instance), you could use a throwaway SIM card to create the alternate identity.  Because of the use of MiFi devices and automobiles providing cellular data connectivity, multiple users coming over the same cellular connection is not an oddity.

You could combine multiple accounts with multiple devices - when switching to a remote device, you switch to another identity.  That would make it much more difficult for the company to detect that the two are really just you and that you're jumping around.  To them, "you" are on your local device, and "someone not you" is on the remote device.

One More Trick

The probability of getting a "portal key" for a particular portal (used to link them together) declines rapidly as the number of that portal's keys you hold increases.  To increase your chances, drop the key(s) you currently hold, "hack" the portal, and then pick up the dropped key(s).  You don't even have to wait for the "hack" to complete.

A Word of Caution

During the speed block, hacks fail with "no items returned" but no time delay before you can hack again; recharges and XMP bursts fail without penalty - you don't lose any resources (XM or XMP).  A link can be made but will then evaporate.  Deployed resonators may evaporate or lock up a slot (slot remains empty but you can't fill it).  Mods will evaporate.  Dropped keys will evaporate.  Evaporated items are lost.

If you are not playing the game, these terms will be unfamiliar.  If/when you start the game, they will start to make sense.

When I'm dealing with a speed block, I'll attempt to hack or recharge until I'm sure the block has expired - before I'll perform an action that could lose me something.  If I can't recharge the current portal, I'll work on another.

Obvious Disclaimer

Of course, I would never perform activities in violation of game rules/EULA/ToS.

That could get me thrown out of the game.  Nor would I ever suggest you do so yourself.  The same applies to driving distracted and violating Title 47 of the Code of Federal Regulations (telecommunications) - or their equivalent in your country.

These topics have been presented solely as interesting thought experiments.

Of course, if I do, I will submit the results to this esteemed journal!

References

The game itself: www.ingress.org

Cross Platform Remote Desktop Software: www.teamviewer.com

The Raspberry Pi Project: www.raspberrypi.org

Android on RPi: littlebirdelectronics.com.au/guides/32/run-android-on-raspberry-pi

Sun/Oracle Virtual Box: www.virtualbox.org

Running Android x86 under virtual box (one of many): www.howtogeek.com/164570/how-to-install-android-in-virtualbox

Odroid: www.hardkernel.com

Specification sheet for Trimble's GNSS chip: www.trimble.com/gnss-inertial/pdf/bd982_ds_0411.pdf

RY835AI GNSS and AHRS chipset datasheet: www.reyax.com/Module/GPS/RY835AI/RY835AI.pdf

Stratux aviation weather and traffic receiver: github.com/cyoung/stratux

News Story on GPS Jamming near Newark, NJ Airport: www.nj.com/news/index.ssf/2013/08/man_fined_32000_for_blocking_newark_airport_tracking_system.html

FAA Report on GPS Jamming near Newark, NJ Airport: laas.tc.faa.gov/documents/Misc/GBAS%20RFI%202011%20Public%20Version%20Final.pdf

U.S. FCC Rules and Regulations from the Code of Federal Regulations: www.fcc.gov/wireless/bureau-divisions/technologies-systems-and-innovation-division/rules-regulations-title-47

This guy apparently posted a cheating guide but then took it away: tapion.it/how-to-cheat-on-ingress

Return to $2600 Index