ANDROID OPERATING SYSTEM

Android (operating system)

ATUOHA ANTHONY BLOGS

From Wikipedia, the free encyclopedia
Android
Android robot 2014.svg
Android logo (2014).svg
Android 7.0-en.png
Android 7.0 Nougat (with some Google apps)
Developer
Written in Java (UI),[1] C (core), C++
OS family Unix-like
Working state Current
Source model Open source[2] and in most devices with proprietary components[3]
Initial release September 23, 2008; 8 years ago[4]
Latest release 7.1.1 "Nougat" / December 5, 2016; 38 days ago
Marketing target Smartphones, tablet computers, Android TV, Android Auto and Android Wear
Available in 100+ languages[5]
Package manager APK (through Google Play)
Platforms 32- and 64-bit ARM, x86,[6] MIPS[7] and MIPS64[a]
Kernel type Monolithic (modified Linux kernel)
Userland Bionic libc,[8] mksh shell,[9] Toybox as core utilities beginning with Android 6.0,[10][11] previously native core utilities with a few from NetBSD[12][13]
Default user interface Graphical (multi-touch)
License Apache License 2.0
GNU GPL v2 for the Linux kernel modifications[14]
Official website android.com

Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android's user interface is mainly based on direct manipulation, using touch gestures that loosely correspond to real-world actions, such as swiping, tapping and pinching, to manipulate on-screen objects, along with a virtual keyboard for text input. In addition to touchscreen devices, Google has further developed Android TV for televisions, Android Auto for cars, and Android Wear for wrist watches, each with a specialized user interface. Variants of Android are also used on notebooks, game consoles, digital cameras, and other electronics.

Android has the largest installed base of all operating systems (OS) of any kind.[b] Android has been the best selling OS on tablets since 2013, and on smartphones it is dominant by any metric.[15][16]

Initially developed by Android, Inc., which Google bought in 2005,[17] Android was unveiled in 2007 along with the founding of the Open Handset Alliance – a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices.[18] As of July 2013, the Google Play store has had over one million Android applications ("apps") published – including many "business-class apps"[19] that rival competing mobile platforms[20] – and over 50 billion applications downloaded.[21] An April–May 2013 survey of mobile application developers found that 71% of developers create applications for Android,[22] and a 2015 survey found that 40% of full-time professional developers see Android as their priority target platform, which is comparable to Apple's iOS on 37% with both platforms far above others.[23] In September 2015, Android had 1.4 billion monthly active devices.[24]

Android's source code is released by Google under open source licenses, although most Android devices ultimately ship with a combination of open source and proprietary software, including proprietary software required for accessing Google services.[3] Android is popular with technology companies that require a ready-made, low-cost and customizable operating system for high-tech devices.[25] Its open nature has encouraged a large community of developers and enthusiasts to use the open-source code as a foundation for community-driven projects, which deliver updates to older devices, add new features for advanced users[26] or bring Android to devices originally shipped with other operating systems. The success of Android has made it a target for patent (and copyright) litigation as part of the so-called "smartphone wars" between technology companies.[27][28]

Contents

History

 
Former Android logo wordmark (2007-2014)

Android, Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin (co-founder of Danger),[29] Rich Miner (co-founder of Wildfire Communications, Inc.),[30] Nick Sears (once VP at T-Mobile),[31] and Chris White (headed design and interface development at WebTV[17]) to develop, in Rubin's words, "smarter mobile devices that are more aware of its owner's location and preferences".[17] The early intentions of the company were to develop an advanced operating system for digital cameras. Though, when it was realized that the market for the devices was not large enough, the company diverted its efforts toward producing a smartphone operating system that would rival Symbian and Microsoft Windows Mobile.[32] Despite the past accomplishments of the founders and early employees, Android Inc. operated secretly, revealing only that it was working on software for mobile phones.[17] That same year, Rubin ran out of money. Steve Perlman, a close friend of Rubin, brought him $10,000 in cash in an envelope and refused a stake in the company.[33]

In July 2005, Google acquired Android Inc. for at least $50 million, whose key employees, including Rubin, Miner and White, stayed at the company after the acquisition.[15][17] Not much was known about Android Inc. at the time, but many assumed that Google was planning to enter the mobile phone market with this move.[17] At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel. Google marketed the platform to handset makers and carriers on the promise of providing a flexible, upgradeable system. Google had lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part.[34][35][36]

