一句话:提出 RandR,在应用沙箱内定向插桩运行时方法,实现 Android 应用 UI 与网络输入的可移植记录与重放。
移动应用的真实执行难以复现:外部输入来源众多且交互性强。已有记录/重放方案多只支持特定输入源(如触摸事件),需侵入式修改软件栈,且依赖设备特有事件,录制结果无法跨平台可靠重放。本文提出 RandR:无需 OS 或应用源码、管理员权限与特殊平台支持,通过在应用自身沙箱内对选定方法集运行时插桩,记录并重放 UI 与网络等多源输入;并将 UI 事件抽象为对特定 UI 组件(如按钮)的交互而非屏幕坐标,以获得可移植性。作者在模拟器与商用量产真机等平台上,用 30 多个真实 Android 应用验证了其准确的跨平台记录与重放能力。
The ability to repeat the execution of a program is a fundamental requirement in many areas of computing from computer system evaluation to software engineering. Reproducing executions of mobile apps, in particular, has proven difficult under real-life scenarios due to multiple sources of external inputs and interactive nature of the apps. Previous works that provide record/replay functionality for mobile apps are restricted to particular input sources (e.g., touchscreen events) and present deployment challenges due to intrusive modifications to the underlying software stack. Moreover, due to their reliance on record and replay of device specific events, the recorded executions cannot be reliably reproduced across different platforms. In this paper, we present a new practical approach, RandR, for record and replay of Android applications. RandR captures and replays multiple sources of input (i.e., UI and network) without requiring source code (OS or app), administrative device privileges, or any special platform support. RandR achieves these qualities by instrumenting a select set of methods at runtime within an application's own sandbox. In addition, to enable portability of recorded executions across different platforms for replay, RandR contextualizes UI events as interactions with particular UI components (e.g., a button) as opposed to relying on platform specific features (e.g., screen coordinates). We demonstrate RandR's accurate cross-platform record and replay capabilities using over 30 real-world Android apps across a variety of platforms including emulators as well as commercial off-the-shelf mobile devices deployed in real life.
DOI 原文 ·
@inproceedings{paperbot5185,
title = {RANDR: Record and Replay for Android Applications via Targeted Runtime Instrumentation},
author = {Onur Sahin and Assel Aliyeva and Hariharan Mathavan and Ayse Coskun and Manuel Egele},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00022}
}