Android car head unit app that maps Flock Safety ALPR cameras and alerts you in real time when you drive past one.
Watch on Instagram (2.5M views)
This project is experimental and provided for educational and privacy-awareness purposes only. It is not intended to facilitate illegal activity. Camera location data is sourced from OpenStreetMap and may be incomplete, inaccurate, or out of date. Use at your own risk.
This app does not record, transmit, or store any data outside of your device.
| Tool | Description |
|---|---|
| dooku | Portable wardriving rig used to physically locate and map Flock Safety cameras while driving |
| flock-back | PC/laptop program that detects nearby Flock Safety cameras via BLE and WiFi signals |
| flock-down | In-car Android app that alerts you in real time when driving past a Flock camera |
- 110,924 ALPR cameras mapped from OpenStreetMap — Flock Safety + all other brands
- Full-screen red alert when driving past a Flock camera
- Two-tier beep system — warning at ~1600ft, urgent alert at ~500ft
- "Flock detected" voice alert through car speakers
- Live speed display from GPS
- Session + lifetime counter — tracks how many Flock cameras you've passed
- Camera log — browse every Flock camera you've driven past with coordinates
- Tap any camera dot on the map to see its ID, coordinates, and open in Google Maps
- Recenter button — snaps the map back to your location
- Offline tile caching — tap CACHE while on WiFi to save map tiles for offline driving
- 100% offline camera data — all camera coordinates bundled in the APK, no internet needed
- Landscape, always-on display built for car screens
- Enable Unknown Sources on your head unit — Settings → Security → Unknown Sources → ON
- Download
releases/flock-down.apkdirectly onto your head unit or transfer via USB - Open it to install
When the app launches it loads 110k+ ALPR camera coordinates from a bundled CSV into memory. A foreground location service checks your GPS position every second against the camera list using haversine distance. When you enter the alert radius:
- ~1600ft — short beep, distance shown in corner HUD
- ~500ft — urgent beep + "Flock detected" voice alert + full-screen FLOCK SAFETY overlay
The map follows your location with red dots for Flock cameras and orange dots for other ALPRs. Each unique Flock camera you drive past gets counted and logged.
The camera data is always available offline (bundled in the APK). For the actual map background (roads, buildings):
- While on WiFi — open the app, navigate to your city or route, tap CACHE
- The app downloads zoom levels 10–17 for the visible area to local storage
- While driving — the map renders fully from the local cache, no internet needed
Or go to Settings → Download State to cache your entire state at highway level in one shot.
Tap SETTINGS to:
- Show/hide session counter
- Show/hide lifetime counter
- Download your state map for offline use
- Reset lifetime count
- Clear camera log
Bug reports and pull requests are welcome. If something isn't working right or you want to add a feature:
- Found a bug? Open an issue
- Want to contribute? Fork the repo, make your changes, and open a pull request
Last updated: 2026-05-07 — 110,924 cameras (83,203 Flock Safety)
The database auto-updates every Friday via GitHub Actions. You can also trigger it manually from the Actions tab.
# 1. Download fresh data from OpenStreetMap
curl -X POST "https://overpass.kumi.systems/api/interpreter" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'data=[out:json][timeout:300];node["surveillance:type"="ALPR"];out body;' \
-o alpr_cameras.json
# 2. Rebuild the CSV
python3 scripts/build_csv.py
# 3. Rebuild the APK
./gradlew assembleDebugCamera data comes from OpenStreetMap — if you know of a camera that's missing or mislabeled, add it to OSM and it'll show up in the next update.
# Requires Android Studio + Android SDK
git clone https://github.com/nsm-barii/flock-down
cd flock-down
./gradlew assembleDebug
# APK -> app/build/outputs/apk/debug/app-debug.apkCamera data is already bundled — no extra steps needed.
- Android 8.0+ (API 26)
- Google Play Services
- Location permission (fine location)
- Camera locations: OpenStreetMap via Overpass API
- Flock identification:
manufacturer=Flock SafetyOSM tag - Camera database: deflock.org