Speculation about Google's intention to enter the mobile communications market continued to build through December 2006.[37] An earlier prototype codenamed "Sooner" had a closer resemblance to a BlackBerry phone, with no touchscreen, and a physical, QWERTY keyboard, but was later re-engineered to support a touchscreen, to compete with other announced devices such as the 2006 LG Prada and 2007 Apple iPhone.[38][39] In September 2007, InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony.[40][41]

 
Eric Schmidt, Andy Rubin and Hugo Barra at a 2012 press conference announcing Google's Nexus 7 tablet

On November 5, 2007, the Open Handset Alliance, a consortium of technology companies including Google, device manufacturers such as HTC, Sony and Samsung, wireless carriers such as Sprint Nextel and T-Mobile, and chipset makers such as Qualcomm and Texas Instruments, unveiled itself, with a goal to develop open standards for mobile devices.[18] That day, Android was unveiled as its first product, a mobile device platform built on the Linux kernel.[18][42] The first commercially available smartphone running Android was the HTC Dream, released on October 22, 2008.[43]

Since 2008, Android has seen numerous updates which have incrementally improved the operating system, adding new features and fixing bugs in previous releases. Each major release is named in alphabetical order after a dessert or sugary treat; for example, version 1.5 "Cupcake" was followed by 1.6 "Donut". In 2010, Google launched its Nexus series of devices – a line of smartphones and tablets running the Android operating system, and built by manufacturing partners. HTC collaborated with Google to release the first Nexus smartphone,[44] the Nexus One. Google has since updated the series with newer devices, such as the Nexus 5 phone (made by LG) and the Nexus 7 tablet (made by Asus). Google releases the Nexus phones and tablets to act as their flagship Android devices, demonstrating Android's latest software and hardware features. From 2013 until 2015, Google offered several Google Play Edition devices over Google Play. While not carrying the Google Nexus branding, these were Google-customized Android phones and tablets that also ran the latest version of Android, free from manufacturer or carrier modifications.

From 2010 to 2013, Hugo Barra served as product spokesperson, representing Android at press conferences and Google I/O, Google’s annual developer-focused conference. Barra's product involvement included the entire Android ecosystem of software and hardware, including Honeycomb, Ice Cream Sandwich, Jelly Bean and KitKat operating system launches, the Nexus 4 and Nexus 5 smartphones, the Nexus 7[45] and Nexus 10 tablets,[46] and other related products such as Google Now[47] and Google Voice Search, Google’s speech recognition product comparable to Apple’s Siri.[47] In 2013, Barra left the Android team for Chinese smartphone maker Xiaomi.[48] The same year, Larry Page announced in a blog post that Andy Rubin had moved from the Android division to take on new projects at Google.[49] He was replaced by Sundar Pichai who became the new head of Android and Chrome OS,[50] and, later, by Hiroshi Lockheimer when Pichai became CEO of Google.[51]

In 2014, Google launched Android One, a line of smartphones mainly targeting customers in the developing world. In May 2015, Google announced Project Brillo as a cut-down version of Android that uses its lower levels (excluding the user interface), intended for the "Internet of Things" (IoT) embedded systems.[52]

University of Cambridge research in 2015, concluded that almost 90% of Android phones in use had known but unpatched security vulnerabilities due to lack of updates and support.[53][54] In a year since (mid-2015) that report, well over a billion Android smartphones have been sold (more than the just over billion sold in 2014); and Android 5.0 (with better security) and later, went from 5.4% market share to currently over half, which means that the 90% number must be very outdated; those phones now very likely represent less than half of all Android phones. Recent devices do get security updates;[55][56] Android 5.0 introduced an improved centralized update system.[57][58]

Features

Interface

Android's default user interface is mainly based on direct manipulation,[59] using touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching, and reverse pinching to manipulate on-screen objects, along with a virtual keyboard.[59] Game controllers and full-size physical keyboards are supported via Bluetooth or USB.[60] The response to user input is designed to be immediate and provides a fluid touch interface, often using the vibration capabilities of the device to provide haptic feedback to the user. Internal hardware, such as accelerometers, gyroscopes and proximity sensors[61] are used by some applications to respond to additional user actions, for example adjusting the screen from portrait to landscape depending on how the device is oriented, or allowing the user to steer a vehicle in a racing game by rotating the device, simulating control of a steering wheel.[62]

