This is the repository for the ASE paper Profile Coverage: Using Android Compilation Profiles to Evaluate Dynamic Testing. You can find the originally submitted artifact under the submitted-version tag.
This repository contains two python projects in src/:
-
adbdevice- python bindings for adb (hw and emulator devices supported)
- emulator control for automated creation/start/stop of emulators
-
aproftracer- depends on adbdevice
- runs profile coverage experiments
- starts emulator if asked to
- installs apps from .apk + .dm if asked to
- calculates offsets in .oat files
- prepares and starts tracing using uprobe events for a given list of offsets
- runs baseline/monkey/droidbot experiment
- collects results
- cleans up if asked to
The experiments folder contains Makefiles to run experiments, including downloading apps and cloud profiles. We use a patched version of apkeep and rs-google-play, and are in the process of upstreaming our patches.
The dependencies folder contains external dependencies that are not automatically installed. Install with git submodule update --init. Because the tools need patches, see the [dependencies/README.md] for more info.
- create a pyenv for python 3.11.5
- run
pip instell -e .in both projects insrc/ - run
aproftracer --helpto get an overview of functionality - install dependencies:
a. run
git submodule update --initto fetch the dependencies droidbot, acvtool, and fastbot. b. see the [dependencies/Readme.md] for further instructions to apply necessary patches