Code Monkey home page Code Monkey logo

android-network-survey-rooted's Introduction

Network Survey Plus Android App

Build Status License

What is it?

Network Survey+ is the Rooted version of the Network Survey Android App.

Why?

Why do we need a rooted version of the Network Survey Android app? Well, the unrooted version can only get access to a limited set of cellular details. With root access on certain devices with the right Qualcomm chipset, this app can get access to detailed cellular network messages via Qualcomm Diagnostic Monitor (QCDM).

This app logs several messages coming from QCDM to a pcap file for follow on processing.

Supported Devices

In theory, any Android device with a Qualcomm chip should work, but it seems that only certain devices work as expected. The following is a list of devices that have been confirmed to work with this Network Survey+ app.

Device Comments
Pixel 3a

Build and development instructions

Basic Instructions

To build and install the project follow the steps below:

1) Clone the repo.
2) Open Android Studio, and then open the root directory of the cloned repo.
3) Connect an Android Phone (make sure debugging is enabled on the device).
4) Install and run the app by clicking the "Play" button in Android Studio.

Detailed Instructions

This app included a native application written in C (called Diag Revealer) that is used to initialize the /dev/diag QCDM device on the phone, and stream the output from the /dev/diag device to the a FIFO named pipe. The Java portion of this app reads from that FIFO queue and consumes the QCDM messages.

The Diag Revealer application source code was pulled from the MobileInsight Android app source code.

To make things easy, the full compiled binary of the Diag Revealer app is included in this repo. Eventually, we will make the gradle build script compile the Diag Revealer binary, but for now it is included in the repo. If you want to make changes to the Diag Revealer C application, you can do so and then compile it using the following steps:

  1. cd app
  2. ndk-build
  3. Add the .so extension to the output file (probably something like libs/arm64-v8a/diag_revealer to libs/arm64-v8a/libdiag_revealer.so)

The reason the file needs to have the .so extension is that Android only unpacks the native application if it is a shared library instead of just a regular executable. At some point it would be nice to investigate if we can get around this and leave off the .so extension since it is misleading.

Prerequisites

Install Android Studio to work on this code.

Related Projects

This project is not alone in trying to leverage QCDM to get access to low level cellular messages. Following are a list of other projects that might be of interest to you.

Changelog

0.2.0 - 2021-01-29
  • Added support for streaming LTE OTA messages over an MQTT connection.
  • LTE NAS messages are now logged to the pcap file and streamed over MQTT.
0.1.2 - 2020-11-02
  • Fixed a bug where the diag_revealer.so file was not being unpacked.
0.1.0 - 2020-10-28
  • Initial Release of Network Survey Plus.

Contact

android-network-survey-rooted's People

Contributors

christianrowlands avatar eliza-mae-alcaraz avatar mae1900 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.