Android devices boot to the homescreen, the primary navigation and information "hub" on Android devices that is analogous to the desktop found on personal computers. (Android also runs on regular personal computers, as described below). Android homescreens are typically made up of app icons and widgets; app icons launch the associated app, whereas widgets display live, auto-updating content, such as the weather forecast, the user's email inbox, or a news ticker directly on the homescreen.[63] A homescreen may be made up of several pages, between which the user can swipe back and forth, though Android's homescreen interface is heavily customisable, allowing users to adjust the look and feel of the devices to their tastes.[64] Third-party apps available on Google Play and other app stores can extensively re-theme the homescreen, and even mimic the look of other operating systems, such as Windows Phone.[65] Most manufacturers, and some wireless carriers, customise the look and feel of their Android devices to differentiate themselves from their competitors.[66] Applications that handle interactions with the homescreen are called "launchers" because they, among other purposes, launch the applications installed on a device.

Along the top of the screen is a status bar, showing information about the device and its connectivity. This status bar can be "pulled" down to reveal a notification screen where apps display important information or updates, such as a newly received email or SMS text, in a way that does not immediately interrupt or inconvenience the user.[67] Notifications are persistent until read by tapping it, which opens the relevant app, or dismissed by sliding it off the screen. Beginning on Android 4.1, "expanded notifications" can display expanded details or additional functionality; for instance, a music player can display playback controls, and a "missed call" notification provides buttons for calling back or sending the caller an SMS message.[68]

Android provides the ability to run applications that change the default launcher, and hence the appearance and externally visible behaviour of Android. These appearance changes include a multi-page dock or no dock, and many more changes to fundamental features of the user interface.[69]

Applications

Applications ("apps"), which extend the functionality of devices, are written using the Android software development kit (SDK) and, often, the Java programming language that has complete access to the Android APIs. Java may be combined with C/C++, together with a choice of non-default runtimes that allow better C++ support;[70][71][72] the Go programming language is also supported since its version 1.4, which can also be used exclusively although with a restricted set of Android APIs.[73] The SDK includes a comprehensive set of development tools,[74] including a debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. Initially, Google's supported integrated development environment (IDE) was Eclipse using the Android Development Tools (ADT) plugin; in December 2014, Google released Android Studio, based on IntelliJ IDEA, as its primary IDE for Android application development. Other development tools are available, including a native development kit (NDK) for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers, and various cross platform mobile web applications frameworks. In January 2014, Google unveiled an framework based on Apache Cordova for porting Chrome HTML 5 web applications to Android, wrapped in a native application shell.[75]

Android has a growing selection of third-party applications, which can be acquired by users by downloading and installing the application's APK (Android application package) file, or by downloading them using an application store program that allows users to install, update, and remove applications from their devices. Google Play Store is the primary application store installed on Android devices that comply with Google's compatibility requirements and license the Google Mobile Services software.[3][76] Google Play Store allows users to browse, download and update applications published by Google and third-party developers; as of July 2013, there are more than one million applications available for Android in Play Store.[77] As of July 2013, 50 billion applications have been installed.[78][79] Some carriers offer direct carrier billing for Google Play application purchases, where the cost of the application is added to the user's monthly bill.[80]

Due to the open nature of Android, a number of third-party application marketplaces also exist for Android, either to provide a substitute for devices that are not allowed to ship with Google Play Store, provide applications that cannot be offered on Google Play Store due to policy violations, or for other reasons. Examples of these third-party stores have included the Amazon Appstore, GetJar, and SlideMe. F-Droid, another alternative marketplace, seeks to only provide applications that are distributed under free and open source licenses.[3][81][82][83]

Memory management

Since Android devices are usually battery-powered, Android is designed to manage processes to keep power consumption at a minimum. When an application is not in use the system suspends its operation so that, while available for immediate use rather than closed, it does not use battery power or CPU resources.[84][85]

