Mosaic is a cross-platform, timing-accurate record and replay tool for Android-based mobile devices. Mosaic enables cross-platform record and replay through a novel virtual screen abstraction. User interactions are translated from a physical device into a platform-agnostic intermediate representation before translation to a target system. The intermediate representation is human-readable, which allows Mosaic users to modify previously recorded traces or even synthesize their own user interactive sessions from scratch.
- Python 2.7
- argparse (
pip install argparse
) - enum34 (
pip install enum34
)
- argparse (
- Rooted Android device
- Android Debugger (ADB)
- Reran [http://www.androidreran.com/]
- Install to /data/local on device
- Grant executable permissions
Although Mosaic is a Python-based command line tool, we provide the following bash wrappers for conveince operations:
- Calibrate source and target devices:
./calibrate.sh <SOURCE-NAME>
./calibrate.sh <TARGET-NAME>
- Record applicaton use case:
./calibrate.sh <APP-NAME> <SOURCE-NAME>
- Virtualize application use case:
./virtualize.sh <APP-NAME> <SOURCE-NAME>
- Translation application use case:
./translate.sh <APP-NAME> <SOURCE-NAME> <TARGET-NAME>
- Replay application use case:
./run.sh <APP-NAME> <SOURCE-NAME> <TARGET-NAME>