This folder contains utility scripts to run the experiments defined in the artifact appendix.
e1.sh- Test script for experiment 1: Dataset preparatione2.sh- Test script for experiment 2: TapTrap functionalitye3.sh- Test script for experiment 3: Malicious app detectione4.sh- Test script for experiment 4: Vulnerable app detectionstart_emulator.sh- Script to start an Android 15 Pixel 6a emulator
Reviewers: Please follow the instructions in the artifact appendix.
Users: You may request access to the APK dataset by contacting the authors.
Note
To produce the results in the paper, we used the following environment:
- Dataset Preparation: Ubuntu 24.04 (x86) with 491 GB of RAM and 112 CPU cores
- Malicious App Detection:
- Extraction of animations: Ubuntu 24.04 (x86) with 491 GB of RAM and 112 CPU cores
- Analysis of animations: MacOS 15 (ARM) with 32 GB of RAM and 10 cores
- Vulnerable App Detection: Ubuntu 24.04 (x86) with 491 GB of RAM and 112 CPU cores
The following instructions assume a device running Ubuntu 24.04. For other operating systems, please follow the official instructions.
- Download the installation script
curl -fsSL https://get.docker.com -o docker.sh
- Install Docker:
sudo sh docker.sh
- Install rootless Docker:
dockerd-rootless-setuptool.sh install
(for official instructions, see https://developer.android.com/tools/sdkmanager)
- Download the latest command line tools by running
curl -O https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip - Run
unzip commandlinetools-linux-13114758_latest.zipto extract the downloaded file. - Run
mkdir -p $HOME/Android/Sdk/cmdline-tools/latestto create the target directory. - Run
mv cmdline-tools/* "$HOME/Android/Sdk/cmdline-tools/latest"to move the command line tools to the Android SDK directory. - Set the
ANDROID_HOMEenvironment variable and add the command line tools to$PATH:- for Bash:
echo 'export ANDROID_HOME="$HOME/Android/Sdk"' >> ~/.bashrc && \ echo 'export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"' >> ~/.bashrc && \ source ~/.bashrc
- for Zsh:
echo 'export ANDROID_HOME="$HOME/Android/Sdk"' >> ~/.zshrc && \ echo 'export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"' >> ~/.zshrc && \ source ~/.zshrc
(for official instructios, see https://developer.android.com/tools#tools-platform)
- Install the platform tools via `sdkmanager´:
sdkmanager "platform-tools" - Add the platform tools to
$PATH:- for Bash:
echo 'export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"' >> ~/.bashrc && \ source ~/.bashrc
- for Zsh:
echo 'export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"' >> ~/.zshrc && \ source ~/.zshrc
Please refer to the artifact appendix (Section A.4) for instructions on how to run and reproduce the experiments, the expected outcomes of the experiments, and the approximate resources necessary.
[ERROR] Missing system requirements. Run the following commands to
[ERROR] install the requirements and run this tool again.
########## BEGIN ##########
sudo sh -eux <<EOF
# Install newuidmap & newgidmap binaries
apt-get install -y uidmap
EOF
########## END #########- Run the commands in between
BEGINandEND
- Make sure the script is executable. Run the following command:
chmod +x ./e1.sh
- Then run it again:
./e1.sh
You are running as a user that lacks permission to access /dev/kvm. This prevents the emulator from using KVM-based hardware acceleration, which is required for x86_64 emulation.
To fix this issue, add your user to the kvm group:
sudo usermod -aG kvm <USER>Log out and back in to apply the group membership and retry.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. when running start_emulator.sh
This error typically occurs in headless environments where the Qt application cannot find or load the required platform plugin (e.g., xcb) due to missing GUI libraries or display configuration. Try running it without headless mode or set up a virtual display.