Android manages the applications stored in memory automatically: when memory is low, the system will begin invisibly and automatically closing inactive processes, starting with those that have been inactive for longest.[86][87] Lifehacker reported in 2011 that third-party task killers were doing more harm than good.[88]

Virtual reality

At Google I/O on May 2016, Google announced Daydream, a virtual reality platform that relies on a smartphone and provides VR capabilities through a virtual reality headset and controller designed by Google itself.[89] The platform is built into Android starting with Android Nougat, differentiating from standalone support for VR capabilities. The software is available for developers, and was released in 2016.

Hardware

 
HTC Dream or T-Mobile G1, the first commercially released device running Android (2008).

The main hardware platform for Android is the ARM (ARMv7 and ARMv8-A architectures), with x86 and MIPS architectures also officially supported in later versions of Android. Since Android 5.0 "Lollipop", 64-bit variants of all platforms are supported in addition to the 32-bit variants.[90] The unofficial Android-x86 project provided support for the x86 architectures ahead of the official support.[6][91] MIPS architecture was also supported before Google did. Since 2012, Android devices with Intel processors began to appear, including phones[92] and tablets. While gaining support for 64-bit platforms, Android was first made to run on 64-bit x86 and then on ARM64.

Requirements for the minimum amount of RAM for devices running Android 5.1 range from 512 MB of RAM for normal-density screens, to about 1.8 GB for high-density screens.[93] The recommendation for Android 4.4 is to have at least 512 MB of RAM,[94] while for "low RAM" devices 340 MB is the required minimum amount that does not include memory dedicated to various hardware components such as the baseband processor.[95] Android 4.4 requires a 32-bit ARMv7, MIPS or x86 architecture processor (latter two through unofficial ports),[6][96] together with an OpenGL ES 2.0 compatible graphics processing unit (GPU).[97] Android supports OpenGL ES 1.1, 2.0, 3.0, 3.1 and as of latest major version, 3.2 and Vulkan. Some applications may explicitly require a certain version of the OpenGL ES, and suitable GPU hardware is required to run such applications.[97]

Android devices incorporate many optional hardware components, including still or video cameras, GPS, orientation sensors, dedicated gaming controls, accelerometers, gyroscopes, barometers, magnetometers, proximity sensors, pressure sensors, thermometers, and touchscreens. Some hardware components are not required, but became standard in certain classes of devices, such as smartphones, and additional requirements apply if they are present. Some other hardware was initially required, but those requirements have been relaxed or eliminated altogether. For example, as Android was developed initially as a phone OS, hardware such as microphones were required, while over time the phone function became optional.[79] Android used to require an autofocus camera, which was relaxed to a fixed-focus camera[79] if present at all, since the camera was dropped as a requirement entirely when Android started to be used on set-top boxes.

In addition to running on smartphones and tablets, several vendors run Android natively on regular PC hardware with a keyboard and mouse.[98][99][100][101] In addition to their availability on commercially available hardware, similar PC hardware-friendly versions of Android are freely available from the Android-x86 project, including customized Android 4.4.[102] Using the Android emulator that is part of the Android SDK, or by using BlueStacks or Andy, Android can also run non-natively on x86.[103][104] Chinese companies are building a PC and mobile operating system, based on Android, to "compete directly with Microsoft Windows and Google Android".[105] The Chinese Academy of Engineering noted that "more than a dozen" companies were customising Android following a Chinese ban on the use of Windows 8 on government PCs.[106][107][108]

Development

 
Android green figure, next to its original packaging

Android is developed in private by Google until the latest changes and updates are ready to be released, at which point the source code is made available publicly.[109] This source code will only run without modification on select devices, usually the Nexus series of devices. The source code is, in turn, adapted by original equipment manufacturers (OEMs) to run on their hardware.[110] Android's source code does not contain the often proprietary device drivers that are needed for certain hardware components.[111]

In 2007, the green Android logo was designed for Google by graphic designer Irina Blok. The design team was tasked with a project to create a universally identifiable icon with the specific inclusion of a robot in the final design. After numerous design developments based on science-fiction and space movies, the team eventually sought inspiration from the human symbol on restroom doors and modified the figure into a robot shape. As Android is open-sourced, it was agreed that the logo should be likewise, and since its launch the green logo has been reinterpreted into countless variations on the original design.[112]

Update schedule

