diff --git a/src/index.jd b/src/index.jd
index 9886d28..dc353d1 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -32,8 +32,6 @@
 stack, port devices and accessories to the Android platform, and ensure your
 devices meet compatibility requirements.
 </p>
-
-<h2 align="center">Android 6.0 Updates Available &mdash; see details below</h2>
   </div>
 
 </div>
@@ -43,6 +41,30 @@
   <div class="landing-docs">
     <div class="col-8">
     <h3>What's New</h3>
+<a href="{@docRoot}devices/tech/ota/device_code.html">
+        <h4>FPS Value Customization</h4></a>
+        <p>Android allows for a vendor-specific installing image but previously
+        defined a private <code>animation_fps</code> variable that could not be overridden. The
+        variable was changed from private to protected (so it can be customized), and
+        the image generator can now optionally embed the FPS value (default is 20 FPS)
+        into the generated image. See <strong><a
+        href="{@docRoot}devices/tech/ota/device_code.html">OTA Device-Specific
+        Code</a>.</strong></p>
+
+<a href="{@docRoot}source/building-kernels.html">
+        <h4>User Feedback Implemented</h4></a>
+        <p>Input from the <strong>Site Feedback</strong> button has
+        prompted the following fixes: new devices on <strong><a
+        href="{@docRoot}source/building-kernels.html">Building Kernels</a></strong>,
+        the significant motion sensor being identified as a wake-up sensor on
+        <strong><a href="{@docRoot}devices/sensors/sensor-types.html">Sensor
+        Types</a></strong>, a new path for example download in <strong><a
+        href="{@docRoot}source/using-repo.html">Repo command reference</a></strong>, the correct
+        formula for determining actual resistance on <strong><a
+        href="{@docRoot}devices/accessories/headset/specification.html">Wired Audio Headset
+        Specification</a></strong>, and a description of timestamp format on <strong><a
+        href="{@docRoot}devices/input/getevent.html">Getevent</a></strong>.</p>
+
 <a href="{@docRoot}devices/tech/ota/reduce_size.html">
         <h4>Reducing OTA Size</h4></a>
         <p>The Android build team has reduced the size of over-the-air (OTA)
@@ -62,20 +84,6 @@
         Trusty consists of an operating system, drivers for the Android kernel (Linux),
         and libraries for Android systems software.</p>
 
-<a href="{@docRoot}source/build-numbers.html">
-        <h4>Lollipop and Marshmallow Build Numbers</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 Lollipop on Nexus 10 and
-        Marshmallow on Nexus 5, Nexus 5X, Nexus 6, Nexus 6P, Nexus 7 (flo/deb), Nexus 9
-        (volantis/volantisg), Nexus Player, and Pixel C.</p>
-
-<a href="{@docRoot}compatibility/downloads.html">
-        <h4>Android 6.0, 5.1, and 5.0 CTS Downloads</h4></a>
-        <p>Android 6.0 R3, 5.1 R5, and 5.0 R4 Compatibility Test Suite (CTS)
-        and CTS Verifier are available for <strong><a
-        href="{@docRoot}compatibility/downloads.html">Download</a></strong>.</p>
-
 <a href="{@docRoot}source/initializing.html">
         <h4>JDK 8 for Latest Platform Development</h4></a>
         <p>The master branch of Android now requires JDK 8 to build. See <strong><a
@@ -85,17 +93,6 @@
         a Linux build environment</a></strong> or <strong><a
         href="{@docRoot}source/initializing.html#installing-the-mac-jdk">Setting up a
         Mac OS build environment</a></strong> for update instructions by operating system.</p>
-
-<a href="{@docRoot}source/read-bug-reports.html">
-        <h4>Reading Bug Reports</h4></a>
-        <p>Android Engineering has written a detailed guide for <strong><a
-        href="{@docRoot}source/read-bug-reports.html">understanding
-        device-generated bug reports</a></strong>. This guide describes and
-        provides examples of common errors and their associated causes, such as
-        <strong><a href="{@docRoot}source/read-bug-reports.html#memory">low
-        memory</a></strong>. It even explains how to establish a <strong><a
-        href="{@docRoot}source/read-bug-reports.html#narrative">narrative</a></strong>
-        of the issue by syncing timelines across logs.</p>
     </div>
 
     <div class="col-8">
diff --git a/src/source/code-style.jd b/src/source/code-style.jd
index 47ac191..8446609 100644
--- a/src/source/code-style.jd
+++ b/src/source/code-style.jd
@@ -579,7 +579,7 @@
 WARNING level might also be considered for reporting to a statistics-gathering
 server.</li>
 <li><code>INFORMATIVE:</code>
