Introduction to Android Operating System


                  


Beginning of Android OS


Android OS is developed for smart phones and tablets. It is an Open source Software. Android is that the most generally used mobile OS by the people nowadays. Android Software Stack mainly  contains four Layers: application layer, application framework layer, Libraries and Linux kernel.

Android was founded by a corporation , named android Inc. in Palo Alto of California, U.S (2003) whose founder was Andy Rubin. Early intension of the corporate was to develop a complicated OS for digital cameras, on the other hand it had been realized that marketplace for such devices wasn't large enough so that diverted their attention to producing a sensible phone OS. Android was then acquired by the Google in 2005 mid and unveiled its distribution in 2007 with formation of Open Handset Alliance led by Google. Android mobile OS is predicated on the Linux kernel and is developed by Google. Android OS has its own virtual machine called DVM which is employed for executing the android application. One of the explanations for the success of Google’s OS is that the constant improvement of its many versions, with every new one offering more advanced features, faster access to the web . Another reason for the Android’s popularity is it's strong collaboration with mobile devices manufacturers worldwide, while it's main global competitor.

Open Handset Alliance:

The Open Handset Alliance or we can say OHA is a consortium whose goal is to develop open standards for mobile devices, promote innovation in mobile phones and supply a far better experience for consumers at a lower cost.

Android Architecture

 Software stack is split into four layers.

1. Application layer

2. Application Framework

3. Libraries

4. Linux kernel




Lower layer of android OS is Linux kernel. It doesn't really interact with the users and developers. The Linux Kernel provides A level of abstraction between the device hardware and therefore the upper layers of the Android software stack. Based on Linux version 2.6, the kernel provides pre-emptive multitasking, low level core system services like memory, process and power management additionally to providing a network stack and device drivers for hardware like the device display, Wi-Fi and audio[1]. Also, the kernel handles all the items that Linux is basically good at like networking and a huge array of device drivers, which take the pain out of interfacing to peripheral hardware.

2.2 Libraries:

On top of Linux kernel there's a group of c/c++ libraries employed by the varied components of the android system. Some of the core libraries are listed below:

• System c library – a BSD– derived implementation of the quality and system library (libc) tuned for embedded Linux-based devices.

• SQLite - it's wont to access data published by content providers and includes SQLite management classes.

• SSL - it's wont to provide internet security. 

• SGL – the underlying 2D graphics engine.

• Libwebcore – a contemporary browser engine which powers both the android browser and an embedded web view.

• OpenGL - it's wont to provide Java interface to the OpenGL/ES 3D graphics rendering API.

• Media framework - it's wont to provide different media code which permit the recording and playback of various media formats.

• Web Kit - it's the browser engine wont to display internet content or HTML content.

2.2.1 Android Runtime:

Dalvik Virtual Machine:




Dalvik may be a purpose built virtual machine designed specifically for android which was developed by Dan Bornstein and his team. It was mainly developed for mobile devices. Dalvik Virtual Machine is same as JVM but only difference is that it's designed and optimized for Android. Every android application runs in its own process is named Dalvik virtual machine. Dalvik always uses its own 16 bit instruction set than java 8 bit stack instructions, which reduce the Dalvik instruction count and raised its interpreter speed. The Dalvik VM executes files within the Dalvik Executable (.dex)[2] format which is optimized for minimal memory footprint. The VM is register based, and runs its classes compiled by a java language compiler that have been transformed into the .dex format by the included “dx” tool. The Dalvik VM hooked in to the Linux kernel for underlying functionality like threading and low level memory management.

2.3 Application Framework

It provides many higher level services to applications within the sort of Java classes. Application developers are allowed to make use of these services in their application. This framework describes the concept that Android applications are constructed from reusable, interchangeable and replaceable components and it is one of the best[3]. The Android framework includes the following key services:

• Activity Manager – Controls all aspects of the appliance lifecycle and activity stack.

• Content Providers – This service  allows applications to publish and share data with other applications.

• Resource Manager – Provides access to non-code embedded resources like strings, color settings and interface layouts.

• Notifications Manager – Allows applications to display alerts and also notifications to the user.

• View System – An extensible set of views wont to create application user interfaces.

• Package Manager – The system by which applications are ready to determine information about other applications currently installed on the device.

• Telephony Manager – Provides the telephony services available on the device like status and subscriber information.

• Location Manager – Provides access to the situation services allowing an application to receive updates about location changes.

2.4 Applications

 The applications are at the highest layer of the Android stack. The user of the Android device would mostly interact with this layer (more). Android will ship with a group of applications including an email client, calendar, browser, maps, contacts, others. All applications are written using java programming language.