Google provides major incremental upgrades to Android every six to nine months, with confectionery-themed names, which most devices are capable of receiving over the air.[113] The latest major release is Android 7.0 "Nougat".

Compared to its primary rival mobile operating system, iOS, Android updates typically reach various devices with significant delays. Except for devices with the Google Nexus brand, updates often arrive months after the release of the new version, or not at all.[114] This is partly due to the extensive variation in hardware of Android devices, to which each upgrade must be specifically tailored, as the official Google source code only runs on their own Nexus devices. Porting Android to specific hardware is a time- and resource-consuming process for device manufacturers, who prioritize their newest devices and often leave older ones behind.[114] Hence, older smartphones are frequently not updated if the manufacturer decides it is not worth the investment of resources, although the device may be compatible. This problem is compounded when manufacturers customize Android with their own interface and apps, which must be reapplied to each new release. Additional delays can be introduced by wireless carriers who, after receiving updates from manufacturers, further customize and brand Android to their needs and conduct extensive testing on their networks before sending the upgrade out to users.[114]

The lack of after-sale support from manufacturers and carriers has been widely criticized by consumer groups and the technology media.[115][116] Some commentators have noted that the industry has a financial incentive not to upgrade their devices, as the lack of updates for existing devices fuels the purchase of newer ones,[117] an attitude described as "insulting".[116] The Guardian complained that the method of distribution for updates is complicated only because manufacturers and carriers have designed it that way.[116] In 2011, Google partnered with a number of industry players to announce an "Android Update Alliance", pledging to deliver timely updates for every device for 18 months after its release;[118] however, there has not been another official word about that alliance since its announcement.[114][119]

In 2012, Google began decoupling certain aspects of the operating system (particularly core applications) so they could be updated through Google Play Store independently of the operating system. One of these components, Google Play Services, is a closed-source system-level process providing APIs for Google services, installed automatically on nearly all devices running Android version 2.2 and higher. With these changes, Google can add new operating system functionality through Play Services and application updates without having to distribute an upgrade to the operating system itself. As a result, Android 4.2 and 4.3 contained relatively fewer user-facing changes, focusing more on minor changes and platform improvements.[3][120]

In May 2016, it was announced that Google is considering "shaming" smartphone makers who fail to release updated versions of Android to their devices.[121]

Linux kernel

Android's kernel is based on one of the Linux kernel's long-term support (LTS) branches. Since April 2014, Android devices mainly use versions 3.4, 3.10 or 3.18 of the Linux kernel.[122][123] The specific kernel version depends on the actual Android device and its hardware platform;[124][125][126] Android has used various kernel versions since the version 2.6.25 that was used in Android 1.0.[42]

Android's variant of the Linux kernel has further architectural changes that are implemented by Google outside the typical Linux kernel development cycle, such as the inclusion of components like Binder, ashmem, pmem, logger, wakelocks, and different out-of-memory (OOM) handling.[127][128][129] Certain features that Google contributed back to the Linux kernel, notably a power management feature called "wakelocks", were rejected by mainline kernel developers partly because they felt that Google did not show any intent to maintain its own code.[130][131][132] Google announced in April 2010 that they would hire two employees to work with the Linux kernel community,[133] but Greg Kroah-Hartman, the current Linux kernel maintainer for the stable branch, said in December 2010 that he was concerned that Google was no longer trying to get their code changes included in mainstream Linux.[131] Some Google Android developers hinted that "the Android team was getting fed up with the process," because they were a small team and had more urgent work to do on Android.[134]

In August 2011, Linus Torvalds said that "eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years".[135] In December 2011, Greg Kroah-Hartman announced the start of Android Mainlining Project, which aims to put some Android drivers, patches and features back into the Linux kernel, starting in Linux 3.3.[136] Linux included the autosleep and wakelocks capabilities in the 3.5 kernel, after many previous attempts at merger. The interfaces are the same but the upstream Linux implementation allows for two different suspend modes: to memory (the traditional suspend that Android uses), and to disk (hibernate, as it is known on the desktop).[137] Google maintains a public code repository that contains their experimental work to re-base Android off the latest stable Linux versions.[138][139]

