SEMar 27, 2017

Generating Predicate Callback Summaries for the Android Framework

arXiv:1703.08902v315 citations
Originality Incremental advance
AI Analysis

This work addresses a specific problem for Android app developers and analysts by providing a complementary, automated approach to improve program analysis and testing precision, though it is incremental as it builds on existing control flow analysis methods.

The paper tackles the challenge of missing callback execution orders in Android apps by introducing Predicate Callback Summaries (PCS) to automatically model callback control flow from API calls, enabling the construction of control flow graphs and detection of infeasible paths.

One of the challenges of analyzing, testing and debugging Android apps is that the potential execution orders of callbacks are missing from the apps' source code. However, bugs, vulnerabilities and refactoring transformations have been found to be related to callback sequences. Existing work on control flow analysis of Android apps have mainly focused on analyzing GUI events. GUI events, although being a key part of determining control flow of Android apps, do not offer a complete picture. Our observation is that orthogonal to GUI events, the Android API calls also play an important role in determining the order of callbacks. In the past, such control flow information has been modeled manually. This paper presents a complementary solution of constructing program paths for Android apps. We proposed a specification technique, called Predicate Callback Summary (PCS), that represents the callback control flow information (including callback sequences as well as the conditions under which the callbacks are invoked) in Android API methods and developed static analysis techniques to automatically compute and apply such summaries to construct apps' callback sequences. Our experiments show that by applying PCSs, we are able to construct Android apps' control flow graphs, including inter-callback relations, and also to detect infeasible paths involving multiple callbacks. Such control flow information can help program analysis and testing tools to report more precise results. Our detailed experimental data is available at: http://goo.gl/NBPrKs

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes