Download latest Android SDK, and add the following tools into your PATH environment variable:
Java version 7
Clone and build the repo at ADRENALIN-RV
git clone https://github.com/Haiyang-Sun/ADRENALIN-RV.git
cd ADRENALIN-RV
export JAVA_HOME="PATH_TO_JAVA_7"
ant
Download the Nexus 5 image file here and flush the Android image with dynamic weaving with the following bash command:
adb reboot-bootloader;
fastboot -w update nexus.zip
Wait until the installation finish and the system reboots (You will see Android Logo after reboot) and then run in root mode: ~~~bash adb root ~~~
Download the intel emualtor image here. It includes files as below:
You can start the emulator with the following bash command:
emulator64-x86 -sdcard ../sdcard.img -sysdir ./ -system ./system.img -ramdisk ./ramdisk.img -data ./userdata.img -kernel ./kernel-qemu -memory 1024
Compile using java 7
export JAVA_HOME="PATH_TO_JAVA_7"
ant
Start instrumentation server using
./start-instrumentation.sh [config_file] #or
./start-instrumentation.sh disl.config.sample #using the sample config
Install the target app "com.fdhgkjhrtjkjbx.model.apk"
adb install com.fdhgkjhrtjkjbx.model.apk
Use monkey to dynamically test your application. For example, below bash script will use monkey to launch an app and inject some random test events.
adb shell monkey -p com.myapp -c android.intent.category.LAUNCHER 1
adb shell monkey -p com.myapp --throttle 500 -v 1000
Dumpping log via Android default Logging. You can fetch the log and filter your result by
adb logcat | grep YOUR_TAG
e.g., use the following scripts you will get the output of our information leak analysis.
./get-violations.sh
./get-violation-detail.sh [idx]