package icon

Network Survey

Displays and Logs Cellular, Wi-Fi, Bluetooth, and GNSS Network Survey Details
The Network Survey app enables logging cellular, Wi-Fi, Bluetooth, and/or GNSS information to a log file (GeoPackage or CSV format). For cellular records it supports logging GSM, CDMA, UMTS, LTE, and NR records.

You might receive an alert from anti-malware software indicating that Network Survey sends SMS messages in private manner to deceive users. This is NOT the case. SMS permission is necessary for some of the logging that is done. Just to be clear though, Network Survey does not send any text messages, nor does it install anything. In fact, you can deny all the SMS permissions if you are not using the CDR (call detail record) logging feature. The SMS permissions are only requested the first time you turn on CDR logging. More information can be found in this GitHub Discussion: https://github.com/christianrowlands/android-network-survey/discussions/35

This app has the ability to access your device's location in the background. The background location permission is needed to start Network Survey at boot. You can deny this permission if you don't want to start Network Survey at phone boot. More information can be found in the App's privacy policy located at https://github.com/christianrowlands/android-network-survey/blob/master/privacy_policy.md

The cellular logging feature logs several details about the current serving cell, and then some basic information about the neighbor cells. This app won't log all 5 cellular protocols at once. Instead, it will only log information about the protocols that are current connected. If logging for one specific protocol is desired, then the phone must be locked to that protocol (try using *#*#4636#*#* from the dial pad).

The cellular survey records can be streamed to either a gRPC server or a MQTT broker. This is not on by default and a gRPC server or MQTT Broker needs to be setup for this feature to work.

See the NS Messaging GitHub Repo for more details on setting up a network survey gRPC server.

See for information on setting up a MQTT Broker.

A bonus feature of this app is its ability to create a Call Detail Record (CDR) file. If enabled, CDR events are logged to a CSV file.

The app also has a calculator that converts an LTE Cell ID to the corresponding eNodeB ID and Sector ID, and a calculator that converts an LTE PCI to the corresponding Primary Sync Sequence (PSS) and Secondary Sync Sequence (SSS).

I hope you enjoy this app as much as I have enjoyed writing it. If you have any feature requests please feel free to reach out by creating a GitHub issue at the link below.

The source code for this app lives here: https://github.com/christianrowlands/android-network-survey

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 1.31 (86) suggested Added on Nov 07, 2024

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access location in the background
      This app can access location at any time, even while the app is not in use.
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "location"
      Allows the app to make use of foreground services with the type "location"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read call log
      This app can read your call history.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
      (12L)
    • read phone numbers
      Allows the app to access the phone numbers of the device.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • read your text messages (SMS or MMS)
      This app can read all SMS (text) messages stored on your phone.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • receive text messages (SMS)
      Allows the app to receive and process SMS messages. This means the app could monitor or delete messages sent to your device without showing them to you.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
      (12L)
    • com.craxiom.networksurvey.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 25 MiB PGP Signature | Build Log

  • Version 1.30.2 (85) - Added on Oct 01, 2024

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access location in the background
      This app can access location at any time, even while the app is not in use.
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "location"
      Allows the app to make use of foreground services with the type "location"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read call log
      This app can read your call history.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
      (12L)
    • read phone numbers
      Allows the app to access the phone numbers of the device.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • read your text messages (SMS or MMS)
      This app can read all SMS (text) messages stored on your phone.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • receive text messages (SMS)
      Allows the app to receive and process SMS messages. This means the app could monitor or delete messages sent to your device without showing them to you.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
      (12L)
    • com.craxiom.networksurvey.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 24 MiB PGP Signature | Build Log