fullpage=true
no_footer_links=true
landing.page=true
page.metaDescription=The official site for the Android Open Source Project.
header.hide=1
@jd:body

<!--
    Copyright 2016 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div class="wrap">

  <div class="landing-banner">
      <h1 itemprop="name" style="margin-bottom:0;">Welcome to the Android Open Source Project!</h1>

<p>
Android is an open source software stack for a wide range of mobile devices and
a corresponding open source project led by Google. This site offers the
information and source code you need to create custom variants of the Android
stack, port devices and accessories to the Android platform, and ensure your
devices meet compatibility requirements.
</p>
  </div>

</div>

<div class="wrap">

  <div class="landing-docs">
    <div class="col-8">
    <h3>What's New</h3>
<a href="{@docRoot}security/trusty/index.html">
        <h4>Trusty Build Instructions</h4></a>
        <p>Links and commands have been added for <strong><a
        href="{@docRoot}security/trusty/index.html#downloading_building">downloading
        and building</a></strong> the Trusty Trusted Execution Environment (TEE).</p>

<a href="{@docRoot}source/build-numbers.html">
        <h4>Build Numbers for May Security Updates</h4></a>
        <p>New <strong><a
        href="{@docRoot}source/build-numbers.html#source-code-tags-and-builds">build
        numbers</a></strong> have been published for Nexus 5, Nexus 6, Nexus 7,
        Nexus 9, Nexus 5X, Nexus 6P, and Nexus Player running Android 6.0 to
        support the May Android security release.</p>

<a href="{@docRoot}security/bulletin/index.html">
        <h4>May Android Security Bulletin</h4></a>
        <p>The <strong><a
        href="{@docRoot}security/bulletin/2016-05-01.html">May 2016 Android Security
        Bulletin</a></strong> has been published along with updates to the <strong><a
        href="{@docRoot}security/overview/updates-resources.html#severity">Android
        Security severity ratings</a></strong>. The bulletin describes vulnerabilities that have
        been fixed in the Android Open Source Project (AOSP) and in components outside
        of AOSP.</p>

<a href="{@docRoot}compatibility/cts/downloads.html">
        <h4>CTS Updated to 6.0R6, 5.1R7 and 5.0R6</h4></a>
        <p>New versions of the Compatibility Test Suite (CTS) have been
        released for Android 6.0, 5.1, and 5.0. In additon, the <strong><a
        href="{@docRoot}compatibility/cts/downloads.html">Downloads</a></strong> page has been
        moved under <strong><a
        href="{@docRoot}compatibility/cts/index.html">CTS</a></strong> since links to
        the Android Compatibility Definition Document (CDD) have been moved to a
        dedicated <strong><a href="{@docRoot}compatibility/cdd.html">Compatibility
        Definition Document</a></strong> page.</p>

<a href="{@docRoot}compatibility/cdd.html">
        <h4>CDD as Web Page, Older Versions Available</h4></a>
        <p>The Android Compatibility Definition Document (CDD) is now published
        as a <strong><a href="{@docRoot}compatibility/android-cdd.html">web
        page</a></strong> for easy access, and all older versions of the CDD and
        associated version strings are now listed on a central <strong><a
        href="{@docRoot}compatibility/cdd.html">Compatibility Definition Document</a>
        </strong> page.</p>

<a href="{@docRoot}compatibility/cts/camera-hal.html">
        <h4>Camera HAL Testing Checklist</h4></a>
        <p>A new <strong><a
        href="{@docRoot}compatibility/cts/camera-hal.html">Camera HAL Testing
        Checklist</a></strong> describes all of the tests available for the Camera
        hardware abstraction layer, including native, the Compatibility Test Suite
        (CTS), manual tests, and the Image Test Suite (ITS).</p>
    </div>

    <div class="col-8">
      <h3>Getting Started</h3>
      <a href="{@docRoot}source/index.html">
        <h4>Explore the Source</h4></a>
        <p>Get the complete Android platform and modify and build it to suit your needs. You can
        also <strong><a
        href="https://android-review.googlesource.com/#/q/status:open">contribute
        to</a></strong> the <strong><a
        href="https://android.googlesource.com/">Android Open Source Project (AOSP)
        repository</a></strong> to make your changes available to everyone else
        in the Android ecosystem.</p>
<a href="{@docRoot}source/index.html"><img border="0" src="images/android_framework_small.png" alt="Android framework summary" style="display:inline;float:right;margin:5px 10px;width:42%;height:42%"></a>
      <a href="{@docRoot}devices/index.html">
        <h4>Port Android to Devices</h4></a>
        <p>Port the latest Android platform and
        create compelling devices that your customers want.</p>

      <a href="{@docRoot}security/index.html">
        <h4>Make Secure</h4></a>
	<p>Follow these examples and instructions to harden your Android
          devices against malicious attacks. Find out how the Android security program
          works and learn to implement the latest features.</p>

      <a href="{@docRoot}compatibility/index.html">
        <h4>Get Compatible</h4></a>
        <p>Being Android-compatible lets you offer custom features but still give users and developers a consistent
          and standard experience across all Android-powered devices. Android provides guidance
          and a test suite to verify your Android compatibility.</p>

      <a href="https://android.googlesource.com/platform/docs/source.android.com/">
        <h4>Help this Site</h4></a>
        <p>Use the <strong>Site Feedback</strong> button at the bottom of any
        page to request improvements to the content or identify errors. In addition,
        source.android.com is maintained in the Android Open Source Project. See the
        <strong><a
        href="https://android.googlesource.com/platform/docs/source.android.com/+log/master">docs/source.android.com
        project log in AOSP</a></strong> for the complete list of changes to this site.
        Contribute your own updates to that same project and help maintain source.android.com.</p>
    </div>

  </div>

</div>
