Merge "Docs: Add build and staging script"
diff --git a/src/devices/hal.jd b/src/devices/hal.jd
deleted file mode 100644
index e464a88..0000000
--- a/src/devices/hal.jd
+++ /dev/null
@@ -1,124 +0,0 @@
-page.title=The Hardware Abstraction Layer
-@jd:body
-
-<!--
-    Copyright 2013 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 id="qv-wrapper">
-  <div id="qv">
-    <h2>In this document</h2>
-    <ol id="auto-toc">
-    </ol>
-  </div>
-</div>
-
-<p>
-  The hardware abstraction layer (HAL) defines a standard interface for hardware vendors to
-  implement and allows Android to be agnostic about lower-level driver
-  implementations. The HAL allows you to implement functionality
-  without affecting or modifying the higher level system. HAL implementations
-  are packaged into modules (<code>.so</code>) file and loaded by the Android
-  system at the appropriate time.
-<h2 id="structure">
-  Standard HAL structure
-</h2>
-<p>
-  Each hardware-specific HAL interface has properties that are common to all HAL interfaces. These
-  properties are defined in <code>hardware/libhardware/include/hardware/hardware.h</code> and
-  guarantees that HALs have a predictable structure.
-  This interface allows the Android system to load the correct versions of your
-  HAL modules in a consistent way. There are two general components
-  that a HAL interface consists of: a module and a device.
-</p>
-<p>
-  A module represents your packaged HAL implementation, which is stored as a shared library (<code>.so file</code>). It contains
-  metadata such as the version, name, and author of the module, which helps Android find and load it correctly. The
-  <code>hardware/libhardware/include/hardware/hardware.h</code> header file defines a
-  struct, <code>hw_module_t</code>, that represents a module and contains information such as
-  the module version, author, and name.</p>
-
-  <p>In addition, the <code>hw_module_t</code> struct contains
-  a pointer to another struct, <code>hw_module_methods_t</code>, that contains a pointer to
-  an "open" function for the module. This open function is used to initate communication with
-  the hardware that the HAL is serving as an abstraction for. Each hardware-specific HAL usually 
-  extends the generic <code>hw_module_t</code> struct with additional information
-  for that specific piece of hardware. For example in the camera HAL, the <code>camera_module_t</code> struct
-  contains a <code>hw_module_t</code> struct along with other camera-specific function pointers:
-</p>
-
-<pre>
-typedef struct camera_module {
-    hw_module_t common;
-    int (*get_number_of_cameras)(void);
-    int (*get_camera_info)(int camera_id, struct camera_info *info);
-} camera_module_t;
-</pre>
-
-<p>When you implement a HAL and create the module struct, you must name it
-  <code>HAL_MODULE_INFO_SYM</code>. For instance, here is an example from the Galaxy Nexus audio HAL:</p>
-<pre>
-struct audio_module HAL_MODULE_INFO_SYM = {
-    .common = {
-        .tag = HARDWARE_MODULE_TAG,
-        .module_api_version = AUDIO_MODULE_API_VERSION_0_1,
-        .hal_api_version = HARDWARE_HAL_API_VERSION,
-        .id = AUDIO_HARDWARE_MODULE_ID,
-        .name = "Tuna audio HW HAL",
-        .author = "The Android Open Source Project",
-        .methods = &hal_module_methods,
-    },
-};
-</pre>
-<p>
-  A device abstracts the actual hardware of your product. For example, an audio module can contain
-  a primary audio device, a USB audio device, or a Bluetooth A2DP audio device. A device
-  is represented by the <code>hw_device_t</code> struct. Like a module, each type of device
-  defines a more-detailed version of the generic <code>hw_device_t</code> that contains
-  function pointers for specific features of the hardware. For example, the
-  <code>audio_hw_device_t</code> struct type contains function pointers to audio device operations:
-</p>
-
-<pre>
-struct audio_hw_device {
-    struct hw_device_t common;
-
-    /**
-     * used by audio flinger to enumerate what devices are supported by
-     * each audio_hw_device implementation.
-     *
-     * Return value is a bitmask of 1 or more values of audio_devices_t
-     */
-    uint32_t (*get_supported_devices)(const struct audio_hw_device *dev);
-  ...
-};
-typedef struct audio_hw_device audio_hw_device_t;
-</pre>
-
-<p>
-  In addition to these standard properties, each hardware-specific HAL interface can define more of its
-  own features and requirements. See the <a href="{@docRoot}guide/reference/files.html">HAL reference documentation</a>
-  as well as the individual instructions for each HAL for more information on how to implement a specific interface.
-</p>
-
-<h2 id="modules">HAL modules</h2>
-<p>HAL implementations are built into modules (<code>.so</code>) files and are dynamically linked by Android when appropriate.
-  You can build your modules by creating <code>Android.mk</code> files for each of your HAL implementations
-  and pointing to your source files. In general, your shared libraries must be named in a certain format, so that
-  they can be found and loaded properly. The naming scheme varies slightly from module to module, but they follow
-  the general pattern of: <code>&lt;module_type&gt;.&lt;device_name&gt;</code>.</p>
-
-  <p>For more information about setting up the build for each HAL, see its respective documentation.</p>
-
-</p>
diff --git a/src/index.jd b/src/index.jd
index 44dc6a4..7711873 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -42,6 +42,47 @@
   <div class="landing-docs">
     <div class="col-8">
     <h3>What's New</h3>