The flash storage on Android devices is split into several partitions, such as /system for the operating system itself, and /data for user data and application installations.[140] In contrast to desktop Linux distributions, Android device owners are not given root access to the operating system and sensitive partitions such as /system are read-only. However, root access can be obtained by exploiting security flaws in Android, which is used frequently by the open-source community to enhance the capabilities of their devices,[141] but also by malicious parties to install viruses and malware.[142]

Android is a Linux distribution according to the Linux Foundation,[143] Google's open-source chief Chris DiBona,[144] and several journalists.[145][146] Others, such as Google engineer Patrick Brady, say that Android is not Linux in the traditional Unix-like Linux distribution sense; Android does not include the GNU C Library (it uses Bionic as an alternative C library) and some of other components typically found in Linux distributions.[147]

Software stack

 
Android's architecture diagram

On top of the Linux kernel, there are the middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries. Development of the Linux kernel continues independently of other Android's source code bases.

Until version 5.0, Android used Dalvik as a process virtual machine with trace-based just-in-time (JIT) compilation to run Dalvik "dex-code" (Dalvik Executable), which is usually translated from the Java bytecode. Following the trace-based JIT principle, in addition to interpreting the majority of application code, Dalvik performs the compilation and native execution of select frequently executed code segments ("traces") each time an application is launched.[148][149][150] Android 4.4 introduced Android Runtime (ART) as a new runtime environment, which uses ahead-of-time (AOT) compilation to entirely compile the application bytecode into machine code upon the installation of an application. In Android 4.4, ART was an experimental feature and not enabled by default; it became the only runtime option in the next major version of Android, 5.0.[151]

For its Java library, the Android platform uses a subset of the now discontinued Apache Harmony project.[152] In December 2015, Google announced that the next version of Android would switch to a Java implementation based on OpenJDK.[153]

Android's standard C library, Bionic, was developed by Google specifically for Android, as a derivation of the BSD's standard C library code. Bionic itself has been designed with several major features specific to the Linux kernel. The main benefits of using Bionic instead of the GNU C Library (glibc) or uClibc are its smaller runtime footprint, and optimization for low-frequency CPUs. At the same time, Bionic is licensed under the terms of the BSD licence, which Google finds more suitable for the Android's overall licensing model.[150]

Aiming for a different licensing model, toward the end of 2012, Google switched the Bluetooth stack in Android from the GPL-licensed BlueZ to the Apache-licensed BlueDroid.[154]

Android does not have a native X Window System by default, nor does it support the full set of standard GNU libraries. This made it difficult to port existing Linux applications or libraries to Android,[147] until version r5 of the Android Native Development Kit brought support for applications written completely in C or C++.[155] Libraries written in C may also be used in applications by injection of a small shim and usage of the JNI.[156]

