Android Operating System

Similar documents
COMMONLY, the problem that most any computing platform will have is interoperability, and

Android open-source operating System for mobile devices.

ANDROID OPERATING SYSTEM

Android Architecture. Alexandra Harrison & Jake Saxton

Introduction to Android

Mobile Phones Operating Systems

Development. SriSeshaa Technologies. Table of Contents

Android Architecture For Beginners

Creating and Using Databases for Android Applications

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Example of Standard API

Introduction to Android

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Introduction to Android

An Introduction to Android

Research and Design of Universal and Open Software Development Platform for Digital Home

CS378 -Mobile Computing. Android Overview and Android Development Environment

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

Android Operating System:

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Performance Analysis of Android Platform

ITG Software Engineering

The Android Platform

Mobile Operating Systems. Week I

Workshop on Android and Applications Development

01. Introduction of Android

Overview. The Android operating system is like a cake consisting of various layers.

Overview of CS 282 & Android

Analysis of advanced issues in mobile security in android operating system

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

ELEC 377. Operating Systems. Week 1 Class 3

Lecture 1 Introduction to Android

A Look through the Android Stack

International Engineering Journal For Research & Development

Issues in Android on Mobile Platform and Their Resolution

A Short Introduction to Android

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Android Programming and Security

Android Application Development. Daniel Switkin Senior Software Engineer, Google Inc.

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

RoverPal - A Mobile Payment Application

Architecture (SOSP 2011) 11/11/2011 Minsung Jang

Android Basics. Xin Yang

Priority Based Pre-emptive Task Scheduling for Android Operating System

Praktikum Entwicklung Mediensysteme (für Master)

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

Programming the Android Platform. Logistics

Mobile Application Development 2014

AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Android 5.0: Lollipop OS

Hacking your Droid ADITYA GUPTA

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

ANDROID INTRODUCTION TO ANDROID

Google Android: An Emerging Innovative Software Platform For Mobile Devices

CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems

ODROID Multithreading in Android

Choosing a Mobile Application Development Approach

Android v ios Mobile Operating Systems

Introduction to Android Development. Ed Burnette

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

A Survey on Mobile Forensic for Android Smartphones

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

Mobile Applications Grzegorz Budzyń Lecture. 2: Android Applications

OPERATING SYSTEM SERVICES

Review On Google Android a Mobile Platform

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Application of Android OS as Real-time Control Platform**

Figure 6.1. Windows Phone 7 s hub-based interface, made up of live tiles and information aggregation

Smartphone market share

Berlin Institute of Technology FG Security in Telecommunications

Frameworks & Android. Programmeertechnieken, Tim Cocx

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Android Mobile App Building Tutorial

Mobile applications security Android OS (case study) Maciej Olewiński. Cryptographic Seminar r.

CPU Scheduling Outline

Synthesis for Developing Apps on Mobile Platforms

ipad, a revolutionary device - Apple

Android on i.mx Applications Processors

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

Introduction to Android

CELLS A Virtual Mobile Smartphone Architecture

Legal notices. Legal notices. For legal notices, see

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Remote Desktop on Mobile

Process Scheduling CS 241. February 24, Copyright University of Illinois CS 241 Staff

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Transcription:

Prajakta S.Adsule Student-M.B.A.[I.T.] BharatiVidyapeeth Deemed University,Pune(india) praju_hiramani@yahoo.co.in Mob. No. 9850685985 Android Operating System Abstract- Android operating system is one of the most widely used operating system these days. Android is an open source and Linux-based operating system for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies. Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android. Android Operating System is mainly divided into four main layers: the kernel layer, Native libraries layer, Applications framework layer and Applications layer. Its kernel is based on Linux. Linux kernel is used to manage core system services such as virtual memory, networking, drivers, and power management. In this paper android OS architecture with android system services as well as security features of Android OS are discussed. I. Introduction:- Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies. Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android. The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008. On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance. The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2. Android OS architecture Android can be subdivided into four main layers: the kernel, libraries, applications framework, and applications. As previously mentioned the kernel is Linux. The libraries that come with Android provide much of the graphics, data storage, and media capabilities. Embedded within the libraries layer is the Android runtime which contains the Dalvik virtual machine, which powers the applications. The applications framework is the API that all applications will use to access the lowest level of the architecture. A.The kernel layer Linux Kernel (Linux 2.6) is at the bottom layer of the software stack. Whole Android Operating System is built on this layer with some changes made by the Google [5]. Like main Operating System it provides the following functionalities: Process management, Memory

