CIDER: Understanding and Detecting Callback Compatibility Issues for Android Applications

Research Paper

Huaxun Huang, Lili Wei, Yepang Liu, and Shing-Chi Cheung. “Understanding and Detecting Callback Compatibility Issues for Android Applications”. In Proceedings of the 33st ACM/IEEE International Conference on Automated Software Engineering (ASE 2018), Montpellier, France, Sept 2018. [preprint]

Research Materials

This website will provide you with the following information:

  • The dataset to answer empirical research questions.
  • Detailed information of PI-Graph and CIDER.
  • Detailed information of issue detected by CIDER.
  • Overview

    The main goal of CIDER project is to help Android developers understand and detect callback compatibility issues, which are mainly caused by control flow inconsistencies due to callback API evolutions.

    To achieve this, we first conduct an empirical study with the following steps:

  • We collected a list of callback APIs from Android API Reference.
  • We study how they evolved from Android API Reference, Android Differences Reports, and git commits in Android Open Source Project (AOSP).
  • We studied real-world callback compatibility issues from open-source Android projects.
  • We observed from the study that there are two common types of callback compatibility issues.
  • CCFG structural changes
  • CCFG non-structural changes
  • We then designed CIDER to automatically detect callback compatibility issues based on static analysis. CIDER is built on top of Soot framework. CIDER now can detect issues induced by CCFG structural changes. To test whether CIDER is useful for detecting real issues in Android apps, we evaluate CIDER on 20 real Android apps collected from GitHub. In total, CIDER found 13 callback compatibility issues, and 9 of them have been fixed by the original developers.

    Researcher

    Huaxun Huang
    Lili Wei
    Yepang Liu
    Shing-Chi Cheung