Privacy Policy
Last Updated: October 28, 2026
Effective Date: October 28, 2026
Version: 1.3
This privacy policy covers three products:
- Network Survey Android App - Free open-source mobile app for wireless network surveying
- Network Survey iOS App - Free open-source iPhone app for Wi-Fi and Bluetooth surveying with an NS Scout
- NS Analytics Platform - SaaS web application for visualizing and analyzing survey data
Table of Contents
Network Survey Android App
Network Survey iOS App
Network Survey Android App
Christian Rowlands (aka Craxiom) built the Network Survey Android app as an Open Source app. This app is provided by Christian Rowlands at no cost and is intended for use as is.
This section informs users about policies regarding the collection, use, and disclosure of information when using the app. By using this app, you agree to the collection and use of information as described in this policy. I do not use or share your information with anyone except as described here.
Information Collection and Use
The Network Survey app records wireless survey data on the device: cellular records (GSM, CDMA, UMTS, LTE, and 5G NR), phone state, Wi-Fi access points, Bluetooth devices, GNSS measurements, device status (such as battery level and the active location source), and, if you turn them on, call records. Each record is tagged with the device's location, the time it was collected, and an Android-assigned per-app identifier (described under Data Upload Feature below).
By default, all collected data remains on the device. Survey records leave the device only through the destinations you turn on for a survey: NS Analytics, an MQTT broker or gRPC server you set up, or the OpenCelliD and BeaconDB community databases. Log files are saved on the device and stay there unless you share or copy them. Apart from these destinations, the app makes the requests described under Network Survey Online Services and Map Tiles, and the Google Play build sends crash and analytics data to Firebase as described under Analytics and Crash Reporting. Each of these is described below.
Call records are available in both builds and record call events and changes of the location or tracking area. The CDR build variant can also record SMS and MMS metadata and the other party's phone number. See CDR Build Variant for details. The app does not read the IMEI, the SIM's subscriber ID, your contacts, or the content of any message.
Analytics and Crash Reporting
The Google Play build of the app (installed from Google Play, or the "regular" APK published on GitHub) includes Google Firebase. Crash reports (Firebase Crashlytics) and analytics data (Google Analytics for Firebase) are sent to Google Firebase to improve app stability. This data is not shared with or sold to third-party entities. In this build, Settings > Device IDs shows the Firebase App instance ID.
The CDR build (distributed through F-Droid, IzzyOnDroid, and as the CDR APK on GitHub) does not include Firebase, so NO analytics or crash reporting data is collected or stored.
For the Google Play build, refer to the following privacy policies, which cover the analytics and crash data (again, this does not apply to the CDR build):
Location Permissions
Background Location Permission
The app asks for background location access only when you turn on Start survey automatically, so that the survey can start after the phone restarts. If this permission is denied, the survey does not start after a restart (it still starts when you open the app), and all other features remain available.
Foreground Location Permission
The app requires location access to collect survey records for cellular, Wi-Fi, Bluetooth, GNSS, phone state, and device status. Each record is associated with the device's location for analysis.
Location data is stored in or sent to:
- CSV log files on the device (if the Log files destination is on)
- MQTT or gRPC streams (if you set up a server and turn the stream on)
- NS Analytics uploads (if the device is connected to a workspace and the NS Analytics destination is on)
- OpenCelliD or BeaconDB uploads (if the Community databases destination is on)
- The "My survey points" record kept on the device, which marks where surveys that send to NS Analytics or the community databases have been. You can clear it in Map settings.
The app does not provide a default MQTT or gRPC server. You must configure your own server if you choose to stream data externally. Location data is not shared with any third parties beyond those explicitly configured by you, except for the map area sent with the requests described under Network Survey Online Services and Map Tiles.
File-Based Survey Data
The Log files destination saves survey data as CSV files on the
device, in the Download/NetworkSurveyData/csv folder.
These files remain on the device unless you share them (for example
from More > Log files) or copy them off the device.
CDR Build Variant
In addition to the Google Play build, a separate build called the CDR variant is distributed via GitHub releases, IzzyOnDroid and F-Droid. This build is intended for technical users who need fuller call detail records in addition to wireless surveys, and is not available on Google Play.
Both builds can ask for READ_PHONE_NUMBERS, which is
optional, to record the phone number assigned to the active SIM in
call records. The CDR variant requests these additional permissions:
READ_CALL_LOGto record the other party's phone number for calls.READ_SMSto record SMS and MMS metadata such as sender, recipient, direction, SIM slot, and timestamp.
The CDR variant captures SMS and MMS metadata only, not message content or attachments. Call records are written only to log files on the device. They are never streamed over MQTT or gRPC, uploaded to NS Analytics, or uploaded to OpenCelliD or BeaconDB.
The CDR variant does not include Firebase Analytics or Firebase Crashlytics, regardless of the installation source.
Network Survey Online Services
The app contacts a Caskfive-operated gateway server (the Network Survey service) for these features:
Map Tab Tower Data
When you use the Map tab, the app asks the server for the cell towers in the area you are looking at, so each request includes that map area. When you search for a tower, the request includes the tower identifiers you entered. When the Map tab opens, the app also gets from this server the access key it uses for MapTiler map tiles.
Manufacturer (OUI) Lookup
When the Manufacturer lookup setting is on (default: on), the app sends the first 24 bits of nearby Wi-Fi BSSIDs and Bluetooth MAC addresses (the OUI prefix only, not the full address) to the same gateway to resolve the manufacturer name, and downloads a list of manufacturers from it. The OUI prefix identifies the device manufacturer; it does not uniquely identify a specific device. You can turn this off in Settings > Map and lookups > Manufacturer lookup.
PLMN Lookup
When you use the PLMN lookup tool, the app sends the operator codes (MCC and MNC) or the operator or country name you search for.
New Tower Alerts
When the New tower alerts setting is on (default: off), the app sends the identity of the serving cell (MCC, MNC, area code, cell ID, and technology) to check whether the tower is already in OpenCelliD.
Logging and Retention
For these features:
- Server logs are retained for 90 days before deletion.
- Requests are anonymous and not tied to any user account.
Map Tiles
To draw the Map tab, the app downloads map tiles and map styles from the map source you choose: OpenFreeMap (the default), MapTiler, or OpenStreetMap (its style file is hosted on GitHub). The watchlist map uses OpenFreeMap. If you turn on the BeaconDB coverage layer, it is loaded from BeaconDB. As with any web request, these providers receive your IP address and the map area being loaded.
Data Upload Feature
Two destinations upload survey records: Community databases (OpenCelliD and BeaconDB, third-party public databases) and the Caskfive-operated NS Analytics platform. Both are optional. Nothing is uploaded unless you turn the destination on for a survey, and NS Analytics also requires connecting the device to a workspace.
What Data Is Uploaded?
When using these destinations, the following data may be submitted:
- Device Location: Latitude, longitude, altitude, accuracy, speed
- Cellular Data: Mobile country code (MCC), mobile network code (MNC), cell ID, signal strength, timing advance, network type (e.g., LTE, 5G)
- Wi-Fi Data: SSID (network name), BSSID (MAC address), signal strength, channel, frequency, encryption type, and other 802.11 beacon attributes. Networks on your SSID exclusion list are left out.
- Bluetooth Data (NS Analytics only): device name, MAC address, signal strength, device class, and service identifiers
- GNSS, Phone State, and Device Status (NS Analytics only): satellite measurements, SIM and network registration information, battery level, and active location source
- Timestamp: The time the data was collected
Call records are never uploaded.
Where Is the Data Sent?
If used, data is uploaded to one or more of the following services. You choose which destinations to turn on for each survey.
- OpenCelliD - A global open-source cell tower database. Cellular records only.
- BeaconDB - A crowdsourced geolocation database. Cellular and Wi-Fi records.
- NS Analytics - The Caskfive-operated cloud platform for visualizing and analyzing your own survey data. Opt-in by connecting the device to a workspace with a QR code. NS Analytics receives every record type the survey records except call records (cellular, phone state, Wi-Fi, Bluetooth, and GNSS), plus device status. See the NS Analytics Platform section below for full details on how that platform handles your data.
How Is This Data Used?
OpenCelliD and BeaconDB use uploaded data to improve cellular and Wi-Fi coverage mapping and to support public geolocation services. NS Analytics uses your uploaded data to provide the visualization and analysis features of your account.
Identifiers and Personal Data in Uploads
Uploaded records do not include IMEI, IMSI, ICCID, MEID, Google account information, or your name.
Records sent to NS Analytics, MQTT, and gRPC do include an Android-assigned per-app identifier (referred to in the app as "device serial number" and shown in Settings > Device IDs). This is not your hardware serial number; it is an identifier that Android assigns to the Network Survey app, and it changes if the phone is factory reset.
Phone numbers appear only in call records, which stay in log files on the device and are never streamed or uploaded.
Location, network identifiers, and Wi-Fi SSIDs may still be considered sensitive. Please review the privacy policies of the third-party services you choose to upload to:
For more details, visit the Network Survey User Manual.
Real-Time Streaming (MQTT and gRPC)
The app can stream survey records in real time to an MQTT broker or gRPC server that you configure. The app does not provide a default server, and nothing is streamed unless you set up a server and turn on the MQTT stream or gRPC stream destination for a survey (or your organization configures one, see below). A stream receives every record type the survey records except call records: cellular, phone state, Wi-Fi, Bluetooth, and GNSS, depending on which record types you turn on.
The MQTT stream also sends device status messages (on by default, and can be turned off on the MQTT stream page) and Wi-Fi watchlist events (on by default, and can be turned off in Settings > Watchlist). The gRPC stream always sends device status messages while it is connected.
Streamed records contain the same fields recorded to local log files, including the Android-assigned per-app identifier described above.
Enterprise / Managed Devices
Network Survey supports Android Mobile Device Management (MDM). If your device is enrolled in an MDM, your administrator may configure or override data-collection and streaming settings, including which record types and destinations are on, automatic start of the survey, MQTT broker connection details, scan intervals, whether NS Analytics and community database uploads are allowed, and whether other apps can start and stop surveys. Settings set by your administrator show "Set by your organization", and the Organization settings page lists all of them. If you have questions about which settings are administrator-controlled, contact your device administrator.
Changes to This Privacy Policy
I may update this Privacy Policy from time to time. You are encouraged to review this page periodically for any changes. Updates will be posted here and take effect immediately.
Contact
If you have any questions about this Privacy Policy, feel free to contact me at craxiomdev@gmail.com.
This privacy policy was originally created using privacypolicytemplate.net and modified using App Privacy Policy Generator.
Network Survey iOS App
Network Survey for iOS is a free, open-source app published by Caskfive. It records the Wi-Fi access points, Wi-Fi clients and Bluetooth LE devices around you, using an NS Scout (a small ESP32 board that listens passively and sends what it hears to the iPhone over Bluetooth). This section describes what the iOS app collects and where that data goes.
Information Collection and Use
The app has no user accounts and contains no analytics, advertising or tracking code. The only information it sends to Caskfive is crash reports and app session counts, described in Crash Reports. We do not sell or share your data, and the app does not track you across other companies' apps or websites.
During a survey that you start, the app records survey data on the iPhone: Wi-Fi access points (network name, BSSID, channel, security settings and signal), Wi-Fi client devices (MAC address and the network names they probe for), and, if you turn them on, Bluetooth LE advertisements and raw 802.11 frames. Each record is tagged with the time, the iPhone's location, and a random identifier created when the app is installed (the "device ID"). This identifier is stored in the iPhone's Keychain and is not linked to your Apple ID or any hardware identifier.
By default, all of this data stays on the iPhone. It leaves the device only when you turn on one of the destinations described below.
Crash Reports
When the app crashes or stops responding, it sends a crash report so we can find and fix the bug. Reports are sent to Sentry, a crash reporting service that stores them for us, for a limited time (at most 90 days). A crash report contains:
- The app version and build
- The iPhone model, iOS version, language and region setting, and memory and storage status
- Where in the app's code the problem happened, and a short list of recent app events, such as moving to the background
- A random identifier created by the crash reporting code, used only to count how many installs a crash affects. It is not the device ID described above and is not linked to your Apple ID.
The crash reporting code also sends Sentry a short session record each time you use the app, so we can see what share of sessions end in a crash. A session record holds only the app version, when the session started and how long it lasted, whether it ended normally or in a crash, and the same random identifier.
Crash reports and session records never include survey data, location, network names, MAC addresses, screenshots, the device name, or anything you have typed into the app. Sentry is set not to store IP addresses.
Crash reports and session records are on by default in the version from the App Store. You can turn both off at any time in Settings > Send crash reports. Builds made from the open-source code send neither.
Permissions
- Location (While Using the App): used to tag each record with where it was heard and to draw your track on the map. The app never asks for "Always" access. A survey you start keeps using location while the screen is locked, until you stop it, and iOS shows that location is in use.
- Bluetooth: used to pair with and receive data from your NS Scout. When Bluetooth LE recording is on, the Scout (not the iPhone) hears nearby Bluetooth advertisements.
- Camera: used only to scan an NS Analytics registration QR code. No images are stored or sent.
- Local Network: used only to reach an MQTT broker or gRPC server that you set up on your own network.
Survey Files
If you turn on the Files destination, survey records are saved as CSV files (and pcapng files for raw frames) in the app's folder, which you can open in the iOS Files app. These files stay on your iPhone unless you share or move them, and they may be included in your iPhone or iCloud backups according to your iOS settings. Deleting the app deletes them.
NS Analytics Upload
NS Analytics is an optional service operated by Caskfive. Upload is off until you register the app with an NS Analytics workspace (by scanning a QR code or opening a registration link) and turn on the NS Analytics destination. When it is on, the app sends the survey records you chose to record to that workspace, including:
- Precise location, altitude, accuracy and time for each record
- Wi-Fi, Wi-Fi client and Bluetooth survey records, as described above
- The device ID, the device name you set in the app (or a default name), the iPhone model, the iOS version and the app version
Data from the Demo Scout (simulated data) is never uploaded. Once received, the data is handled under the NS Analytics Platform section of this policy and is visible to members of that workspace. You can turn the destination off or remove the registration at any time in the app's settings.
Real-Time Streaming (MQTT and gRPC)
The app can stream survey records in NS Messaging format to an MQTT broker or gRPC server that you configure. There is no default server and streaming is off by default. Streamed records go only to the server you enter, contain the same fields as the survey files, and are not received by Caskfive. Server passwords are stored in the iPhone's Keychain.
Other Network Requests
- Scout firmware updates: the app downloads the firmware list and signed firmware files from the Network Survey Scout releases on GitHub. GitHub receives a normal web request (for example, your IP address) but no survey data.
- Map: the map uses Apple Maps (MapKit) to show map tiles, which is covered by Apple's privacy policy.
Privacy Controls
- Privacy zones: nothing is recorded inside the areas you mark, such as your home.
- Ignore list: chosen networks and devices are left out of your survey data.
- Randomized MAC addresses are marked so you can filter them.
- Deleting data: you can delete surveys and files in the app, and deleting the app removes all survey data stored on the iPhone.
Changes to This Privacy Policy
We may update this section as the app changes. Updates will be posted on this page with a new "Last Updated" date.
Contact
Questions about the Network Survey iOS app and your privacy can be sent to support@caskfive.com.
NS Analytics Platform
Welcome to NS Analytics ("we," "our," or "us"). We are committed to protecting your privacy and being transparent about how we collect, use, and safeguard your information.
This section explains how Caskfive LLC operates the NS Analytics platform (accessible at analytics.networksurvey.app), including our web application and the Network Survey Android application integration.
Contact Information:
- Business Name: Caskfive LLC
- Privacy Contact: Christian Rowlands
- Email: support@caskfive.com
Who This Policy Applies To
NS Analytics is designed for professional and technical users conducting cellular network surveys and analysis. Our service is not directed at children. You must be at least 18 years of age to use NS Analytics. By using our service, you confirm that you meet this age requirement.
Information We Collect
Account Information
When you create an account, we collect:
- Email address (for authentication and account management)
- Authentication credentials (managed through Firebase Authentication)
- Account preferences and settings
Survey Data
When you use the Network Survey Android app or upload survey data, we collect:
Cellular Network Data:
- GSM, UMTS, LTE, and 5G NR (New Radio) network measurements
- Cell tower information (cell IDs, signal strength, frequency)
- Phone state information (network connection status, SIM slot data)
WiFi Network Data:
- SSID (network names)
- BSSID (access point MAC addresses)
- Signal strength (RSSI)
- WiFi channel and frequency information
- Network capabilities and security type
Bluetooth Data:
- Bluetooth device identifiers
- Signal strength measurements
- Device class information
Location Data:
- Precise geolocation: Latitude and longitude coordinates (collected via GNSS/GPS)
- Timestamps of when and where measurements were taken
Device Information:
- Device identifier (Android-assigned app ID, not the actual device serial number)
- Device manufacturer and model
- Android OS version
- Device status information (battery level, network connectivity state)
Important Note: The "device serial number" we reference is actually an identifier assigned by Android to the Network Survey app, not your device's actual hardware serial number. Android can reset this identifier.
Device Registration Data
When you register a device via QR code:
- Device identifier (Android-assigned app ID)
- Registration token (for authentication)
- Device activity logs (timestamps of uploads, registration events)
Usage Information
We automatically collect:
- Analytics data via Firebase Analytics (production environment only)
- Pages viewed
- Features used
- Session duration
- General app performance metrics
- Log data (IP addresses, browser type, access times, pages visited)
Payment Information
If you subscribe to a paid plan:
- Billing information is processed by Stripe (our payment processor)
- We store your Stripe customer ID and subscription status
- We do not store credit card numbers or full payment details
Cookies and Similar Technologies
We use the following cookies:
- Authentication cookies (Firebase session cookies - necessary for login)
- Beta access cookie (httpOnly signed cookie with 1-year expiration - for beta access gate)
- Third-party cookies from Stripe and Firebase (for their services)
How We Use Your Information
Service Delivery
- Provide access to the NS Analytics platform
- Process and visualize your survey data
- Enable map-based geospatial analysis (via Mapbox)
- Authenticate your account and registered devices
- Manage device registrations and data uploads
Account Management
- Create and maintain your account
- Process subscription payments (via Stripe)
- Send transactional emails (account verification, password resets)
- Process account deletion requests
Communication
- Required communications: Service updates, security notices, account status
- Marketing communications: Product updates, feature announcements, upgrade opportunities
- You can opt out of marketing emails at any time using the unsubscribe link
Analytics and Improvement
- Understand how users interact with our platform (via Firebase Analytics)
- Identify and fix technical issues
- Improve features and user experience
Legal and Security
- Comply with legal obligations
- Enforce our Terms of Service
- Protect against fraud and abuse
- Respond to legal requests
Legal Basis for Processing (GDPR)
For users in the European Economic Area (EEA), we process your personal data under the following legal bases:
- Contract Performance: Processing necessary to provide our services (account creation, data visualization, survey management)
- Legitimate Interests: Analytics, security, fraud prevention, and service improvement
- Consent: Marketing communications (you can withdraw consent anytime)
- Legal Obligation: Compliance with laws and regulations
Data Sharing and Third Parties
Service Providers
| Service | Purpose | Data Shared |
|---|---|---|
| Google Cloud Platform | Hosting and infrastructure | All service data (stored in us-central1 region) |
| Firebase (Google) | Authentication and analytics | Email, authentication tokens, usage analytics |
| Mapbox | Map visualization | Location coordinates for map rendering |
| Stripe | Payment processing | Email, billing information, subscription data |
| Loops | Email delivery | Email address, name (for transactional and marketing emails) |
Data Processing Agreements
All third-party services listed above are bound by data processing agreements and privacy policies that comply with GDPR and CCPA requirements.
Legal Disclosures
We may disclose your information if required by law, court order, or government request, or to protect our rights and safety.
No Data Sales
We do not sell your personal information. We do not share your survey data or personal information with third parties for their marketing purposes.
Data Storage and Security
Where We Store Data
- Primary servers: Google Cloud Platform, us-central1 region (United States)
- Database backups: Retained for 90 days
- Cross-border transfers: If you access NS Analytics from outside the United States, your data will be transferred to and stored in the U.S.
Security Measures
We implement industry-standard security practices:
- Encryption in transit: All data transmitted using HTTPS/TLS
- Encryption at rest: Database encryption via Google Cloud SQL
- Authentication: Secure token-based authentication via Firebase
- Access controls: Role-based access to data and systems
- HttpOnly cookies: Signed cookies to prevent tampering
Despite our security measures, no system is 100% secure. We cannot guarantee absolute security but will notify you of any data breaches as required by law.
Data Retention
Survey Data
- User-controlled: You decide how long to keep your survey data
- Immediate deletion: When you delete survey data, it is permanently deleted from our active database
- Backups: Deleted data may persist in backups for up to 90 days
Account Data
- Active accounts: Retained while your account is active
- Account deletion: 7 days after you request account deletion
- Cancellation: If you log in during the 7-day period, deletion is canceled
- Final deletion: After 7 days, all account data and associated survey data are permanently deleted
- Backup persistence: Deleted data may remain in backups for up to 90 days
Device Registration Data
- Retained while the device is registered
- Deleted when you remove the device registration or delete your account
Payment Records
- Stripe retains payment records according to their retention policies and legal requirements
- We retain subscription status and customer IDs as long as your account is active
Your Privacy Rights
Rights for All Users
- Access: View and download your survey data (available in CSV format)
- Deletion: Delete your survey data immediately or delete your account (30-day process)
- Correction: Update your account information in account settings
- Opt-out of marketing: Unsubscribe from marketing emails via the unsubscribe link
Additional Rights for EEA Users (GDPR)
- Right to data portability: Download your data in CSV format
- Right to restrict processing: Request restrictions on how we process your data
- Right to object: Object to processing based on legitimate interests
- Right to withdraw consent: Withdraw consent for marketing communications
- Right to lodge a complaint: File a complaint with your local data protection authority
Additional Rights for California Users (CCPA/CPRA)
- Right to know: Request details about personal information collected, used, and shared (previous 12 months)
- Right to delete: Request deletion of your personal information
- Right to opt-out: We do not sell personal information, but you can opt out of marketing
- Right to non-discrimination: We will not discriminate against you for exercising your rights
How to Exercise Your Rights
To exercise any of these rights:
- Data access/download: Log in to your account → navigate to your survey data → export to CSV
- Account deletion: Log in → Account Settings
- Other requests: Email us at support@caskfive.com
We will respond to your request within 30 days (or as required by applicable law).
International Data Transfers
NS Analytics operates globally but stores data in the United States (Google Cloud Platform, us-central1 region).
For EEA users: By using our service, you acknowledge that your data will be transferred to the United States. We rely on Standard Contractual Clauses (SCCs) and Google Cloud Platform's GDPR compliance for international transfers.
Changes to This Privacy Policy
We may update this Privacy Policy from time to time to reflect:
- Changes in our data practices
- New features or services
- Legal or regulatory requirements
Notice of changes:
- We will update the "Last Updated" date at the top
- For material changes, we will notify you via email or prominent notice on our platform
- We will maintain previous versions for your reference
Your continued use of NS Analytics after changes indicates acceptance of the updated Privacy Policy.
Beta Access Program
During our beta period, access to NS Analytics requires a beta access code. We use a signed httpOnly cookie (1-year expiration) to track beta access validation. This cookie contains no personal information and is used solely for access control.
Do Not Track Signals
Our platform does not currently respond to "Do Not Track" (DNT) browser signals. You can control cookies through your browser settings and opt out of Firebase Analytics by disabling analytics cookies.
Third-Party Links
Our platform may contain links to third-party websites (e.g., documentation, support resources). We are not responsible for the privacy practices of these external sites. Please review their privacy policies before providing any information.
Data Breach Notification
In the event of a data breach that affects your personal information, we will:
- Notify affected users within 72 hours (GDPR requirement)
- Provide details about the breach and affected data
- Explain the steps we're taking to address the breach
- Advise you on protective measures you can take
Contact Us
If you have questions, concerns, or requests regarding this Privacy Policy or our data practices:
- Email: support@caskfive.com
- Privacy Contact: Christian Rowlands
- Business: Caskfive LLC
For EEA users: You have the right to lodge a complaint with your local supervisory authority if you believe we have not addressed your concerns adequately.
Summary of Key Points
- ✅ We collect: Account info, survey data (cellular, WiFi, Bluetooth, GPS), device info, usage analytics
- ✅ We use it for: Providing the service, analytics, account management, communications
- ✅ We share with: Google Cloud, Firebase, Mapbox, Stripe, Loops (service providers only)
- ✅ We don't sell your data
- ✅ You control: Your survey data (delete anytime), account deletion (30-day process), data export (CSV)
- ✅ Data location: United States (us-central1)
- ✅ Your rights: Access, delete, export, opt-out, and more (GDPR/CCPA compliant)
This privacy policy is designed to be transparent, comprehensive, and compliant with GDPR, CCPA/CPRA, and industry best practices for 2025.