Since Marshmallow, "Toybox", a collection of command line utilities (mostly for use by apps, as Android doesn't provide a command line interface by default), replaced similar "Toolbox" collection.[157]

Android has another operating system, Trusty OS, within it, as a part of "Trusty" "software components supporting a Trusted Execution Environment (TEE) on mobile devices." "Trusty and the Trusty API are subject to change. [..] Applications for the Trusty OS can be written in C/C++ (C++ support is limited), and they have access to a small C library. [..] All Trusty applications are single-threaded; multithreading in Trusty userspace currently is unsupported. [..] Third-party application development is not supported in" the current version, and software running on the OS and processor for it, run the "DRM framework for protected content. [..] There are many other uses for a TEE such as mobile payments, secure banking, full-disk encryption, multi-factor authentication, device reset protection, replay-protected persistent storage, wireless display ("cast") of protected content, secure PIN and fingerprint processing, and even malware detection."[158]

Open-source community

Android has an active community of developers and enthusiasts who use the Android Open Source Project (AOSP) source code to develop and distribute their own modified versions of the operating system.[159] These community-developed releases often bring new features and updates to devices faster than through the official manufacturer/carrier channels, with a comparable level of quality;[26] provide continued support for older devices that no longer receive official updates; or bring Android to devices that were officially released running other operating systems, such as the HP TouchPad. Community releases often come pre-rooted and contain modifications not provided by the original vendor, such as the ability to overclock or over/undervolt the device's processor.[160] CyanogenMod is the most widely used community firmware,[161] and acts as a foundation for numerous others. Android-x86 is a version of Android for IBM PC compatibles. There have also been attempts with varying degrees of success to port Android to iPhones, notably the iDroid Project.[162]

Historically, device manufacturers and mobile carriers have typically been unsupportive of third-party firmware development. Manufacturers express concern about improper functioning of devices running unofficial software and the support costs resulting from this.[163] Moreover, modified firmwares such as CyanogenMod sometimes offer features, such as tethering, for which carriers would otherwise charge a premium. As a result, technical obstacles including locked bootloaders and restricted access to root permissions are common in many devices. However, as community-developed software has grown more popular, and following a statement by the Librarian of Congress in the United States that permits the "jailbreaking" of mobile devices,[164] manufacturers and carriers have softened their position regarding third party development, with some, including HTC,[163] Motorola,[165] Samsung[166][167] and Sony,[168] providing support and encouraging development. As a result of this, over time the need to circumvent hardware restrictions to install unofficial firmware has lessened as an increasing number of devices are shipped with unlocked or unlockable bootloaders, similar to Nexus series of phones, although usually requiring that users waive their devices' warranties to do so.[163] However, despite manufacturer acceptance, some carriers in the US still require that phones are locked down, frustrating developers and customers.[169]

Security and privacy

Scope of surveillance by public institutions

As part of the broader 2013 mass surveillance disclosures it was revealed in September 2013 that the American and British intelligence agencies, the National Security Agency (NSA) and Government Communications Headquarters (GCHQ), respectively, have access to the user data on iPhone, BlackBerry, and Android devices. They are reportedly able to read almost all smartphone information, including SMS, location, emails, and notes.[170] In January 2014, further reports revealed the intelligence agencies' capabilities to intercept the personal information transmitted across the Internet by social networks and other popular applications such as Angry Birds, which collect personal information of their users for advertising and other commercial reasons. GCHQ has, according to The Guardian, a wiki-style guide of different apps and advertising networks, and the different data that can be siphoned from each.[171] Later that week, the Finnish Angry Birds developer Rovio announced that it was reconsidering its relationships with its advertising platforms in the light of these revelations, and called upon the wider industry to do the same.[172]

The documents revealed a further effort by the intelligence agencies to intercept Google Maps searches and queries submitted from Android and other smartphones to collect location information in bulk.[171] The NSA and GCHQ insist their activities are in compliance with all relevant domestic and international laws, although the Guardian stated "the latest disclosures could also add to mounting public concern about how the technology sector collects and uses information, especially for those outside the US, who enjoy fewer privacy protections than Americans."[171]

Common security threats

Research from security company Trend Micro lists premium service abuse as the most common type of Android malware, where text messages are sent from infected phones to premium-rate telephone numbers without the consent or even knowledge of the user.[173] Other malware displays unwanted and intrusive advertisements on the device, or sends personal information to unauthorised third parties.[173] Security threats on Android are reportedly growing exponentially; however, Google engineers have argued that the malware and virus threat on Android is being exaggerated by security companies for commercial reasons,[174][175] and have accused the security industry of playing on fears to sell virus protection software to users.[174] Google maintains that dangerous malware is actually extremely rare,[175] and a survey conducted by F-Secure showed that only 0.5% of Android malware reported had come from the Google Play store.[176]

Android's fragmentation is a problem for security, since patches to bugs found in the core operating system often do not reach users of older and lower-price devices.[177][178] One set of researchers say that the failure of vendors to support older devices with patches and updates leaves more than 87% of active devices vulnerable.[179][180] However, the open-source nature of Android allows security contractors to take existing devices and adapt them for highly secure uses. For example, Samsung has worked with General Dynamics through their Open Kernel Labs acquisition to rebuild Jelly Bean on top of their hardened microvisor for the "Knox" project.[181][182]

Android smartphones have the ability to report the location of Wi-Fi access points, encountered as phone users move around, to build databases containing the physical locations of hundreds of millions of such access points. These databases form electronic maps to locate smartphones, allowing them to run apps like Foursquare, Google Latitude, Facebook Places, and to deliver location-based ads.[183] Third party monitoring software such as TaintDroid,[184] an academic research-funded project, can, in some cases, detect when personal information is being sent from applications to remote servers.[

SAMSUNG J9

Price: 6000.00 USD