/android_ui_deception

Source code for our "What the App is That? Deception and Countermeasures in the Android User Interface" paper

Primary LanguageJava

REPOSITORY CONTENT

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.

HOW TO COMPILE AND USE THE MODIFIED ANDROID

Download the Android official source code

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

Apply the patches

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>

Compile the code

cd <source>
source build/envsetup.sh
lunch 2
make

Refer to the official documentation for more information.

Run the emulator with the correct configuration

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>