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