3. Android Security



Nowadays near all of the tasks that you simply could only perform on a computer also are performed on mobile devices also . this suggests that more sensitive information is stored on people mobile devices than before. the necessity for security is bigger than ever for not only consumers, but large enterprise also . Android software stack itself provides security to its application(focus on security). Key features includes physical access, app permission, the appliance sandbox, rooting.

Physical access

Android features a few features which will help to stop hackers. the primary is that the unlock screen when the device is woken from sleep. the quality unlock screen is simply the slider which basically stops the screen from being activated in your pocket. But Android also allows you to line an unlock pattern, PIN or password. Unless the intruder knows the pattern or  PIN or password they can’t get access to your or we can say that any device. this is often especially useful to stay sons and daughters out of your phone or stop mischievous friends from sending emails.

App permissions

Every app that you simply install on your device must specifically ask you for permission to perform certain tasks. this is often done once you install the app. What this suggests in practical terms is that apps have limited abilities. also as limiting the skills of apps, Android also controls how an app accesses the device’s hardware. there's no direct hardware access allowed in Android; all access is thru the various software layers which structure the Android OS. this suggests that rogue apps can’t go around re-programming the microphone on your phone or bypassing the app permissions by talking on to the video camera, etc. the appliance Sandbox Android has another layer of protection therein it doesn’t give one app access to the resource of another app. this is often referred to as the ‘sandbox’ where every app gets to play in its own sandbox and can’t use another app’s toys! Android does this by giving each app a singular user id (a UID) and by running that app as a separate process thereupon UID. Only processes with an equivalent UIDs can share resources which, as each ID is uniquely assigned, means no other apps have permission. Google’s own words on this, is “like all security measures , the appliance Sandbox isn't unbreakable. However, to interrupt out of the appliance Sandbox during a properly configured device, one must compromise the safety of the Linux kernel.”

Rooting

In the world of Linux ‘root’ is that the supreme user level which has the rights to perform any task. it's almost like the Administrator user on a Windows PC. By default, only the Linux kernel and a little number of core utilities run as this super user. But by ‘rooting’ your device (which means the basis user level is out there to all or any apps) then many of the safety mechanisms described above are made null and void. this is often because an app with root permission can modify the other a part of the Android OS including the OS itself, the kernel, and other apps.

Malware

It is an unfortunate reality, but reality none the less, that Android features a malware problem. First, for an app to be malicious it doesn’t got to have access to the deeper levels of the OS. If an unsuspecting user installs a malicious app which sends premium rate SMS message sand the user granted those privileges to the app when it’s installed, then the malware has successfully been installed without breaking any of the safety (more important point). On the number of second, some malware actually comes with root exploits built-in. this suggests that when the app is installed it actually roots the device (without the user knowing) and by-passes all the system security[4]. Thirdly, there's malware that just loves rooted phones. If the malware gets installed on a non-rooted phone it does nothing, but when installed on a rooted phone it unleashes all of its nastiness[5].

Conclusion:

Android OS is now becoming best among all the opposite mobile OS . All Google services are you able to have with one OS , namely “Android”. By Android versions its features are increased rapidly. So most of the users like Android smart phones, and it's best OS among all other OS like windows, iOS. the foremost popular Android version is Android 4.4(kitkat). Android provide security to its application but IT also contains limitations of security. This paper covers a number of the view points of Android OS[6].

 References:

1. http://www.ijera.com/An Overview of

Android Operating System and Its Security

Features.pdf

2. http://www.ijetmr.com/AndroidOperating

Systems.pdf

3. http://www.engineersgarage.com/articles/wh

at-is-android-introduction.

4. http://en.wikipedia.org/wiki/Android_(opera

ting_system)

5. http://www.tkhts.com/android/android-archit

ecture.jsp

6. http://www.tutorialspoint.com/android/andro

id_architecture.html

7. http://www.android-appmarket.com/ android

-architecture.html

8. http://www.acumin.co.uk/download_files/W

hitePaper/android_white_paper_2.pdf

9. Mobile Security, Identifying the Mobile

SecurityStack,http://blog.veracode.com/2011

/03/identifying-the-mobile-securitystack/

10. Reference Architecture, Mobile Security

Reference Architecture, by CIO Council and

US Department of Home Land Security May

2013,

https://cio.gov/wpcontent/uploads/2013/05/

Mobile-Security-Reference-Architecture.pdf


Comments

Popular posts from this blog

Different types of polymorphism in C++ and Java