-Use note that something interesting to most people happened, i.e. when a
+Use to note that something interesting to most people happened, i.e. when a
 situation is detected that is likely to have widespread impact, though isn't
 necessarily an error. Such a condition should only be logged by a module that
 reasonably believes that it is the most authoritative in that domain (to avoid
@@ -639,12 +639,12 @@
 that has consequences within an app should be logged at the DEBUG or VERBOSE
 level (depending on whether the consequences are serious enough and unexpected
 enough to be logged in a release build).</li>
-<li>A full filesystem on a filesystem that is accessible to or on
+<li>Having a full filesystem on a filesystem that is accessible to or on
 behalf of third-party applications should not be logged at a level higher than
 INFORMATIVE.</li>
 <li>Invalid data coming from any untrusted source (including any
 file on shared storage, or data coming through just about any network
-connections) is considered expected and should not trigger any logging at a
+connection) is considered expected and should not trigger any logging at a
 level higher than DEBUG when it's detected to be invalid (and even then
 logging should be as limited as possible).</li>
 <li>Keep in mind that the <code>+</code> operator, when used on Strings,
@@ -706,4 +706,4 @@
     assertFalse(colorMatcher.isDistinguishable(Color.RED, Color.BLACK))
     assertTrue(colorMatcher.isDistinguishable(Color.X, Color.Y))
 }
-</code></pre>
\ No newline at end of file
+</code></pre>
diff --git a/src/source/requirements.jd b/src/source/requirements.jd
index c19b8c4..19e7d3d 100644
--- a/src/source/requirements.jd
+++ b/src/source/requirements.jd
@@ -16,22 +16,16 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<p>The Android build is routinely tested in-house on recent versions of
-Ubuntu LTS (14.04), but most distributions should have the required
-build tools available.</p>
-
 <p>Before you download and build the Android source, ensure your system meets
-the following requirements:</p>
+  the following requirements. Then see <a href="initializing.html">Initializing a
+  Build Environment</a> for installation instructions by operating system.</p>
+
+<h2 id=hardware-requirements>Hardware requirements</h2>
+
+<p>Your development workstation should meet or exceed these hardware requirements:</p>
 
 <ul>
 
-  <li>A Linux or Mac OS system. It is also possible
-  to build Android in a virtual machine on unsupported systems such as Windows.
-  If you are running Linux in a virtual machine, you need at
-  least 16GB of RAM/swap and 100GB or more of disk space in order to
-  build the Android tree. See disk size requirements below.
-  </li>
-
   <li>A 64-bit environment is required for Gingerbread (2.3.x) and newer versions, including the master
   branch. You can compile older versions on 32-bit systems.
   </li>
@@ -41,6 +35,53 @@
   need even more space.</p>
   </li>
 
+  <li>If you are running Linux in a virtual machine, you need at
+  least 16GB of RAM/swap.
+  </li>
+
+</ul>
+
+<h2 id=software-requirements>Software requirements</h2>
+
+<p>The <a
+  href="https://android.googlesource.com/">Android Open Source Project
+  (AOSP)</a> is routinely tested in-house on recent versions of
+  Ubuntu LTS (14.04), but most distributions should have the required
+  build tools available.</p>
+
+<p>You workstation will need this software:</p>
+
+<ul>
+
+  <li>A Linux or Mac OS operating system. It is also possible to build Android in a
+  virtual machine on unsupported systems such as Windows.</br>
+
+  For Linux:
+  <ul>
+    <li>Android 6.0 (Marshmallow) - AOSP master: Ubuntu 14.04 (Trusty)</li>
+    <li>Android 2.3.x (Gingerbread) - Android 5.x (Lollipop): Ubuntu 12.04 (Precise)</li>
+    <li>Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu 10.04 (Lucid)</li>
+  </ul>
+
+  For Mac:
+  <ul>
+    <li>Android 6.0 (Marshmallow) - AOSP master: Mac OS v10.10 (Yosemite) or later</li>
+    <li>Android 5.x (Lollipop): Mac OS v10.8 (Mountain Lion)</li>
+    <li>Android 4.1.x-4.3.x (Jelly Bean) - Android 4.4.x (KitKat): Mac OS v10.6 (Snow Leopard) or Mac OS X v10.7 (Lion)</li>
+    <li>Android 1.5 (Cupcake) - Android 4.0.x (Ice Cream Sandwich): Mac OS v10.5 (Leopard) or Mac OS X v10.6 (Snow Leopard)</li>
+  </ul>
+  </li>
+
+  <li>
+  Java Development Kit (JDK):
+  <ul>
+    <li>The master branch of Android in AOSP: Java 8
+    <li>Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Java 7
+    <li>Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Java 6
+    <li>Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Java 5
+  </ul>
+  </li>
+
   <li>
   Python 2.6 -- 2.7, which you can download from <a href="http://www.python.org/download/">python.org</a>.</p>
   </li>
@@ -50,14 +91,6 @@
   </li>
 
   <li>
-  JDK 8 to build the master branch of Android in the <a
-  href="https://android.googlesource.com/">Android Open Source Project
-  (AOSP)</a>; JDK 7 to build Lollipop through Marshmallow, JDK 6 to build Gingerbread through KitKat. See
-  <a href="initializing.html">Initializing a Build Environment</a> for installation instructions by operating
-  system.</p>
-  </li>
-
-  <li>
   Git 1.7 or newer. You can find it at <a href="http://git-scm.com/download">git-scm.com</a>.</p>
   </li>
 
