MobileMiner allows you to track the trail of data your Android device leaves behind you. It was written as part of the "Big Social Data" project at King's College London's Centre for e-Research. Currently it logs:
- IDs of the GSM cells you visit.
- Mobile networks that provide mobile data.
- Names and BSSIDs of wifi hot-spots.
- Processes that open network sockets.
- Socket IP addresses and ports.
- When 'net-enabled apps send notifications.
At the moment, this data is saved to an SQLite database that can be exported and analysed elsewhere. Soon, we hope to have it enable browsing the data on the device, showing which apps use mobile data the most frequently and where. It will also upload anonymized data to a central store, possibly based on CKAN.
Installation
We're not in the Play Store yet, so you'll need to allow your device to install from "unknown sources" in settings. Either visit this site with your device and use the download link, or else use the QR-code above. Open "MobileMiner.apk" in the notifications tray, and confirm that you want to install the app. (It's interesting how few permissions it needs to track network activity. What permissions do your favourite apps have?)
Usage
The first time you press the "Start Mining" button, you'll be asked to authorize the app as an accessibility service so it can log when apps send you notifications. (Only the time of the app and the time of the notification are stored, the content is not.) Once mining has been started, you'll see details about the network you're using to get data, your current GSM cell location, and any network sockets that have been opened.
Chrome for Android has been quite busy... Press "My Data" then "Export" to copy the current SQLite database to where your computer will be able to see it when you mount your device. The data will be in the "Download" directory of the device's flash memory, or SD card if it has one. The easiest way to explore the data is with an SQLite browser extension, there's SQLite Manager for Firefox, and codev for Chrome. If you want to play with your data with some code, SQLite is supported by Python's standard library.