Skip to content

BLE & Wi-Fi Scanner โ€‹

S01E04 โ€” "Your phone has been a radio receiver this whole time. We just turned on the screen."

TL;DR Passive discovery of every BLE and Wi-Fi device in range. Vendor inference from OUI + Apple Continuity packets. RSSI presets. GPS-stamped sightings. Per-device detail page with full advertisement decode and analysis plugins.

How scanning works โ€‹

NearTrace uses Android's BluetoothLeScanner and WifiManager APIs to passively receive advertisement packets. It never initiates a connection. Your phone is in receive-only mode โ€” like a radio tuned to a station, not a transmitter.

Every packet received updates the device's entry: last-seen timestamp, signal strength, and any new advertisement data.

Vendor inference โ€‹

Raw BLE advertisements are full of information that most scanners throw away. NearTrace decodes:

OUI lookup โ€‹

The first 3 bytes of a MAC address identify the manufacturer (e.g., A4:C3:F0 = Apple). NearTrace resolves these via api.macvendors.com (cached, with a circuit breaker โ€” if the API is slow or down, it fails silently and retries in 5 minutes).

Apple Continuity packets โ€‹

Apple devices broadcast their entire ecosystem state in Continuity advertisement packets. NearTrace decodes these to surface:

What you seeWhat it means
Apple ยท AirPods Pro 2Continuity identifies the exact model
Apple ยท iPhoneNearbyInfo flags indicate device type
Apple ยท iPhone (with AirPods)Companion audio device detected
Find My (likely AirTag)Find My network packet detected
Continuity badgesWatch, AirDrop active, iCloud, Call in progress

BT version detection โ€‹

NearTrace stamps BT 5+ in the badge bar only when it can prove it โ€” extended advertising, 2M PHY, or CODED PHY observed. No guessing.

GPS stamping โ€‹

If you've granted location permission and pressed Start, every device sighting after that point gets a GPS coordinate. Devices discovered before you pressed Start intentionally get no location โ€” they're pre-scan noise.

Tap a device โ†’ Map tab to see all sighting locations.

Plugins โ€‹

The device detail page runs optional analysis plugins:

PluginWhat it does
Service InspectorDecodes all advertised BLE services
Connectivity ProbeChecks common ports (80, 443, 22, etc.)
Vulnerability AdvisorFlags known CVEs for the device type
mDNSResolves the device's mDNS hostname
SSDPDiscovers UPnP service descriptions

Plugins run on-demand โ€” tap the plugin card to trigger it.