Skip to main navigation Skip to search Skip to main content

Nadroid: Statically detecting ordering violations in android applications

  • Virginia Polytechnic Institute and State University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

16 Scopus citations

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.

Original languageEnglish
Title of host publicationCGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization
PublisherAssociation for Computing Machinery, Inc
Pages62-74
Number of pages13
ISBN (Electronic)9781450356176
DOIs
StatePublished - Feb 24 2018
Event16th International Symposium on Code Generation and Optimization, CGO 2018 - Vienna, Austria
Duration: Feb 24 2018Feb 28 2018

Publication series

NameCGO 2018 - Proceedings of the 2018 International Symposium on Code Generation and Optimization
Volume2018-February

Conference

Conference16th International Symposium on Code Generation and Optimization, CGO 2018
Country/TerritoryAustria
CityVienna
Period02/24/1802/28/18

Keywords

  • Android
  • Data race
  • Debugging
  • Ordering violation
  • Static analysis
  • Threadification
  • Use-after-free

Fingerprint

Dive into the research topics of 'Nadroid: Statically detecting ordering violations in android applications'. Together they form a unique fingerprint.

Cite this