THUGS(red) Wardrive
Sign in Join

Wardriving with WiGLE on Android

The cheapest complete wardriving rig is the phone already in your pocket. WiGLE WiFi Wardriving turns an Android phone into a logger with a GPS, a screen and a battery, and it exports the CSV this site reads. If you have never wardriven before, start here and buy hardware later.

What you need

Phone
Any Android 7 or newer with WiFi and GPS
App
WiGLE WiFi Wardriving — Google Play, or the FOSS build on F-Droid
Power
A car charger. Scanning with the screen on eats a battery in about two hours
Optional
A phone mount, so the phone sits with a view of the sky instead of in a cup holder

Both builds are the same app from the same source; the F-Droid one is free of proprietary components and uses OpenStreetMap for its live view. A WiGLE account is not required — you only need one if you also want to upload to WiGLE itself, which is entirely optional and separate from uploading here.

Set the phone up once

Three settings decide whether your drive is any good. Get these right before the first run, because you cannot fix a thin log afterwards.

1. Turn off WiFi scan throttling

This is the big one. Since Android 9, the system limits how often an app may ask for a WiFi scan — roughly four scans every two minutes — which at 50 km/h means you sample one point every few hundred metres and miss almost everything in between. Turn it off in developer options:

Settings → About phone → tap "Build number" seven times
Settings → System → Developer options → "Wi-Fi scan throttling" → off

The wording varies between manufacturers ("Wi-Fi scan throttling", "WiFi scan throttle"); the effect does not. If your ROM has removed the toggle, the app still works — it just collects considerably less, and you will see the scan counter creep rather than run.

2. Give it location, all the time

Location permission     → Allow all the time  (not "only while using the app")
Location accuracy       → Precise / high accuracy
Nearby devices          → allow, if you also want Bluetooth logging
Battery optimisation    → "Unrestricted" for WiGLE WiFi

"Only while using the app" plus an aggressive battery manager is the usual reason a two-hour drive produces twenty minutes of data: the phone slept the service the moment you locked the screen. Wi-Fi itself must stay on — you do not have to connect to anything, but the radio has to be enabled to scan.

3. Wait for a real GPS fix

Do not pull away until the app shows a fix with satellites, not a network-derived position. A cold start under a car roof can take a couple of minutes; put the phone on the dashboard for the first one. Rows logged without a lock come out as 0,0 and this site rejects them — deliberately, because otherwise every drive would plant a phantom access point in the Gulf of Guinea.

Settings worth changing in the app

Menu names move between releases, so hunt by meaning rather than by exact label:

Scan period (active)
As fast as it allows while moving — 1 s. This is what throttling was blocking
Scan period (still)
Long, or zero. Sitting at a red light does not need 60 copies of the same beacon
Speech / alerts
Turn off unless you enjoy being told about every new network at the wheel
Upload to WiGLE
Off if you do not want your run in WiGLE's database. Independent of exporting for us
Bluetooth scanning
Fine to leave on — those rows land in the same CSV and we skip them

Do the drive

  1. Open the app and check the status line: a GPS fix, and a network count that climbs.
  2. Drive at 30–50 km/h. Motorway speed does not give the radio time to hear a beacon; you will pass a hundred networks and log five.
  3. Keep the screen on if the phone lets you, or accept the risk that the vendor's battery manager kills the service. Charging usually keeps it alive.
  4. Cover streets you have not driven before rather than looping the same block — a repeated street adds sightings, not networks.
  5. Stop the run in the app when you park, so the export contains one clean drive.

Do not connect to anything you find, do not probe it, do not stop. Listening to beacons that are being broadcast at you is the whole activity; wardriving in practice covers the etiquette and the law in more detail.

Export the CSV

In the app's menu, find the data or database section and export CSV. There are two exports and the difference matters:

CSV run export
Just the drive you have finished. This is normally what you want here
CSV export DB
Everything the phone has ever seen. Useful once, then it is mostly re-uploading old data

The app tells you the filename it wrote — WigleWifi_20260805143012.csv or similar. Where it lands depends on your Android version: older phones use /sdcard/wiglewifi/, newer ones keep it in app storage and expect you to use the share sheet. If you cannot find it in Files, export again and share it straight to Drive, to yourself, or to the browser.

Upload it here

Open the uploader — on the phone is fine, the file picker reaches the Files app — and choose the CSV. The format is detected from the file's contents, so the extension does not have to be right, and .gz is read directly. A full-database export is worth gzipping first; a single run rarely needs it.

A moderator approves it, the worker parses it, and your networks appear on the map. Because a WiGLE CSV holds one row per sighting rather than one per network, your drive also draws a path — the driving-path layer on the map is built from exactly this.

Reading the result

The upload's own page lists what was skipped and why. On a WiGLE export the usual reasons are all benign:

not_wifi
Bluetooth and cell rows from the same file. Expected; this is a WiFi archive
unusable_gps_fix
0,0 rows from before the lock. Expected at the start of a drive
invalid_bssid
A truncated row, usually the last line if the app was killed mid-write

A drive where most rows were skipped means the GPS never locked, or scan throttling was still on. Check both and try the same route again.

Wanting more than a phone

A phone's antenna is small and aimed at nothing in particular, so you hear the loud half of what is there. When that starts to annoy you: Kismet with a proper adapter hears far more, an ESP32 rig can live in the car and post to the live map by itself, and a WiFi Pineapple sits in between. The phone stays useful either way — as the hotspot, the GPS, or the screen.

On an iPhone instead? Read wardriving with an iPhone first — the short version is that iOS will not let an app do this.