+<a href="{@docRoot}index.html">
+        <h4>Google Feedback Integration</h4></a>
+        <p>Now every source.android.com page contains a prominent <strong>Send
+        Feedback</strong> button in the footer so partners and the open source community may
+        directly convey their desired improvements to this site.</p>
+
+<a href="{@docRoot}source/index.html">
+        <h4>Source and Devices tab Improvements</h4></a>
+        <p>The <strong><a href="{@docRoot}source/requirements.html">Download
+        and Building</a></strong> section of the <em>Source</em> tab has been reorganized to
+        match expected development workflow. <strong><a
+        href="{@docRoot}source/add-device.html">Adding a New Device</a></strong> has
+        been introduced to explain how Android Makefiles are produced. <strong><a
+        href="{@docRoot}source/using-repo.html">Using Repo</a></strong> now contains an
+        example for obtaining command-specific help. And the <em>Devices</em> main page now
+        describes the <strong><a href="{@docRoot}devices/index.html#structure">standard
+        hardware abstraction layer (HAL) structure</a></strong>.</p>
+
+<a href="{@docRoot}accessories/headset/index.html">
+        <h4>Audio Headset Requirements and Testing</h4></a>
+        <p><strong><a
+        href="{@docRoot}accessories/headset/requirements.html">Requirements</a></strong>
+        and <strong><a href="{@docRoot}accessories/headset/testing.html">Testing</a></strong>
+        information has been added for wired audio headsets. Those pages and the
+        existing specification have been moved to a distinct <strong><a
+        href="{@docRoot}accessories/headset/index.html">Headset</a></strong>
+        section.</p>
+
+<a href="{@docRoot}compatibility/downloads.html">
+        <h4>CTS 4.4 R4</h4></a>
+        <p>Packages for the 4.4 R4 version of the Android Compatibility Test
+        Suite (CTS) are available for <strong><a
+        href="/compatibility/downloads.html#android-44">download</a></strong>.</p>
+
+<a href="/source/build-numbers.html">
+        <h4>Build Numbers for Nexus 6 and Nexus Player</h4></a>
+        <p>Build numbers <strong><a
+        href="/source/build-numbers.html#source-code-tags-and-builds">LMY48J
+        and LYZ28J</a></strong> have been added for Nexus Player and Nexus 6
+        (T-Mobile ONLY), respectively.</p>
+
 <a href="{@docRoot}devices/audio/latency_app.html#videos">
         <h4>Videos and Other Resources for Audio Implementation</h4></a>
         <p>The Audio team offers video on <strong><a
@@ -51,54 +92,6 @@
         improving audio performance</a></strong> and related clarifications to text
         throughout the <strong><a href="{@docRoot}devices/audio/index.html">Audio
         section</a></strong>.</p>
