Sentinel is a tool for sensor testing to detect leaks in Android apps described in the paper “Sentinel: Generating GUI Tests for Android Sensor Leaks” by Haowei Wu, Yan Wang, and Atanas Rountev, which appeared at the IEEE/ACM International Workshop on Automation of Software Test (AST’18) [PDF] [BibTeX]. Additional details are available in Haowei Wu’s Ph.D. dissertation [PDF] [BibTeX].
Update: We have generalized Sentinel to handle leaks in Android Wear watch faces. Using the approach in the FSE’18 paper “Detection of Energy Inefficiencies in Android Wear Watch Faces” (link) as a starting point, the release now contains a new implementation of that approach using the formalisms and techniques as the orignial Sentinel work. You can find the source code here. The experimental subjects are stored elsewhere. Please follow the instructions here to run the analysis.
- Python 3
- Python UIAutomator
- Java JDK 8+
- Android SDK
- POSIX environment such as Linux/OS X/Bash for Windows
- An Android device or emulator
To download the Sentinel tool:
git clone https://github.com/presto-osu/Sentinel.git cd Sentinel curl -O https://github.com/presto-osu/Sentinel/releases/download/1.1/Apps.tar.gz tar -xf Apps.tar.gz
To install uiautomator for Python 3:
pip3 install uiautomator
To build the tool:
cd SootAndroid ant cd ..
Please note Apktool version 2.3.3 is already included under
SootAndroid/apktool.jar for your convenience, if you encounter any compatibility issues, please upgrade Apktool from the its project website.
After building this tool, please follow the instruction here to use this tool.
Appsincludes the open-source apps we used in the evaluation of Sentinel in papers;
exportActivities.pyis the preprocessing script for application apk files;
INSTALL.mdincludes the instructions to run Sentinel;
LICENSEincludes the copyright information;
README.mdis this file;
runSentinel.pyis the starter script of Sentinel;
SootAndroidincludes the implementation of Sentinel tool.
If you have any question, please contact the authors of the paper.