01Overview
GreyRecon ("the app", "we", "GreyRecon") is developed as a single-developer, no-backend Android app. There is no GreyRecon server sitting between you and your network — the app talks directly to your router, the devices on your WiFi, and (only when you choose to use a specific feature) a small number of third-party APIs using your own credentials.
This policy covers every place data can possibly go when you use GreyRecon. Where a section doesn't apply to how you use the app — for example, you never enter a Shodan key — that section simply doesn't apply to you.
02Data kept on your device
The core of GreyRecon — scanning your WiFi network, classifying devices, running tools like the subnet calculator or DNS lookup — never leaves your phone. Specifically, the following is stored only in the app's private local storage (a local database and encrypted preferences), and is never transmitted to us, because we have nowhere to receive it:
- Discovered devices: IP/MAC addresses, hostnames, open ports, vendor and device-type classification, and any custom name you give a device.
- Device history and timeline: when a device was first/last seen, IP changes over time, new-device alerts.
- Scan exports you generate (CSV / JSON / Nmap XML) — these are written to a file and handed to Android's own share sheet only when you tap Export; GreyRecon doesn't upload them anywhere itself.
- Settings: your chosen AI provider, whether the MCP server is enabled, and similar preferences.
Uninstalling the app deletes all of this. There's no cloud copy to also delete, because none was ever made.
03Permissions & why
Every permission GreyRecon requests exists to make a specific feature work — none are used to build an advertising profile of you.
| Permission | What it's for |
|---|---|
| ACCESS_FINE_LOCATION | Required by Android itself to read WiFi scan results (SSID/BSSID) and to run Bluetooth Low Energy scans. GreyRecon does not use this to track your physical location, and no location data is ever transmitted anywhere. |
| ACCESS_WIFI_STATE / ACCESS_NETWORK_STATE | Reads your current network's subnet so the app knows what range to scan. |
| CHANGE_WIFI_MULTICAST_STATE | Lets the app listen for mDNS/UPnP broadcasts other devices on your network send out (part of discovery), and lets the MCP foreground service (Pro) maintain its local network connection. |
| BLUETOOTH_SCAN | Lets the optional BLE Scan tool detect nearby Bluetooth Low Energy devices (earbuds, wearables, beacons). Scan results stay on-device. |
| POST_NOTIFICATIONS | Shows the ongoing "MCP server running" notification (Pro), and optional new-device alerts. |
| FOREGROUND_SERVICE / FOREGROUND_SERVICE_CONNECTED_DEVICE | Keeps the optional MCP server (Pro) answering requests from your own self-hosted client while the app is backgrounded. |
| INTERNET | Needed for every feature described in the next two sections — third-party lookups you trigger, and crash reporting. |
04Lookups you trigger yourself (bring your own key)
Several features are opt-in and require your own API key, entered by you in Settings. GreyRecon never ships with, or shares, its own key for these — you're talking directly to that provider, using your account, under their privacy policy.
Shodan
Tapping "Check Shodan" on a device sends that device's public IP to Shodan's API, using your key. Only triggered on your action.
AI provider (DeepSeek / Anthropic)
Tapping "Ask AI" sends the relevant scan data (ports, vendor, etc.) and your question to your configured provider, using your key.
NVD (CVE database)
"Check NVD" sends a product/version string to the National Vulnerability Database's public API to look up known CVEs. No personal data involved.
Terminal & bundled CLI tools
The terminal and tools like subfinder/dnsx/amass only make network requests when you type a command. Nothing runs or phones home in the background.
None of these keys, or the data sent alongside them, pass through any GreyRecon-owned server — there isn't one.
05Crash & diagnostics data
GreyRecon uses Firebase Crashlytics and Firebase Analytics (Google) to help us find and fix bugs. This is the one place data leaves your device by default, rather than only when you take an action.
- When the app crashes, Crashlytics sends Google a crash log: the stack trace, device model, OS version, app version, and free memory/storage at the time — enough to reproduce and fix the bug, not to identify you personally.
- Firebase Analytics collects basic app-usage signals (app opens, screens viewed, session length) and device/OS information, following Google's standard Firebase SDK behavior.
This data is processed by Google under Firebase's own privacy terms. GreyRecon does not use it for advertising, does not sell it, and the app itself carries no ad SDKs.
06API keys & encryption
Any API key you enter (DeepSeek, Anthropic, Shodan, NVD) is stored using Android's EncryptedSharedPreferences — AES-256 encryption tied to your device's own hardware-backed keystore. Keys never leave your device except as part of the specific, user-triggered request described in Section 4, sent straight to that provider's own API — GreyRecon itself never sees, logs, or stores a copy anywhere else.
07GreyRecon Pro & billing
GreyRecon Pro (a one-time unlock for Device History, Tools, Terminal, and the MCP server) is sold and processed entirely through Google Play Billing. GreyRecon does not receive or store your payment details — Google handles the transaction, and the app only ever asks Google Play "is this purchase active?" to decide whether to unlock those features.
08MCP server (Pro feature)
If you enable the optional MCP server, it starts a small HTTP server listening on your local network only (not the public internet), protected by a random token you configure your own client (e.g. a self-hosted nanobot instance) with. Anyone who has both your local network access and that token can query your scan data or trigger a scan — this is the same trust model as any self-hosted local server, and is why the in-app screen tells you to keep the token private.
09Retention & deletion
- On-device data (Section 2): retained until you clear the app's data or uninstall it. There's no separate deletion request to make — it's already entirely in your control.
- Crashlytics/Analytics data (Section 5): retained by Google per Firebase's standard retention settings, typically on the order of months, and is not directly identifiable to you as a person.
- Third-party lookups (Section 4): retained per each provider's own policy (Shodan, DeepSeek, Anthropic, NVD) — GreyRecon has no visibility into or control over that.
10Children's privacy
GreyRecon is a technical network-diagnostics tool and isn't directed at children. We don't knowingly collect data from anyone under 13 (or the relevant minimum age in your jurisdiction).
11Changes to this policy
If GreyRecon's data practices change — a new third-party integration, a new permission — this page will be updated and the effective date at the top will change. Material changes will also be reflected in the app's Play Store listing.
12Contact
Questions about this policy or GreyRecon's data handling can be sent to [developer contact email — add before publishing].