View the Project on GitHub AndriusA/RILAnalyzer
Modern smartphone platforms add new challenges for the cellular networks they are running on. Equally though, complexity of cellular networks is hard to deal with for application and system developers, worsening each other's performance and efficiency. Such difficulties are largely caused by the lack of cross-layer understanding of interactions between different entities - applications, devices, the network and its management plane.
To address the issue, we are releasing RILAnalyzer publicly. It is a tool that provides mechanisms to perform network analysis from within a mobile device. RILAnalyzer is capable of recording low-level radio information and accurate cellular network control-plane data, as well as user-plane data. Such data can be used to identify previously overlooked network and connectivyt management issues and infer how the different configurations interact with application logic, causing network and energy overheads.
We are planning to release full source codes soon. For now it can be used as a binary tool - we provide schema of the data logged for personal analysis.
The point is obtaining ground-truth about network configuration and its effects on the devices.
Research community has been exploring the relationship between radio network management and device energy consumption for a while, but it is very hard to propose working solutions in the general case:
RILAnalyzer helps to infer the main network parameters to understand such inefficiencies. We will provide more details once our research work is published.
You will need a rooted device to install the software. We tested it on Samsung Galaxy SII using CyanogenMod 10.1.
To install the user-plane part of the logger, do:
$ cd your_repo_root/RILAnalyzer
$ adb install NetworkLog.apk
Installing the control-plane logger is a little more complex at the moment, as it needs to be installed as a system service:
$ cd your_repo_root/RILAnalyzer
$ adb push SamsungServiceMode.apk /sdcard/
$ adb shell
# mount -o rw,remount /system
# cp /system/app/SamsungServiceMode.apk /system/app/SamsungServiceMode.apk-backup
# cp /sdcard/SamsungServiceMode.apk /system/app/
# mount -o ro,remount /system
Now go to NetworkLog application and press the button to start logging. It will start logging all of your network data locally on your sdcard, but will not send in anywhere.
Reboot the phone to start logging control-plane data. Data-plane logging will restart automatically.
Please share your data with us! We will not collect it ourselves, but your help is immensely useful!