App Genome: Callback Sequencing in Android

Recent analysis shows that the callback sequences are of great importance in the analysis of Android applications (apps for short), due to the app's event-driven nature. However, existing works only extract a part of the callback sequences, depending on the need for their specific properties. We propose App Genome sequencing, an automatic fine-grained callback extraction, covering lifecycle and non-lifecycle, inner-and inter-component callback relations, as well as related attributes, including global objects and operations, along the callback sequences. The extracted App Genome facilitates more complete analysis of Android apps, since it contains more callback sequences and data information, than existing works. We use a process algebra called CSP# to represent the App Genome. We implement our method as a tool, which takes an app as input, automatically generates the CSP# model of the App Genome and automatically invokes the model checker to verify a given property.

[1]  Nenad Medvidovic,et al.  Detecting event anomalies in event-based systems , 2015, ESEC/SIGSOFT FSE.

[2]  Nenad Medvidovic,et al.  Identifying message flow in distributed event-based systems , 2013, ESEC/FSE 2013.

[3]  Dawn Xiaodong Song,et al.  Contextual Policy Enforcement in Android Applications with Permission Event Graphs , 2013, NDSS.

[4]  Yan Wang,et al.  Static Window Transition Graphs for Android (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[5]  Yan Wang,et al.  Static Control-Flow Analysis of User-Driven Callbacks in Android Applications , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[6]  Sam Blackshear,et al.  Selective control-flow abstraction via jumping , 2015, OOPSLA.

[7]  Jun Yan,et al.  Light-Weight, Inter-Procedural and Callback-Aware Resource Leak Detection for Android Apps , 2016, IEEE Transactions on Software Engineering.