Fall’2012, Project 3
(Due 11/28/2012)
In project 3 we focus on analyzing the behavior of different Android applications on the mobile platform. Such a monitor can be useful in detecting malicious activities and malwares.
An android application requires a certain set of permissions to access some restricted resources in the smart phone. When a user about to install an application, the installation process will prompt the user about the type of the permissions required in running the application. If the user accepts, then the application will be installed. Once installed, it acquires the authority to use those resources. Sometimes, some of the privileges and resources are not even used by the application.
For project3, first, create an android application to monitor the usage of different resources and log them in a file (in the smart phone storage -sd card). Let’s call this app ResourceMonitor (you may give any creative name of your choice).
Next, you will be given a set of android applications (talk to TA to get this list) which can be downloaded from the Google Paly. This set of applications are related to each other based on functionality (For example Games, Business Applications etc.). The goal is to install applications in your device and monitor the resource usage using the Resource Monitor (written by you) and prepare a report about the system resource usage.
This project can be divided into four phases.
Step1: Build Android SDK and test on the hardware.
Step2. Download and build an Android application to monitor at least one system resource and log them in a file (use the monitor program supplied/pointed by the TA)
Step3: In this step, you are expected to develop a module for logging usage of different resources. Find/Decide a set of system resources (at least 5) that can be monitored. Then update your application to monitor these new set of resources and log them (e.g., network access, RAM usage, SD usage, CPU usage, location, SMS usage). It is also worth checking if the application is using the camera, microphone and other sensors.
Step4: Download a set of applications and monitor their behavior. For example, develop histograms for monitoring how long and how many times the resource has been accessed. The X-axis describes temporal aspects (time, in ms or seconds) of the application and the Y-axis histogram bins for “how long” or “how many time” the resource is accessed. Create the bar graph for each application and comment (4-5 lines for each plot) on the behavior of the application. The report should include problem definition, introduction, and methodology describing your monitor and how it monitors various resources, results, discussion, conclusion and references (5-10 pages including the graphs)
Tips for step 2:
Create an initial android resource monitoring app that monitors at least one resource (ex: network monitoring). You may use the same network monitoring app that TA gave you in the slides. But keep in mind this is a very basic app. It is not capable of logging data into a file nor it can run as a service in the background to monitor other apps. Next, you can start with this app (the one in the slides) and add the following functionality;
1. Capability in logging the data into a file with time stamps.
2. Also, the app should run as a service in the background
Finally, you may use this app to monitor other apps. Create your app so that it can start and stop the monitoring service.
Some useful links:
1. On Java file handling :
http://www.java2s.com/Tutorial/Java/0180__File/Catalog0180__File.htm
2. It is advised to use buffered reader / writer
http://www.java2s.com/Tutorial/Java/0180__File/0260__BufferedReader.htm
http://www.java2s.com/Tutorial/Java/0180__File/0340__BufferedWriter.htm
3. Don't forget to enable the WRITE_EXTERNAL_STORAGE permission.
4. Android services:
http://www.vogella.com/articles/AndroidServices/article.html
http://developer.android.com/guide/components/services.html
To Install and APK file in the Emulator:
There are many methods to do this.
This particular method uses a command line instruction in the PC to install the APK file in the emulator (or in the mobile phone).
Steps:
1. Start the emulator
2. Add the following directory to your path in your PC
"[Android SDK Home]\android-sdk\platform-tools\"
3. Using the command line, go to the directory where you have your APK files
4. Issue the following command in the command line to install the APK file in the emulator
adb -s emulator-5554 install "your apk file name.apk"
Then wait until it installs and gives you the confirmation.
Note: you may use the command: adb install "your apk file name.apk", but make sure only one emulator is running an no mobile phones are plugged in.
5. Then go to the menu in your emulator to check the installed application.
References:
[1] http://www.mobisoftinfotech.com/blog/android/installing-apk-files-on-android-device-emulator/
[2] A video (this does not show the same steps as above but it is a similar method): http://www.youtube.com/watch?v=7ALFFPPdvgs
I have attached a set of Android apps (5 apps) for you to test with your Android monitoring program. Please find the link in front of your name.
Amelia Chase http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(1).zip
Amrutha Chalasani http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(2).zip
Bhoomi Manharbhai Raval http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(3).zip
Chao Wang http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(4).zip
Chitra Yarlagadda http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(5).zip
Gajendira R. Sivajothi http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(6).zip
Jagannadh Vempati http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(7).zip
Patrick Cryer http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(8).zip
Ratna Eluri http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(9).zip
Ravi Teja Gannavarapu http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(10).zip
Savitha Chintakindi http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(11).zip
Snigdhitha Kasarla http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(12).zip
Sonal Tanpure http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(13).zip
Srikanth Datti http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(14).zip
Sultan Alotaibi http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(15).zip
Vishwajyoth Palle http://nsl.cse.unt.edu/~fazeen/AndroidApps/Apps%20(16).zip
DEMO
Please demo the following (by displaying on the monitor, string
in files, plots, etc) for the five applications.
Make sure you practice your demo before coming to the lab.
1. What server (name or IP address) is being accessed during
network access while running the application ?
2. How often is access the internet ?
3. Based on the resource monitoring, are you be able to determine
what kind of advertisements are activated in the run-time?
4. If so, how long the app runs the add?
5. Does the app store/access the data/info in the SD card?
6. If so, what kind of files it stores/access in the SD card.
7. How frequently does it access the storage?
8. What is the battery consumption when the app is running?
9. What is the CPU sage, while the app is running and how, and when it varies?
10. What is the RAM usage while the app is running?
Share with your friends: |