v0.5.2 · Android · passive

OVERWATCH

A native Android app that passively detects surveillance around you. Open it, hit START, and a ring turns green → yellow → orange → red as the engine gets more sure there's a Flock Safety ALPR, an Axon body camera, or active police nearby. It only listens. It never transmits, probes, or jams.

OVERWATCH main screen: a live map inside a green "all clear" threat ring, centered on the user with a crosshair, and a STOP button.
0fused sources
0threat tiers
0packets sent
0releases

Passive defense only. Debug-signed APK — sideload; no Play Store. Read the README.

Fuses signal from
  • Bluetooth-LE + WiFi radio
  • DeFlock ALPR map
  • Citizen incidents
  • Waze police alerts
  • OpenStreetMap · Overpass

One tap. A live threat map.

While scanning, the circle becomes an OpenStreetMap centered on you, wrapped in a threat-color ring for the current tier and marked with a ⌖ crosshair. Every detection is a dot, color-coded by source — so each mark is self-explanatory. Lock the screen and the foreground notification keeps the tier live; the phone vibrates only when the threat escalates.

Detection-sources drill-down: BLE, WiFi, DeFlock, Citizen, Waze and Commercial rows, each with a color tier dot and the observations that fired it.
1
Threat-color ring

The map is wrapped in the current tier's color — green, yellow, orange, or red — so you read your situation at a glance without opening anything.

2
Source-color dots

Flock / DeFlock cameras red · Waze police blue · Citizen incidents purple. Tap any row for coordinates + a Maps deep-link.

3
Foreground notification

Rebuilt on every tier change — OVERWATCH • RED with the top detection's score. Priority bumps to HIGH on RED so the system surfaces it as a heads-up, screen locked or not.

4
Escalation-only haptics

A short pulse for YELLOW, double for ORANGE, escalating triple for RED — but only on upward transitions, so it never nags you while a threat lingers.

Six sensors, one score.

Every observation is scored 0–100 by the confidence engine; the on-screen tier is the max live score across all sources. Cross-source corroboration — a BLE hit and a DeFlock map match in the same spot — naturally pushes the tier higher than either alone.

📶

BLE — Bluetooth-LE

Vendor MAC OUIs (Axon, Flock Penguin / Raven, XUNTONG mfg id 0x09C8, "TN" serial pattern), Raven service UUIDs, and device-name patterns. Iterates every manufacturer-data entry per advert — not just the first — so it doesn't miss a buried match.

📡

WiFi

BSSID OUI prefixes for Flock infrastructure (31-prefix superset) and Flock-XXXX SSID patterns, polled every 35 s — just under the Android 11+ scan throttle.

🎥

DeFlock — ALPR map

Crowdsourced ALPR camera locations within range (200 m default) via the Overpass API (overpass.deflock.org → fallback overpass-api.de), with a 24 h on-disk cache and failure backoff. Refetches when you move > 1.5 km.

🚨

Citizen

Real-time public-safety incidents — police-relevant only, fire/medical filtered out — within range and under 30 min old, polled every 60 s from the Citizen trending feed.

🚓

Waze — police alerts

Live user-reported POLICE alerts (default 500 m, ~45 min freshness). Waze reCAPTCHA-gated its map endpoint, so OVERWATCH reads a key-protected feed through a Caddy proxy at api.blackflagintel.com that injects the key server-side — the paid key never ships in the APK. The app authenticates with a scoped, revocable X-App-Token stored encrypted in the Android Keystore.

🏠

Commercial

Nearby consumer smart-home gear (Nest, Ring, Echo, hidden cams) as a secondary situational signal, riding the BLE + WiFi scans. Score-capped at ORANGE so a cluster of doorbells never reads as ALPR-grade certainty.

Four tiers. Highest live score wins.

< 40
GREEN

Nothing credible. Idle shows a muted gray ring so "all clear" reads differently from "not scanning."

40 – 69
YELLOW

A single weak indicator. Short vibration pulse on the way up.

70 – 84
ORANGE

High confidence — usually a hard radio hit or a close map match. Double pulse.

85 +
RED

Certain. Notification jumps to HIGH priority; escalating triple pulse.

Runs in your pocket, not the cloud.

🔇

Passive by design

OVERWATCH only listens — it never transmits, probes, jams, or interferes with any device or network. The Axon advertise/fuzz code from one of the reference projects is intentionally excluded. It reads the airwaves and public feeds; that's it.

🫧

Floating overlay

The same threat-ring map renders in a small draggable bubble over other apps (Settings → Display over other apps), so it stays with you while you use your phone.

🔐

Keys stay off-device

The paid Waze feed key lives server-side behind the proxy; the app holds only a scoped, revocable token, encrypted via the Android Keystore. No secrets in the APK.

🩺

Honest per-source health

The drill-down marks a source Source unreachable when its scanner couldn't reach its feed — a silent empty result and a real failure look different.

🗺

Your position, not your data

Location drives the proximity checks and the map on-device. No account, no telemetry, no analytics — the scans and feeds run and the results stay on your phone.

🛡

Situational awareness, not interference

OVERWATCH is a defensive, receive-only tool for knowing what's watching you — Flock ALPRs, Axon body cameras, and police presence — in the space you're already in. It does not touch, spoof, or disrupt anything. Know your local laws; use it responsibly.

Sideload in three steps.

Settings screen: per-source toggles (BLE, WiFi, DeFlock, Citizen, Waze, Commercial), proximity distance sliders, and the encrypted Waze proxy token field.
1 · download
  • Grab the latest debug-signed APK from Releases (currently v0.5.2).
2 · install
  • Sideload it — allow "install unknown apps" for your browser or files app, then open the APK.
3 · grant + start
  • Grant location + nearby-devices + notifications, toggle the sources you want, hit START.
  • Optional: paste a Waze proxy token in Settings for police-report coverage.

Build from source, file issues, or read the internals: github.com/KaraZajac/OVERWATCH