Android applications are composed of components. In an application, a component can complete a task independently but components may interact with each other to complete a task. In Android, a component of one application can also communicate with a co...
Android applications are composed of components. In an application, a component can complete a task independently but components may interact with each other to complete a task. In Android, a component of one application can also communicate with a component of another application. Inter-component communications are integral part of Android applications. They are implemented through both source code and a manifest file of an Android application. A manifest file is an essential configuration file in each Android application. Incorrect implementations of inter-component communications can cause serious reliability and security issues.
This thesis performs empirical studies on 13,944 Android applications to assess security risks and to identify reliability and security issues originating from incorrect implementations of inter-component communications. To mitigate the reliability and security issues, this thesis presents a conceptual model which represents the inter-component communications at a higher abstraction level and a completely automated tool which extracts the model from the source code. The extracted model can be used for analyzing inter-component communications at a higher abstraction level. The tool also generates test cases from the extracted model. The generated test cases can be executed to identify reliability issues caused by improper state implementations of components among others during inter-component communications. In addition to extracting a model from the source code and generating test cases from the model, the tool generates a security report indicating vulnerable inter-component communications. The vulnerable inter-component communications can also be visually analyzed through the extracted model. This thesis also presents another rule-based static analysis tool which analyzes the manifest file to detect various configuration errors including errors in implementing inter-component communications. Overall, the tools presented in this thesis assist Android application developers in mitigating reliability and security issues arise in an application due to improper implementations of inter-component communications among others.