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