Developing Automated Input Generator for Android Mobile Device to Evaluate Malware Behavior

According to International Data Corporation (IDC), Android accounted for 81% of all smartphone shipments in the third quarter of 2013. With the increase in smartphones, mobile application installs from Google Play have reached more than 48 billion app installs as revealed by Sundar Pichai, senior vice president, Chrome and Apps at Google I/O 2013. Thus, Android application development has become increasingly popular with the need of an effective software solution for application development and testing. While most Android applications are developed in Java, the Android framework is quite different fromm typical Java frameworks. Thus, while development or testing of Android applications, the user needs to be aware of all the terms and concepts specific to the Android framework such as activity, views and the Android SDK in general. A key to successfully develop Android applications is not just understanding the core Android concepts but also testing the functionality of the application before it is published in the Android market. The most important part of testing is simulating inputs to the application which closely resemble the inputs that users are actually going to provide once the application is downloaded. Coupled with inputs, another important facet of Android testing is to ensure maximum code coverage while the application is tested. This is largely dependent on the inputs supplied while testing the application. To achieve automated testing with these criteria in mind, it is challenging to ensure ideal testing of Android applications. Our focus of Android testing was therefore to devise a solution which matches or at least closely resembles the ideal testing of Android applications. In this talk, we present an automated input generator which systematically scans the user interface of an application and simulates clicking of each object one-by-one till there are no objects left or till the system has covered the maximum amount of possible views in the user interface of the application. The simulation of inputs is not just random inputs but systematic, valid inputs. The underlying principle behind this approach is the depth first search algorithm which traverses throughout the application to cover as many layers of the application's user interface as possible. The purpose of using input generator to evaluate the mobile device malware in the virtual environment. The proposed input generator is fully automated and it is therefore difficult to devise a generalized automated solution for all Android applications. Moreover, the system takes the user interface of the application into account and it is therefore challenging to include applications with complex user interfaces such as large application or games. Therefore, the proposed idea is currently tested only on simple applications. Future functionality takes into account complex applications while the basic idea of traversing the application's user interface will remain the same. We evaluated the technique by comparing it on a high level detail with the existing input generating tools such as Monkey and Monkey Runner. The proposed input generating technique is not only more efficient while generating valid inputs as compared to randomized inputs but also more easier to use than tools such as Monkey Runner. In other words, the idea of the proposed input generator couples the simplicity of the random approach in the Monkey tool along with the benefit of ensuring valid inputs in the Monkey Runner tool while ensu ring maximum code coverage.