Operating Systems of Mobile Devices (OSMZ)

Week VII. (22.3.-26.3.2021)

This week we will start an introduction to the architecture of the Android OS (lecture slides). In the introduction, we will look at how a specific version of Android is built. Although open source, the Android Open Source Project has its own policy (Google) that defines how source code is published. Answers to frequently asked questions about Google application distribution, system modifications, and licensing policies are summarized on the FAQ page. Instructions and a build sample with all dependencies can be found in the following page.

Many functions of the operating system would not be possible without the help of hardware. It is responsible mainly for memory protection and management. Modern processors support running in various code protection modes, for Intel modes and for ARM. Many of these modes are maintained for backward compatibility only and are a source of potential vulnerabilities, such as Intel's SMM mode.

Android, like other UNIX systems, uses a user and group model for access control . You are already familiar with this model while studying EXTx file systems. However, due to the use of different libraries, here we find some deviations from what we know from Linux (e.g., library Bionic. There are also differences in scheduler policies. The reason is the effort to save limited battery resources.

For desktop computers, you can compensate for the lack of memory by swapping pages to disk. For mobile devices, this would be highly inefficient and would also reduce the life of the flash memory. Android uses a special RAM partition for this, which is compressed and serves as a storage for swap.

PRESENTATION

LITERATURE

Andrew S. Tanenbaum - Modern operating systems. 4th edition:

  • Chapter 10.8 - Android (pp. 802 - 844)

ADDITIONAL READINGS

You can find a nice lecture from the Google I/O conference on memory management in Android.
Android Internals: A Confectioner's Cookbook.

QUESTIONS

After reading the above texts, you should be able to answer following questions from the topics for the exam, specifically:

  • Briefly describe the Android platform, basic structure and virtual machine.
  • Describe the application security mechanisms and their dependency on OS services.
  • Describe how user data is secured across applications.