-
-<a href="{@docRoot}compatibility/downloads.html">
-        <h4>CTS 5.1 R2</h4></a>
-        <p>Packages for the 5.1 R2 version of the Android Compatibility Test
-        Suite (CTS) are available for <strong><a
-        href="{@docRoot}compatibility/downloads.html#android-51">download</a></strong>.</p>
-
-<a href="{@docRoot}devices/tech/security/selinux/customize.html">
-        <h4>SELinux neverallow Rules</h4></a>
-        <p>New guidance has been offered on the use of Security-Enhanced Linux (SELinux) <strong><a
-        href="{@docRoot}devices/tech/security/selinux/customize.html#neverallow"><code>neverallow</code>
-        rules</a></strong>, which prohibit behavior that should never occur.</p>
-
-<a href="{@docRoot}source/build-numbers.html">
-        <h4>Build Numbers for Nexus 6 and 7</h4></a>
-        <p>Build numbers <strong><a
-        href="{@docRoot}source/build-numbers.html#source-code-tags-and-builds">LYZ28E and
-        LMY48G</a></strong> have been added for Nexus 6 (T-Mobile ONLY) and Nexus 7 (flo),
-        respectively.</p>
-
-<a href="{@docRoot}devices/tech/security/overview/updates-resources.html">
-        <h4>Security Updates and Resources</h4></a>
-        <p><strong><a href="{@docRoot}devices/tech/security/overview/updates-resources.html">Security
-        Updates and Resources</a></strong> has been rewritten entirely to describe the
-        processes for <strong><a
-        href="{@docRoot}devices/tech/security/overview/updates-resources.html#report-issues">reporting
-        security issues</a></strong>, <strong><a
-        href="{@docRoot}devices/tech/security/overview/updates-resources.html#triaging_bugs">triaging
-        bugs</a></strong>,
-        <strong><a
-        href="{@docRoot}devices/tech/security/overview/updates-resources.html#notifying_partners">notifying
-        partners</a></strong>, and much more.</p>
-
-<a href="{@docRoot}devices/tech/ota/sign_builds.html">
-        <h4>Sign OTA Packages and Release Keys</h4></a>
-        <p>Signing Builds for Release now contains sections on <strong><a
-        href="{@docRoot}devices/tech/ota/sign_builds.html#release-keys">Release
-        Keys</a></strong> and <strong><a
-        href="{@docRoot}devices/tech/ota/sign_builds.html#sign-ota-packages">Signing OTA
-        packages</a></strong> that provide easy recipes for signing flashable
-        images and over-the-air (OTA) updates.</p>
-
-<a href="{@docRoot}compatibility/android-cdd.pdf">
-        <h4>5.1 Compatibility Definition Document</h4></a>
-        <p>The Android <strong><a
-        href="{@docRoot}compatibility/android-cdd.pdf">5.1 Compatibility Definition
-        Document (CDD)</a></strong> has been published to reflect the
-        requirements of the latest version of Android.</p>
     </div>
 
     <div class="col-8">
@@ -130,7 +123,10 @@
 
       <a href="https://android.googlesource.com/platform/docs/source.android.com/">
         <h4>Help this Site</h4></a>
-        <p>Please note, source.android.com is maintained in the Android Open Source Project. See the <strong><a
+        <p>Use the <strong>Send 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>
diff --git a/src/source/build-numbers.jd b/src/source/build-numbers.jd
index e05dc98..8f0aee8 100644
--- a/src/source/build-numbers.jd
+++ b/src/source/build-numbers.jd
@@ -178,6 +178,12 @@
 <th>Supported devices</th>
 </tr>
 <tr>
+  <td>LVY48E</td>
+  <td>android-5.1.1_r13</td>
+  <td>Lollipop</td>
+  <td>Nexus 6 (For Project Fi ONLY)</td>
+</tr>
+<tr>
   <td>LYZ28J</td>
   <td>android-5.1.1_r12</td>
   <td>Lollipop</td>