This repository contains data and source code about the paper:
"What the App is That? Deception and Countermeasures in the Android User Interface", presented at 2015 IEEE Symposium on Security and Privacy (SP)
This repository contains three main folders:
###paper The pdf file of the paper.
###presentation The slides and the videos presented at IEEE SP 2015.
###attacks Source code and videos showing some of the attacks described in the paper.
###android_modifications The source code of the Android modifications, enabling the proposed on-device, defense.
Download the Android source code (tag: android-4.4_r1.2
) as explained here.
Use:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
instead of:
repo init -u https://android.googlesource.com/platform/manifest
to download the correct tag
Assume that <git>
is the folder where this file (README.md
) is and <source>
is the folder where Android has been downloaded.
Run:
cd <git>/android_modifications
./apply_patches.sh <source>
cd <source>
source build/envsetup.sh
lunch 2
make
Refer to the official documentation for more information.
The patches have been tested on a device mimicking the appearance of a Nexus 4.
Use the following instructions to run the emulator in the correct configuration.
###Create a correct avd Open Android AVD Manager
cd <source>/sdk
android avd
and use it to create a new Nexus 4 avd (named <avd_name>
).
###Link the avd to the built image
Assuming that <avd_name>
has been created in <avd_folder>
, run the following commands:
AVD=<avd_folder>
cd <source>
CWD=$(pwd)
ln -s "$CWD"/out/target/product/generic_x86/cache.img "$AVD"/cache.img
ln -s "$CWD"/out/target/product/generic_x86/userdata.img "$AVD"/userdata.img
ln -s "$CWD"/out/target/product/generic_x86/userdata-qemu.img "$AVD"/userdata-qemu.img
ln -s "$CWD"/prebuilts/qemu-kernel/x86/kernel-qemu "$AVD"/kernel-qemu
ln -s "$CWD"/out/target/product/generic_x86/ramdisk.img "$AVD"/ramdisk.img
ln -s "$CWD"/out/target/product/generic_x86/system.img "$AVD"/system.img
###Run the emulator
cd <source>
source build/envsetup.sh
emulator -avd <avd_name>