@inproceedings{0867a70468bf4ea08a00a5af2f08cb2e,
title = "Nadroid: Statically detecting ordering violations in android applications",
abstract = "Modern mobile applications use a hybrid concurrency model. In this model, events are handled sequentially by event loop(s), and long-running tasks are offloaded to other threads. Concurrency errors in this hybrid concurrency model can take multiple forms: traditional atomicity and ordering violations between threads, as well as ordering violations between event callbacks on a single event loop. This paper presents nAdroid, a static ordering violation detector for Android applications. Using our threadification technique, nAdroid statically models event callbacks as threads. Threadification converts ordering violations between event callbacks into ordering violations between threads, after which state-of-the-art thread-based race detection tools can be applied. nAdroid then applies a combination of sound and unsound filters, based on the Android concurrency model and its happens-before relation, to prune out false and benign warnings. We evaluated nAdroid with 27 open source Android applications. Experimental results show that nAdroid detects 88 (at least 58 new) harmful ordering violations, and outperforms the state-of-the-art static technique with fewer false negatives and false positives.",
keywords = "Android, Data race, Debugging, Ordering violation, Static analysis, Threadification, Use-after-free",
author = "Xinwei Fu and Dongyoon Lee and Changhee Jung",
note = "Publisher Copyright: {\textcopyright} 2018 Association for Computing Machinery.; 16th International Symposium on Code Generation and Optimization, CGO 2018 ; Conference date: 24-02-2018 Through 28-02-2018",
year = "2018",
month = feb,
day = "24",
doi = "10.1145/3168829",
language = "English",
series = "CGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization",
publisher = "Association for Computing Machinery, Inc",
pages = "62--74",
booktitle = "CGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization",
}