2019-01-09 ../..

Android Internals and Security: Get Started Lab

Table of Contents

1 Background

  1. Lab Setup for this Course

2 Tasks

This first lab focuses on a few simple tasks. Simple but time consuming. Essential experience. Due date posted on the Course Home Page.

The purpose of this lab is (i) to make you aware that an Android device is a fully networked computer system, (ii) to alert you regarding expected Linux experience, and (iii) to get you started with software design and development on the Android platform.

2.1 Task 1: Android Emulator

Learning to use a tool that emulates an Android device is helpful during development. There are now several emulators. The one included in Android SDK/ Studio should be learned first. You will discover that it is "slow"; GenyMotion and others are faster.

Create two or more AVDs. Going through the menu. One a Google Nexus device. Another of your own choice. Take your favorite APKs and install them in the AVDs.

Deliverables: (i) Include in the Report an overview of what/ how you did. (ii) Several screenshots, both during the creation fo the AVDs and during the running of the APK under the emulator.

2.2 Task 2: Android APK Development

Use IDE to build "Hello-This-Is-Me" APK and run it within Android Emulator or on a device of your choice. It is highly recommended that you first build the "Hello World" following the developer.android.com tutorial. https://developer.android.com/training/

  1. Display text "1. Wright State U Android Security -" + <your name> on the screen by using code.
  2. Display text "2. Wright State U Android Security -" + <your name> on the screen by XML.
  3. Display your photo on the screen.
  4. Use two different layouts in Android to display the text "Wright State U Android Security - " + <your name> followed by your photo.
  5. Combine all the above into one APK with multiple screens with transitions in the order shown.

Deliverables: (i) Please include in your Report your experience on the installation and verification of Android Studio. (ii) Include several screenshots running the APK in the emulator (or real device) in your write-up. (iii) Your project files (java, xml, etc) exported from your Android project as an archive. (iv) HelloThisIsMe.apk

2.3 Task 3: Personally Build an Android Open Source App

  1. http://www.makeuseof.com/tag/12-best-free-open-source-android-apps/
  2. https://guardianproject.info/apps Secure Mobile Apps4
  3. The above sites describe several open source APKs. Select one, download its source code to enhance in later lab/ projects. For now, the task is to build it as-is. To successfully build, you may have to tweak several files. Build in the Linux environment – any distribution. Google Android recommends Ubuntu.
  4. The above apps vary quite a bit in complexity. Do not hesitate to try what appears to be hard one from the list. Show us your effort in the Report file, and we will be very supportive.
  5. In later projects, we will focus on mobile computing (i.e., networking, processes/threads, location based services, etc.) rather than UI. Use this as a criterion for selection.

Deliverables: (i) Include in the Report an overview of what you built and how, followed by an exhaustive list of changes you made. (ii) The APK produced.

2.4 Task 4: adb (Android Debug Bridge)

  1. http://developer.android.com/tools/help/adb.html
  2. If using a real device: Physically connect a real Android device to a PC with a USB cable.
  3. Connect to real/ virtual device using adb.
  4. Install the above apk.
  5. Invoke shell.
  6. List the command file names of /system/bin and /system/xbin of this device.
  7. List the partitions and what is mounted where.

Deliverables: (i) Capture all of the above into the Report file. [Hint: Use the command named script after "cleaning".]

2.5 Task 5: Android System/ Networking APKs

Download (from Google Play and/or FDroid.org) and install (i) an SFTP/SSH server, (ii) an ssh client/terminal (iii) a local terminal on your Android device, (iv) bash the shell, (v) busybox, (vi) tmux or termux. Some example APKs are web.oss.sshsftp, sk.vx.connectbot, com.spartacusrex.spartacuside. But, you are welcome to choose other APKs that fit the description.

Deliverables: (i) Please include in your Report your experience of using these apps. (ii) Include several screenshots running the APKs in the emulator or real device in your write-up.

3 Submission

  1. [15 points] Lab Report quality and completeness. [5 points] Include a journal. By the hour. You must follow the Lab Report Template. There should be a section on each of the tasks. A couple of lines of an answer to each (implied/ explicit) question/ discussion item. Must number them as in this document.
  2. Use good judgment in (i) what to submit and (ii) what to omit and (iii) how long the report becomes. Do not make the report way longer than, say, 20 pages. It is possible to remain under 20 pp, and receive full score. Lack of judgment earns negative points.
  3. Submit relevant files of source code, and of text. Always interpret the results – when before + after states are in context.
  4. Submit a PDF file named exactly Report-L1.pdf, and a tarball L1.tbz [created with tar cfjvv L1.tbz source-files* ]. (Scripts are used to check various things – so file names should obey such "rules".)
  5. Additionally include the .apk and deliverables mentioned above.

4 References

  1. Prabhaker Mateti, Expectations of the Lab Report, 2019.
  2. Prabhaker Mateti, Lecture Notes on Getting Started, 2019.
  3. Prabhaker Mateti, Lecture Notes on (i) APK Development, (ii) Platform Tools (AVDs, adb and fastboot), (iii) Android Networking

5 End

Copyright © 2019 • www.wright.edu/~pmateti 2019-01-09