Geograbber
WiFi & Bluetooth GeoGrabber is an Android app for scanning, mapping, and analyzing WiFi networks and Bluetooth devices with GPS precision. It stores data locally and allows visualization and analysis on both mobile and PC using Python tools. Perfect for network analysis, signal mapping, and educational wardriving
Install / Use
/learn @arn-c0de/GeograbberREADME
Documentation · Database Combiner Guide · Map Viewer Guide · Project Structure · Detailed Structure · Changelog · Contributing · Security · Code of Conduct
Project Website
<div align="left" style="display:flex;align-items:center;gap:16px;"> <img src="images/logo.png" alt="GeoGrabber Logo" width="96" height="96" style="vertical-align:middle; margin-right:12px;" /> <div style="display:flex;flex-direction:column;justify-content:center;"> <h1 style="margin:0; padding:0; font-size:2em; line-height:1.1;">WiFi & Bluetooth GeoGrabber</h1> <span style="font-size:1.1em; color:#555; font-weight:bold;">Professional Geolocation & Signal Mapping</span> <div align="left"> <b>Scan, Map, and Analyze WiFi Networks & Bluetooth Devices with GPS Precision</b> </div> </div> </div> <div align="left"> <b>Current Version: 1.0.6</b> </div>Project Status Notice
This is a very early stage of the program. While it is already functional, it is based on an older project that has recently been resumed. Extensive refactoring and further development are still required. Expect ongoing changes and improvements as work continues.
Python Integration Notice
- On Linux, databases can currently be loaded and visualized.
- Passphrase unlocking is buggy: correct passphrases may be rejected.
- On Windows, SQLCipher and passphrase issues persist.
Additional development is required to implement full SQLCipher support and reliable key handling.
Contribute to GeoGrabber!
<div align="center"> <a href="CONTRIBUTING.md"> <img src="https://img.shields.io/badge/Contribute-Get%20Started-brightgreen?style=for-the-badge" alt="Contribute Badge"> </a> </div>We welcome your ideas, bug reports, and feature requests!
Table of Contents
- Overview
- Features
- Screenshots
- Requirements
- Installation
- Usage
- Python Tools
- Technical Details
- Privacy & Ethics
- Known Limitations
- Project Structure
- Contributing
- License
- Disclaimer
Overview
WiFi & Bluetooth GeoGrabber is a powerful geolocation tool for Android, designed as a modern Wardriving App. It scans for nearby WiFi networks and Bluetooth devices, records their signal strength and location, and visualizes the collected data on an interactive map.
Detected networks and devices are shown live on the map within the app. All scan results are saved in a local SQLite database (.db), which can be exported and loaded both on Android and on your PC for further analysis.
On Android, you can view, filter, and manage the data directly in the app. For advanced analysis and visualization, simply transfer the .db file to your PC and use the included Python tools to merge, plot, and explore your scan data interactively.
GeoGrabber is ideal for network analysis, signal mapping, and understanding wireless device distribution in different areas—whether on your mobile device or desktop.
Note: This app is intended for legal, ethical wardriving, educational purposes, and authorized network analysis only. Please respect privacy laws and only scan networks in areas where you have permission.
Features
Network Scanning
- WiFi Network Scanning – Continuous or on-demand WiFi network detection
- Bluetooth Device Scanning – Detect nearby Bluetooth devices (Classic and BLE)
- Background Scanning – Service-based scanning that runs in the background
- Signal Strength Tracking – Records RSSI (signal strength) for each device
Location & Mapping
- GPS Integration – Records precise GPS coordinates for each scan
- Interactive Map – Visualize collected data on a Leaflet-based web map
- Dark Mode Toggle – Switch between light and dark map styles (OSM/CartoDB)
- Persistent Map Style – User map style choice is saved and restored
- Location Filtering – View devices within specific geographic boundaries
- Live Location – Center map on your current GPS position (auto-tracking, keeps user zoom)
- Live Location Auto-Off – Live location tracking disables when jumping to search result
- Custom Location Marker – Your position is shown as a red dot
- Filter Popup UX – Filter popup can be closed by clicking on the map
- Improved Search Bar – Search bar text is now black for better readability
Data Management
- SQLite Database – Stores all scanned networks and devices locally
- Database Encryption – AES-256 encryption with SQLCipher (optional)
- Data Export – Save database as a file for backup or analysis
- Data Import – Load external databases to view or merge data (supports encrypted databases)
- Database Statistics – View total counts of WiFi networks and Bluetooth devices
- Clear Database – Delete all stored data when needed
Security Features
- AES-256 Encryption – Database encryption using SQLCipher
- Android Keystore Integration – Hardware-backed secure passphrase storage
- Passphrase Protection – User-controlled encryption with customizable passphrase
- Biometric Unlock – Unlock your encrypted database instantly using fingerprint or face authentication. Passphrase is securely stored with Android Keystore and never leaves the device. Biometric unlock uses the same passphrase as manual login for maximum security and reliability.
- Database Migration – Seamless conversion from unencrypted to encrypted databases
- Encrypted Import/Export – Full support for encrypted database files
- Zero-Knowledge Design – Passphrases never logged or transmitted
- Secure File Deletion – Files deleted with 3-pass overwrite (DoD 5220.22-M standard)
- Automatic Log Removal – Sensitive logs removed in release builds
- R8 Code Obfuscation – Comprehensive ProGuard rules for code protection
- Enhanced Passphrase Complexity – Minimum 12 characters, must include uppercase, lowercase, digits, and special characters
- Screenshot Protection – FLAG_SECURE prevents screenshots in unlock activity
- Improved Temp File Security – Temporary files stored in getFilesDir() instead of getCacheDir()
- Encryption Guide – Complete setup and usage instructions
Network Information Captured
WiFi Networks:
| Property | Description | |----------|-------------| | SSID | Network Name | | BSSID | MAC Address | | Signal Strength | Power level in dBm | | Frequency | Operating frequency in MHz | | Channel | WiFi channel number | | Channel Width | Bandwidth (20/40/80/160 MHz) | | Security | Encryption type (WPA2, WPA3, etc.) | | GPS Coordinates | Latitude & Longitude | | Timestamp | Scan date & time |
Bluetooth Devices:
| Property | Description | |----------|-------------| | Device Name | Bluetooth device name | | MAC Address | Hardware address | | Device Type | Classic or BLE | | Signal Strength | RSSI value | | GPS Coordinates | Latitude & Longitude | | Timestamp | Scan date & time |
Screenshots
<div align="center"> <img src="images/screenshots/Screenshot_lock.png" alt="GeoGrabber Lock Screen v1.0.4" width="300" style="display:inline-block;" /> <img src="images/screenshots/Screenshot_main.png" alt="GeoGrabber Main UI v1.0.1" width="300" style="display:inline-block; margin-right:20px;" /> <img src="images/screenshots/Screenshot_map.png" alt="GeoGrabber Map View v1.0.1" width="300" style="display:inline-block;" /> </div>Screenshot Description:
- WiFi Scanning Starten: Start WiFi scanning
- BT AUS: Bluetooth scanning off
- Show Data: View all scanned data
- More: Access advanced features
The screenshot above demonstrates the main scanning interface, live network list, and debug log. The app provides real-time updates and easy access to mapping and data management features.
Requirements
System Requirements
| Component | Requirement | |-----------|-------------| | Android Version | Android 6.0 (API 23) or higher | | RAM | 2 GB minimum (4 GB recommended) | | Storage | 50 MB for app, variable for database | | GPS | Required for location tracking |
Required Permissions
| Permission | Purpose |
|------------|---------|
| ACCESS_FINE_LOCATION | Precise GPS coordinates |
| ACCESS_COARSE_LOCATION | Approximate location |
| ACCESS_WIFI_STATE | WiFi status monitoring |
| CHANGE_WIFI_STATE | WiFi scanning control |
| BLUETOOTH | Bluetooth basic access |
| BLUETOOTH_ADMIN | Bluetooth device management |
| BLUETOOTH_SCAN | Bluetooth scanning (Android 12+) |
| BLUETOOTH_CONNECT | Bluetooth connection (Android 12+) |
| FOREGROUND_SERVICE | Background scanning |
| READ_EXTERNAL_STORAGE | Database import |
| WRITE_EXTERNAL_STORAGE | Database export |
Installation
Note (October 2025):
There are currently issues with automatic dependency installation via the setup scripts (
setup.bat/setup.sh) due t