Management, device management (ex. camera, keypad, display etc). Android operating system interacts with the hardware of the device with this layer [6]. This layer also contains many important hardware device drivers. Linux kernel is also responsible for managing virtual memory, networking, drivers, and power management. B. Native libraries layer On the top of the Linux Kernel layer is Android's native libraries.the native libraries layer provides Android with the capabilities for its core features. This layer enables the device to handle different types of data. Data is specific to hardware. All these libraries are written in c or c++ language. These libraries are called through java interface. Some important native libraries are: Surface Manager: it is used to manage display of device. Surface Manager used for composing windows on the screen. SQLite: SQLite is the database used in android for data storage. It is relational database and available to all applications. WebKit: It is the browser engine used to display HTML content. Media framework: Media framework provides playbacks and recording of various audio, video and picture formats.( for example MP3, AAC, AMR, JPG, MPEG4, H.264, and PNG). C. Applications framework layer This layer and the layer above it are written completely in Java. The applications framework provides all of the major APIs that the applications will use including things like sharing data, accessing the telephony system, and receiving notifications. An important thing to note about Android OS is that all applications use this same framework no matter the author of the application.this is quite a departure from what many other mobile OS designers have chosen to do. For instance the iphone most certainly differentiates between Apple software and third-party software down to the copy-and-paste feature. D. Applications layer Even the most core features such as the phone and the contacts application reside in this layer.this layer contains software written by the Android team as well as any third-party software that is installed on the device. An effect of allowing third-party developers access to this layer is that the user interface can be overhauled comparatively easily. Third party applications can handle any event that the Android team s application could see (such as the phone ringing). This means that so long as there is a replacement application for the dialer application, anyone could potentially write their own. Given this model we might expect that, as Android becomes more robust, the user will be able to specify what applications should handle which events. Android system services Android provides the services expected in a modern operating system such as virtual memory, multiprogramming, and threads, all on a mobile platform. Many of Android s services are a result of including the Linux kernel. However the Android team has added the telephony stack in return. A. The Linux CPU scheduling algorithm Linux employs a number of different methods for scheduling its processes and its algorithm is very nontraditional in the big picture. There are three scheduling schemes for Linux. Each process is assigned a scheduling scheme depending on the type of task it presents. Real time tasks will often run in the SCHED FIFO or SCHED RR scheme. All other tasks will run in SCHED NORMAL [?]. SCHED NORMAL tasks are handled by a special

algorithm and are preempted by SCHED RR and SCHED FIFO tasks. In a few words the algorithm behaves like a hybrid priority queue that rewards process which are not CPUgreedy. CPU time is divided up into epochs, which are equal slices of time in which the processes can run and use up some of their allotted time, or timeslice. At the end of every epoch, each process remaining timeslice is halved. More time is added proportional to the processes nice value, a value specified by the user or by the system s default nice value.the interesting rollover time has a rewarding effect to I/O bound processes. Since I/O bound processes will likely spend a lot of time waiting, the scheduling algorithm rewards it by letting it keep some of its timeslice. This way processes which are likely being used by the user are very responsive and will often preempt more non-interactive, CPU-bound processes like batch commands. SCHED RR tasks will preempt SCHED NORMAL tasks and are preempted by SCHED FIFO tasks. These tasks are scheduled according to round-robin rules within their own priority bracket. SCHED FIFO tasks behave quite like the name would suggest. Tasks in this queue are scheduled by priority and arrival time, will preempt any other processes trying to run, and will execute for as long as they please. B. Android and file systems Android makes use of a multiplicity of file system types, namely due to the expectation of external memory with unsure file system types. As a result Android relies on the standard Linux package to provide for file systems such as ext2 and ext3, vfat, and ntfs. Android itself uses the yaffs2 file system, which is not a part of the standard Linux kernel, as its primary file system. YAFFS is a file system optimized for NAND and NOR flash memory. At the time when it was developed, file systems did exist for flash memory but most of them catered toward chips which were small enough to use small block sizes. This was unsuitable for large NAND flash chips. YAFFS attempts to solve this by abstracting storage to chunks which scale according to the page size. To scale the method up for considerably large NAND devices, YAFFS has a tweak in the way that it addresses pages. For instance, we might use a page address size of 216 and we may have have 218 chunks to address. We do not have sufficient capabilities to address pages individually, but we can address groups of four pages and search for the desired page from there. The useful thing about this is that now we have the option of neglecting to use RAM at all to augment our file system. We can pretty easily used some sort of indexed referencing scheme to build a file from a string of chunk IDs, and any scanning for particular pages within that chunk will be a limited set of a size equal to the number of chunks divided by the address size. (218 216 = 4). This linear probing may seem like a bad idea. In practice, the inefficiency is too small to notice on such a small set of chunks PMK: ANDROID OS 4 YAFFS is preferable as a file system in Android since it optimizes the use of NAND devices as storage and also has great efficiency in memory usage. C. The radio interface layer Consistent with the rest of the design of Android, the Android team has created a way to abstract a phone call. Since the way that handset manufacturers implement the radio device on cellular devices will inevitably vary, Android has to remain ignorant to the way software interacts with hardware to place the call. The Android team solves this problem by creating the Radio Interface Layer Daemon (RILD), which is the way that the applications framework interfaces with the shared libraries. The RILD s main function is to provide event-driven middle ground between the applications framework and the radio drivers. The RILD is part of

