blob: 84ee855f4aa21c0be3b2ee204c442c5c81e99672 [file] [log] [blame]
Robert Ly35f2fda2013-01-29 16:27:05 -08001page.title=Frequently Asked Questions
2@jd:body
3
4<!--
5 Copyright 2010 The Android Open Source Project
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18-->
19<div id="qv-wrapper">
20 <div id="qv">
21 <h2>In this document</h2>
22 <ol id="auto-toc">
23 </ol>
24 </div>
25</div>
26
27<h2 id="open-source">Open Source</h2>
28<h3 id="what-is-the-android-open-source-project">What is the Android Open Source Project?</h3>
29<p>We use the phrase "Android Open Source Project" or "AOSP" to refer to the
30people, the processes, and the source code that make up Android.</p>
31<p>The people oversee the project and develop the actual source code. The
32processes refer to the tools and procedures we use to manage the development
33of the software. The net result is the source code that you can use to build
34cell phone and other devices.</p>
35<h3 id="why-did-we-open-the-android-source-code">Why did we open the Android source code?</h3>
36<p>Google started the Android project in response to our own experiences
37launching mobile apps. We wanted to make sure that there would always be an
38open platform available for carriers, OEMs, and developers to use to make
39their innovative ideas a reality. We also wanted to make sure that there was no
40central point of failure, so that no single industry player could restrict or control
41the innovations of any other. The single most important goal of the Android
42Open-Source Project (AOSP) is to make sure that the open-source Android
43software is implemented as widely and compatibly as possible, to everyone's
44benefit.</p>
45<p>You can find more information on this topic at our Project Philosophy page.</p>
46<h3 id="what-kind-of-open-source-project-is-android">What kind of open-source project is Android?</h3>
47<p>Google oversees the development of the core Android open-source platform,
48and works to create robust developer and user communities. For the most part
49the Android source code is licensed under the permissive Apache Software
50License 2.0, rather than a "copyleft" license. The main reason for this is
51because our most important goal is widespread adoption of the software, and
52we believe that the ASL2.0 license best achieves that goal.</p>
53<p>You can find more information on this topic at our Project Philosophy and
54Licensing pages. </p>
55<h3 id="why-is-google-in-charge-of-android">Why is Google in charge of Android?</h3>
56<p>Launching a software platform is complex. Openness is vital to the
57long-term success of a platform, since openness is required to attract
58investment from developers and ensure a level playing field. However, the
59platform itself must also be a compelling product to end users.</p>
60<p>That's why Google has committed the professional engineering resources
61necessary to ensure that Android is a fully competitive software platform.
62Google treats the Android project as a full-scale product development
63operation, and strikes the business deals necessary to make sure that great
64devices running Android actually make it to market.</p>
65<p>By making sure that Android is a success with end users, we help ensure the
66vitality of Android as a platform, and as an open-source project. After all,
67who wants the source code to an unsuccessful product?</p>
68<p>Google's goal is to ensure a successful ecosystem around Android, but no
69one is required to participate, of course. We opened the Android source code
70so anyone can modify and distribute the software to meet their own needs.</p>
71<h3 id="what-is-googles-overall-strategy-for-android-product-development">What is Google's overall strategy for Android product development?</h3>
72<p>We focus on releasing great devices into a competitive marketplace, and
73then incorporate the innovations and enhancements we made into the core
74platform, as the next version.</p>
75<p>In practice, this means that the Android engineering team typically focuses
76on a small number of "flagship" devices, and develops the next version of
77the Android software to support those product launches. These flagship
78devices absorb much of the product risk and blaze a trail for the broad OEM
79community, who follow up with many more devices that take advantage of the
80new features. In this way, we make sure that the Android platform evolves
81according to the actual needs of real-world devices.</p>
82<h3 id="how-is-the-android-software-developed">How is the Android software developed?</h3>
83<p>Each platform version of Android (such as 1.5, 1.6, and so on) has a
84corresponding branch in the open-source tree. At any given moment, the most
85recent such branch will be considered the "current stable" branch version.
86This current stable branch is the one that manufacturers port to their
87devices. This branch is kept suitable for release at all times.</p>
88<p>Simultaneously, there is also a "current experimental" branch, which is
89where speculative contributions, such as large next-generation features, are
90developed. Bug fixes and other contributions can be included in the current
91stable branch from the experimental branch as appropriate.</p>
92<p>Finally, Google works on the next version of the Android platform in tandem
93with developing a flagship device. This branch pulls in changes from the
94experimental and stable branches as appropriate.</p>
95<p>You can find more information on this topic at our <a href="source/code-lines.html">Branches and Releases</a>.</p>
96<h3 id="why-are-parts-of-android-developed-in-private">Why are parts of Android developed in private?</h3>
97<p>It typically takes over a year to bring a device to market, but of course
98device manufacturers want to ship the latest software they can. Developers,
99meanwhile, don't want to have to constantly track new versions of the
100platform when writing apps. Both groups experience a tension between
101shipping products, and not wanting to fall behind.</p>
102<p>To address this, some parts of the next version of Android including the
103core platform APIs are developed in a private branch. These APIs constitute
104the next version of Android. Our aim is to focus attention on the current
105stable version of the Android source code, while we create the next version
106of the platform as driven by flagship Android devices. This allows developers
107and OEMs to focus on a single version without having to track unfinished
108future work just to keep up. Other parts of the Android system that aren't
109related to application compatibility are developed in the open, however.
110It's our intention to move more of these parts to open development over
111time.</p>
112<h3 id="when-are-source-code-releases-made">When are source code releases made?</h3>
113<p>When they are ready. Some parts of Android are developed in the open,
114so that source code is always available. Other parts are developed first in
115a private tree, and that source code is released when the next platform
116version is ready.</p>
117<p>In some releases, core platform APIs will be ready far enough in advance
118that we can push the source code out for an early look in advance of the
119device's release; however in others, this isn't possible. In all cases, we
120release the platform source when we feel the version has stabilized enough,
121and when the development process permits. Releasing the source code is a
122fairly complex process.</p>
123<h3 id="what-is-involved-in-releasing-the-source-code-for-a-new-android-version">What is involved in releasing the source code for a new Android version?</h3>
124<p>Releasing the source code for a new version of the Android platform is a
125significant process. First, the software gets built into a system image for
126a device, and put through various forms of certification, including
127government regulatory certification for the regions the phones will be
128deployed. It also goes through operator testing. This is an important phase
129of the process, since it helps shake out a lot of software bugs.</p></p>
130<p>Once the release is approved by the regulators and operators, the
131manufacturer begins mass producing devices, and we turn to releasing the
132source code.</p>
133<p>Simultaneous to mass production the Google team kicks off several efforts
134to prepare the open source release. These efforts include final API changes
135and documentation (to reflect any changes that were made during
136qualification testing, for example), preparing an SDK for the new version,
137and launching the platform compatibility information.</p>
138<p>Also included is a final legal sign-off to release the code into open
139source. Just as open source contributors are required to sign a Contributors
140License Agreement attesting to their IP ownership of their contribution,
141Google too must verify that it is clear to make contributions.</p>
142<p>Starting at the time mass production begins, the software release process
143usually takes around a month, which often roughly places source code
144releases around the same time that the devices reach users.</p>
145<h3 id="how-does-the-aosp-relate-to-the-android-compatibility-program">How does the AOSP relate to the Android Compatibility Program?</h3>
146<p>The Android Open-Source Project maintains the Android software, and
147develops new versions. Since it's open-source, this software can be used for
148any purpose, including to ship devices that are not compatible with other
149devices based on the same source.</p>
150<p>The function of the Android Compatibility Program is to define a baseline
151implementation of Android that is compatible with third-party apps written
152by developers. Devices that are "Android compatible" may participate in the
153Android ecosystem, including Google Play; devices that don't meet the
154compatibility requirements exist outside that ecosystem.</p>
155<p>In other words, the Android Compatibility Program is how we separate
156"Android compatible devices" from devices that merely run derivatives of the
157source code. We welcome all uses of the Android source code, but only
158Android compatible devices -- as defined and tested by the Android
159Compatibility Program -- may participate in the Android ecosystem.</p>
160<h3 id="how-can-i-contribute-to-android">How can I contribute to Android?</h3>
161<p>There are a number of ways you can contribute to Android. You can report
162bugs, write apps for Android, or contribute source code to the Android
163Open-Source Project.</p>
164<p>There are some limits on the kinds of code contributions we are willing or
165able to accept. For instance, someone might want to contribute an
166alternative application API, such as a full C++-based environment. We would
167decline that contribution, since Android is focused on applications that run
168in the Dalvik VM. Alternatively, we won't accept contributions such as GPL
169or LGPL libraries that are incompatible with our licensing goals.</p>
170<p>We encourage those interested in contributing source code to contact us via
171the AOSP Community page prior to beginning any work. You can find more
172information on this topic at the Getting Involved page.</p>
173<h3 id="how-do-i-become-an-android-committer">How do I become an Android committer?</h3>
174<p>The Android Open Source Project doesn't really have a notion of a
175"committer". All contributions -- including those authored by Google
176employees -- go through a web-based system known as "gerrit" that's part of
177the Android engineering process. This system works in tandem with the git
178source code management system to cleanly manage source code
179contributions.</p>
180<p>Once submitted, changes need to be accepted by a designated Approver.
181Approvers are typically Google employees, but the same approvers are
182responsible for all submissions, regardless of origin.</p>
183<p>You can find more information on this topic at the <a href="source/submit-patches.html">Submitting Patches</a> page.</p>
184<h2 id="compatibility">Compatibility</h2>
185<h3 id="what-does-compatibility-mean">What does "compatibility" mean?</h3>
186<p>We define an "Android compatible" device as one that can run any
187application written by third-party developers using the Android SDK and NDK.
188We use this as a filter to separate devices that can participate in the
189Android app ecosystem, and those that cannot. Devices that are properly
190compatible can seek approval to use the Android trademark. Devices that are
191not compatible are merely derived from the Android source code and may not
192use the Android trademark.</p>
193<p>In other words, compatibility is a prerequisite to participate in the
194Android apps ecosystem. Anyone is welcome to use the Android source code,
195but if the device isn't compatible, it's not considered part of the Android
196ecosystem.</p>
197<h3 id="what-is-the-role-of-google-play-in-compatibility">What is the role of Google Play in compatibility?</h3>
198<p>Devices that are Android compatible may seek to license the Google Play
199client software. This allows them to become part of the Android app
200ecosystem, by allowing users to download developers' apps from a catalog
201shared by all compatible devices. This option isn't available to devices
202that aren't compatible.</p>
203<h3 id="what-kinds-of-devices-can-be-android-compatible">What kinds of devices can be Android compatible?</h3>
204<p>The Android software can be ported to a lot of different kinds of devices,
205including some on which third-party apps won't run properly. The Android
206Compatibility Definition Document (CDD) spells out the specific device
207configurations that will be considered compatible.</p>
208<p>For example, though the Android source code could be ported to run on a
209phone that doesn't have a camera, the CDD requires that in order to be
210compatible, all phones must have a camera. This allows developers to rely
211on a consistent set of capabilities when writing their apps.</p>
212<p>The CDD will evolve over time to reflect market realities. For instance,
213the 1.6 CDD only allows cell phones, but the 2.1 CDD allows devices to omit
214telephony hardware, allowing for non-phone devices such as tablet-style
215music players to be compatible. As we make these changes, we will also
216augment Google Play to allow developers to retain control over where
217their apps are available. To continue the telephony example, an app that
218manages SMS text messages would not be useful on a media player, so Google
219Play allows the developer to restrict that app exclusively to phone
220devices.</p>
221<h3 id="if-my-device-is-compatible-does-it-automatically-have-access-to-google-play-and-branding">If my device is compatible, does it automatically have access to Google Play and branding?</h3>
222<p>Google Play is a service operated by Google. Achieving compatibility is
223a prerequisite for obtaining access to the Google Play software and branding.
224Device manufacturers should contact Google to obtain access to Google
225Play.</p>
226<h3 id="if-i-am-not-a-manufacturer-how-can-i-get-google-play">If I am not a manufacturer, how can I get Google Play?</h3>
227<p>Google Play is only licensed to handset manufacturers shipping devices.
228For questions about specific cases, contact android-partnerships@google.com.</p>
229<h3 id="how-can-i-get-access-to-the-google-apps-for-android-such-as-maps">How can I get access to the Google apps for Android, such as Maps?</h3>
230<p>The Google apps for Android, such as YouTube, Google Maps and Navigation,
231Gmail, and so on are Google properties that are not part of Android, and
232are licensed separately. Contact android-partnerships@google.com for
233inquiries related to those apps.</p>
234<h3 id="is-compatibility-mandatory">Is compatibility mandatory?</h3>
235<p>No. The Android Compatibility Program is optional. Since the Android source
236code is open, anyone can use it to build any kind of device. However, if a
237manufacturer wishes to use the Android name with their product, or wants
238access to Google Play, they must first demonstrate that the device is
239compatible.</p>
240<h3 id="how-much-does-compatibility-certification-cost">How much does compatibility certification cost?</h3>
241<p>There is no cost to obtain Android compatibility for a device. The
242Compatibility Test Suite is open-source and available to anyone to use to
243test a device.</p>
244<h3 id="how-long-does-compatibility-take">How long does compatibility take?</h3>
245<p>The process is automated. The Compatibility Test Suite generates a report
246that can be provided to Google to verify compatibility. Eventually we intend
247to provide self-service tools to upload these reports to a public database.</p>
248<h3 id="who-determines-what-will-be-part-of-the-compatibility-definition">Who determines what will be part of the compatibility definition?</h3>
249<p>Since Google is responsible for the overall direction of Android as a
250platform and product, Google maintains the Compatibility Definition Document
251for each release. We draft the CDD for a new Android version in consultation
252with a number of OEMs, who provide input on its contents.</p>
253<h3 id="how-long-will-each-android-version-be-supported-for-new-devices">How long will each Android version be supported for new devices?</h3>
254<p>Since Android's code is open-source, we can't prevent someone from using an
255old version to launch a device. Instead, Google chooses not to license the
256Google Play client software for use on versions that are considered
257obsolete. This allows anyone to continue to ship old versions of Android,
258but those devices won't use the Android name and will exist outside the
259Android apps ecosystem, just as if they were non-compatible.</p>
260<h3 id="can-a-device-have-a-different-user-interface-and-still-be-compatible">Can a device have a different user interface and still be compatible?</h3>
261<p>The Android Compatibility Program focuses on whether a device can run
262third-party applications. The user interface components shipped with a
263device (such as home screen, dialer, color scheme, and so on) does not
264generally have much effect on third-party apps. As such, device builders are
265free to customize the user interface as much as they like. The Compatibility
266Definition Document does restrict the degree to which OEMs may alter the
267system user interface for areas that do impact third-party apps.</p>
268<h3 id="when-are-compatibility-definitions-released-for-new-android-versions">When are compatibility definitions released for new Android versions?</h3>
269<p>Our goal is to release new versions of Android Compatibility Definition
270Documents (CDDs) once the corresponding Android platform version has
271converged enough to permit it. While we can't release a final draft of a CDD
272for an Android software version before the first flagship device ships with
273that software, final CDDs will always be released after the first device.
274However, wherever practical we will make draft versions of CDDs available.</p>
275<h3 id="how-are-device-manufacturers-compatibility-claims-validated">How are device manufacturers' compatibility claims validated?</h3>
276<p>There is no validation process for Android device compatibility. However,
277if the device is to include Google Play, Google will typically validate
278the device for compatibility before agreeing to license the Google Play client
279software.</p>
280<h3 id="what-happens-if-a-device-that-claims-compatibility-is-later-found-to-have-compatibility-problems">What happens if a device that claims compatibility is later found to have compatibility problems?</h3>
281<p>Typically, Google's relationships with Google Play licensees allow us to
282ask them to release updated system images that fix the problems.</p>
283<h2 id="compatibility-test-suite">Compatibility Test Suite</h2>
284<h3 id="what-is-the-purpose-of-the-cts">What is the purpose of the CTS?</h3>
285<p>The Compatibility Test Suite is a tool used by device manufacturers to help
286ensure their devices are compatible, and to report test results for
287validations. The CTS is intended to be run frequently by OEMs throughout the
288engineering process to catch compatibility issues early.</p>
289<h3 id="what-kinds-of-things-does-the-cts-test">What kinds of things does the CTS test?</h3>
290<p>The CTS currently tests that all of the supported Android strong-typed APIs
291are present and behave correctly. It also tests other non-API system
292behaviors such as application lifecycle and performance. We plan to add
293support in future CTS versions to test "soft" APIs such as Intents as
294well.</p>
295<h3 id="will-the-cts-reports-be-made-public">Will the CTS reports be made public?</h3>
296<p>Yes. While not currently implemented, Google intends to provide web-based
297self-service tools for OEMs to publish CTS reports so that they can be
298viewed by anyone. CTS reports can be shared as widely as manufacturers
299prefer.</p>
300<h3 id="how-is-the-cts-licensed">How is the CTS licensed?</h3>
301<p>The CTS is licensed under the same Apache Software License 2.0 that the
302bulk of Android uses.</p>
303<h3 id="does-the-cts-accept-contributions">Does the CTS accept contributions?</h3>
304<p>Yes please! The Android Open-Source Project accepts contributions to
305improve the CTS in the same way as for any other component. In fact,
306improving the coverage and quality of the CTS test cases is one of the best
307ways to help out Android.</p>
308<h3 id="can-anyone-use-the-cts-on-existing-devices">Can anyone use the CTS on existing devices?</h3>
309<p>The Compatibility Definition Document requires that compatible devices
310implement the 'adb' debugging utility. This means that any compatible device
311-- including ones available at retail -- must be able to run the CTS
312tests.</p>
313
314
315<h2>Security</h2>
316<h3 id="secure">Is Android secure?</h3>
317
318<p>The security and privacy of our users' data is of primary importance to the
319Android Open Source Project. We are dedicated to building and maintaining one
320of the most secure mobile platforms available while still fulfilling our goal
321of opening the mobile device space to innovation and competition.</p>
322
323<p> A comprehensive overview of the <a
324href="http://source.android.com/tech/security/index.html">Android
325security model and Android security processes</a> is provided in the Android
326Open Source Project Website.</p>
327
328<p>Application developers play an important part in the security of Android.
329The Android Platform provides developers with a rich <a
330href="http://code.google.com/android/devel/security.html">security model</a>
331that to request the capabilities, or access, needed by their
332application and to define new capabilities that other applications can request.
333The Android user can choose to grant or deny an application's request for
334certain capabilities on the handset.</p>
335
336<p>We have made great efforts to secure the Android platform, but it is
337inevitable that security bugs will be found in any system of this complexity.
338Therefore, the Android team works hard to find new bugs internally and responds
339quickly and professionally to vulnerability reports from external researchers.
340</p>
341
342
343<h3 id="issue">I think I found a security flaw. How do I
344report it?</h3>
345
346<p>You can reach the Android security team at <a
347href="mailto:security@android.com">security@android.com</a>. If you like, you
348can protect your message using our <a
349href="http://code.google.com/android/security_at_android_dot_com.txt">PGP
350key</a>.</p>
351
352<p>We appreciate researchers practicing responsible disclosure by emailing us
353with a detailed summary of the issue and keeping the issue confidential while
354users are at risk. In return, we will make sure to keep the researcher informed
355of our progress in issuing a fix. </p>
356
357
358<h3 id="informed">How can I stay informed about Android security?</h3>
359
360<p>For general discussion of Android platform security, or how to use
361security features in your Android application, please subscribe to <a
362href="http://groups.google.com/group/android-security-discuss">android-security-discuss</a>.
363</p>
364
365
366<h3 id="use">How do I securely use my Android phone?</h3>
367
368<p>Android was designed so that you can safely use your phone without making
369any changes to the device or installing any special software. Android applications
370run in an Application Sandbox that limits access to sensitive information or data
371with the users permission.</p>
372
373<p>To fully benefit from the security protections in Android, it is important that
374users only download and install software from known sources.</p>
375
376<p>As an open platform, Android allows users to visit any website and load
377software from any developer onto a device. As with a home PC, the user must be
378aware of who is providing the software they are downloading and must decide
379whether they want to grant the application the capabilities it requests.
380This decision can be informed by the user's judgment of the software
381developer's trustworthiness, and where the software came from.</p>
382
383
384<h3 id="malware">I think I found malicious software being
385distributed for Android. How can I help?</h3>
386
387<p>Like any other platform, it will be possible for unethical developers
388to create malicious software, known as <a
389href="http://en.wikipedia.org/wiki/Malware">malware</a>, for Android. If you
390think somebody is trying to spread malware, please let us know at <a
391href="mailto:security@android.com">security@android.com</a>. Please include as
392much detail about the application as possible, with the location it is
393being distributed from and why you suspect it of being malicious software.</p>
394
395<p>The term <i>malicious software</i> is subjective, and we cannot make an
396exhaustive definition. Some examples of what the Android Security Team believes
397to be malicious software is any application that:
398<ul>
399 <li>uses a bug or security vulnerability to gain permissions that have not
400 been granted by the user</li>
401 <li>shows the user unsolicited messages (especially messages urging the
402 user to buy something);</li>
403 <li>resists (or attempts to resist) the user's effort to uninstall it;</li>
404 <li>attempts to automatically spread itself to other devices;</li>
405 <li>hides its files and/or processes;</li>
406 <li>discloses the user's private information to a third party, without the
407 user's knowledge and consent;</li>
408 <li>destroys the user's data (or the device itself) without the user's
409 knowledge and consent;</li>
410 <li>impersonates the user (such as by sending email or buying things from a
411 web store) without the user's knowledge and consent; or</li>
412 <li>otherwise degrades the user's experience with the device.</li>
413</ul>
414</p>
415
416<h3 id="fixes">How do Android-powered devices receive security
417fixes?</h3>
418
419<p>The manufacturer of each device is responsible for distributing software
420upgrades for it, including security fixes. Many devices will update themselves
421automatically with software downloaded "over the air", while some devices
422require the user to upgrade them manually.</p>
423
424<p>Google provides software updates for a number of Android devices, including
425the <a href="http://www.google.com/nexus">Nexus</a>
426series of devices, using an "over the air" (OTA) update. These updates may include
427security fixes as well as new features.</p>
428
429<h3 id="directfix">Can I get a fix directly from the
430Android Platform Project?</h3>
431
432<p>Android is a mobile platform that is released as open source and
433available for free use by anybody. This means that there are many
434Android-based products available to consumers, and most of them are created
435without the knowledge or participation of the Android Open Source Project. Like
436the maintainers of other open source projects, we cannot build and release
437patches for the entire ecosystem of products using Android. Instead, we will
438work diligently to find and fix flaws as quickly as possible and to distribute
439those fixes to the manufacturers of the products through the open source project.</p>
440
441<p>If you are making an Android-powered device and would like to know how you can
442properly support your customers by keeping abreast of software updates, please
443contact us at <a
444href="mailto:info@openhandsetalliance.com">info@openhandsetalliance.com</a>.</p>
445