Advanced Personal Safety & RF Intelligence Platform
Real-time threat detection, BLE tracker scanning, cell tower analysis, WiFi recon, radiation monitoring, and global emergency alerts — all in one offline-capable app.
| Module | What it does |
|---|---|
| 🔬 Unknown Threats | Multi-vector scan: BLE trackers + rogue towers + WiFi anomalies simultaneously |
| 📡 Cell Towers | Live tower scan, IMSI catcher detection, triangulation |
| 🔵 BLE Scanner | Server-side bleak scan (works in any browser) — AirTag, Tile, SmartTag, LoRa |
| 🌐 Network Recon | Real WiFi scan via nmcli/iwlist, ARP sweep, rogue AP detection |
| 📊 Signal History | Time-series chart of signal strength across scans |
| 🗺️ Live Map | Auto-refresh position tracker with movement trail |
| 🆘 Emergency | SOS beacon (Base64 + QR), offline satellite options |
| 🚨 Alert Center | NOAA NWS, USGS, GDACS, Israel HFC, IAEA, EMSC |
| ☢️ Radiation | EPA RadNet levels, nuclear facility proximity |
| 📶 WiFi Heatmap | Signal strength map as you walk |
| 📻 Frequencies | Emergency / cellular / tracker / satellite reference |
| 🔐 Privacy Guide | IMSI catcher detection, RF hygiene |
git clone https://github.com/zwanski2019/signal-hunter
cd signal-hunter
pip install -r requirements.txt
bash run.sh
# Open http://localhost:8501pip install buildozer
bash build_apk.sh
# Install signal_hunter.apk on your Android devicepip install streamlit requests folium streamlit-folium pandas bleak && \
streamlit run https://raw.githubusercontent.com/zwanski2019/signal-hunter/main/app.pyThe flagship new feature — runs 4 scanners in parallel and correlates results:
- BLE scan — detects nearby trackers using service UUIDs + manufacturer data
- Cell anomaly — flags rogue towers (signal spikes, LAC conflicts, ghost towers)
- WiFi recon — detects evil twins, open rogue APs, deauth attacks
- Cross-correlation — when BLE tracker + rogue cell + suspicious AP all appear together = HIGH THREAT
The APK wraps Signal Hunter in a native Android shell using Kivy + a local Streamlit server:
signal-hunter.apk
├── Starts Streamlit on localhost:8501 (background thread)
├── Opens a native Android WebView
├── Runs fully offline (no internet required for core features)
└── Alert features need internet connectivity
See docs/BUILD_APK.md for full build instructions.
| Tracker | Detection Method | UUID |
|---|---|---|
| Apple AirTag | Manufacturer data 0x004C type 0x12/0x1E | 0xFD6F |
| Tile | Service UUID | 0xFEED |
| Samsung SmartTag | Service UUID | 0xFD5A |
| Chipolo | Service UUID | 0xFE3D |
| Google Find My | Service UUID | 0xFE2C |
| LoRa trackers | 433/868/915 MHz — requires SDR |
Unlike browser-based Web Bluetooth, Signal Hunter uses server-side bleak via BlueZ — scans all nearby devices simultaneously without browser popups, works in any browser.
This tool is for personal safety, privacy awareness, and educational use only.
Do not use to track others without consent. IMSI catcher detection is passive/read-only.
BLE scanning only detects broadcast advertisements — no connection to devices.
Mohamed Zwanski — github.com/zwanski2019
MIT License — see LICENSE