the Radio Interface Layer (RIL), which consists of two major parts: the Android RIL and the Vendor RIL. The Android RIL includes the applications framework which makes the request to the RILD to place a phone call, while the Vendor RIL is the part that is up to the vendor to implement [?]. The Vendor RIL includes the driver that the vendor ships for the hardware implementation of the radio antenna. This model allows any hardware to be implemented for placing phone calls so long as the vendor writes drivers which follow the model. DIFFERENT SECURITY FEATURES OF ANDROID OS Android Operating system should ensure the security of users, user's data, applications, the device, and the network. To achieve the security of these components Android provides these key security features 1) Security at the Operating System level through the Linux kernel. 2) Application sandbox for all applications 3) Secureinterprocess communication. 4) Application signing. 5) Application-defined and user-granted permissions. 1.Linux Kernel Linux kernel provides Android with several key security features including: a) A user-based permissions model In the Linux file system each file and directories has three user based permissions. owner, group, other users. owner - The Owner permissions apply only the owner of the file or directory. group - The group permissions apply only to the group that has been assigned to the file or directory. other users - The other Users permissions apply to all other users on the system. Each file or directory has three basic permission types: read - The read permission means user's ability to read the contents of the file. write - write permissions mean's user's ability to write or edit a file or directory. execute - The execute permission means user's ability to execute a file or view the contents of a directory This permission model ensures that proper security is maintained while accessing android files. b) Process isolation: The Android operating system assigns a unique user ID (UID) to each Android application and runs it as a separate process. c) Extensible mechanism for secure IPC. d) The ability to remove unnecessary and insecure parts of the kernel. 2 The Application Sandbox A sandbox is a security mechanism for separating running programs and limiting the resources of the device to application.it is often used to execute untested code or programs from untrusted users and untrusted websites. By using sandboxing technique limited access to device s resources is given. 3 Secure inter-process communication Some of the applications still use traditional Linux techniques such as network sockets, file system and shared files for inter-process communication. But android operating system also provides new mechanism for IPC such as Binder, Services, Intents and ContentProviders. All these mechanism allows developers to verify the identity of application and also used to set the security policies 4 Application signing In order to install and run applications on Android OS they must be digitally signed. With this mechanism Android OS identifying the author of an application. This feature also used to establishing trust relationship between applications. If an application is no signed properly then it cannot be installed on the emulator also.

5 Application-defined and user-granted permissions Permissions are an Android security mechanism to allow or restrict application access. By default, Android applications have no permissions granted, making them safe by not allowing them to gain access to protected APIs.Some of the protected APIs include: Camera functions, Location data (GPS),Bluetooth functions, Telephony functions, SMS/MMS functions and Network or data connections. These resources are accessed only through the operating system CONCLUSION The Android is nothing but it is an OS Platform based Linux kernel that supports many kinds of application s format. From above discussion it is clear thatandroid provides the services expected in a modern operating system such as virtual memory, multiprogramming, and threads, all on a mobile platform and Android Operating System follows a variety of security mechanism. REFERENCES [1] http://en.wikipedia.org/wiki/android_(operating_system) [2] http://www.tutorialspoint.com/android/android_architecture.htm [3] http://source.android.com/devices/tech/security/ [4] http://code.google.com/android/ [5] http://www.android-appmarket.com/ android -architecture.html