diff --git a/src/accessories/audio.jd b/src/accessories/audio.jd
index 92ce6fe..0b61b3f 100644
--- a/src/accessories/audio.jd
+++ b/src/accessories/audio.jd
@@ -56,7 +56,7 @@
 supported on Android 1.5 (API Level 3) and higher. An Android user can connect to an accessory
 that supports this profile using the system Settings &gt; Bluetooth and play music directly to the
 accessory without the need for a secondary application.</p>
-<p><strong>Note:</strong> If you want to provide a custom application for output to your audio
+<p class="note"><strong>Note:</strong> If you want to provide a custom application for output to your audio
 accessory, note that the Android 3.0 (API Level 11) allows applications to operate an A2DP
 connection using the
 <a href="http://developer.android.com/reference/android/bluetooth/BluetoothA2dp.html"><code>BluetoothA2dp</code></a>
@@ -71,6 +71,12 @@
   (<code>&lt;adk-src&gt;/adk2012/board/library/ADK2/</code>), which includes an example implementation
   of an audio playback accessory using a Bluetooth connection.</li>
 </ul>
-<p><strong>Note:</strong> The ADK 2012 source code includes an open source Bluetooth stack that
+<p class="note"><strong>Note:</strong> The ADK 2012 source code includes an open source Bluetooth stack that
 is built for the Texas Instruments CC2564 chip, but can work with any Bluetooth chip that
 implements a standard Host/Controller Interface (HCI).</p>
+
+<h2 id="midi-over-usb">MIDI over USB and Bluetooth LE</h2>
+<p>Both USB and Bluetooth Low Energy can be used as transports for the
+<a href="http://en.wikipedia.org/wiki/MIDI">MIDI</a> protocol.
+See <a href="{@docRoot}devices/audio/midi.html">MIDI</a> for more information.
+</p>
diff --git a/src/accessories/custom.jd b/src/accessories/custom.jd
index 560f182..f68ab8e 100644
--- a/src/accessories/custom.jd
+++ b/src/accessories/custom.jd
@@ -82,7 +82,7 @@
   <a href="http://developer.android.com/tools/adk/adk2.html#src-download">application source code</a>
   (<code>&lt;adk-src&gt;/adk2012/app/</code>).</li>
 </ul>
-<p><strong>Note:</strong> The ADK 2012 source code includes an open source Bluetooth stack which
+<p class="note"><strong>Note:</strong> The ADK 2012 source code includes an open source Bluetooth stack which
 is built for the Texas Instruments CC2564 chip, but can work with any Bluetooth chip that
 supports a standard Host/Controller Interface (HCI).</p>
 
@@ -92,7 +92,7 @@
 (API Level 16) and higher. Once an Android device connects to an accessory that supports this
 protocol, the Android system treats it as a standard audio output device and routes all audio to
 that accessory. No secondary software application is required on the Android device.</p>
-<p><strong>Note:</strong> Due to the low power output of Android devices, the Android Open Accessory
+<p class="note"><strong>Note:</strong> Due to the low power output of Android devices, the Android Open Accessory
 Protocol requires that accessories act as a USB host, which means that the connecting accessory
 must power the bus.</p>
 <h3 id="next-steps">Next steps</h3>
@@ -105,7 +105,7 @@
   (<code>&lt;adk-src&gt;/adk2012/board/library/ADK2/</code>), which includes an example implementation
   of an audio playback accessory using a USB connection.</li>
 </ul>
-<p><strong>Note:</strong> The AOA 2.0 protocol also supports the
+<p class="note"><strong>Note:</strong> The AOA 2.0 protocol also supports the
 <a href="{@docRoot}accessories/aoa2.html#hid-support">human interface device</a> (HID) protocol through a USB
 connection, enabling accessories such as audio docks to provide hardware play back controls such
 as pause, fast-forward or volume buttons.</p>
diff --git a/src/accessories/headset-spec.jd b/src/accessories/headset-spec.jd
index c9a749e..572bb12 100644
--- a/src/accessories/headset-spec.jd
+++ b/src/accessories/headset-spec.jd
@@ -1,8 +1,8 @@
-page.title=Wired audio headset specification
+page.title=Wired audio headset specification (v1.1)
 @jd:body
 
 <!--
-    Copyright 2014 The Android Open Source Project
+    Copyright 2015 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.
@@ -24,116 +24,68 @@
   </div>
 </div>
 
-<p><em>Version 1.1</em></p>
+<p>This section specifies requirements for headsets and mobile devices to
+function uniformly across the Android ecosystem.</p>
 
-<p>This document specifies the requirements for headsets and mobile devices to
-function uniformly across the Android ecosystem. It is separated into two
-sections beginning with the specifications for the headset
-accessory followed by the specifications for the mobile device.</p>
+<h2 id="headset_accessory_plug_specifications">Headset accessory (plug)
+specifications</h2>
 
-<h2 id=headset_accessory_plug_specifications>Headset Accessory (Plug) Specifications</h2>
+<p>The following requirements apply to headset accessories.</p>
 
-<p>The requirements in the following section apply to the headset accessory.</p>
+<h3 id="functions">Functions</h3>
 
-<h3 id=functions>Functions</h3>
+<table style="width:50%">
+ <tr>
+    <th>Function</th>
+    <th>Accessory Support</th>
+ </tr>
+ <tr>
+    <td>Stereo Audio Out</td>
+    <td>Required</td>
+ </tr>
+ <tr>
+    <td>Audio in (Mic)</td>
+    <td>Required</td>
+ </tr>
+ <tr>
+    <td>Ground</td>
+    <td>Required</td>
+ </tr>
+</table>
+
+<h3 id="control-function_mapping">Control-function mapping</h3>
 
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Accessory Support</strong></p>
-</th>
+    <th style="width:33%">Control Function</th>
+    <th style="width:33%">Accessory Support</th>
+    <th style="width:33%">Description</th>
  </tr>
  <tr>
-    <td>
-<p>Stereo Audio Out</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
+    <td>Function A</td>
+    <td>Required</td>
+    <td>Play/pause/hook (Short Press), Trigger Assist (Long Press), Next
+    (Double Press)</td>
  </tr>
  <tr>
-    <td>
-<p>Audio in (Mic)</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
+    <td>Function B</td>
+    <td>Optional</td>
+    <td>Vol+</td>
  </tr>
  <tr>
-    <td>
-<p>Ground</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
+    <td>Function C</td>
+    <td>Optional</td>
+    <td>Vol-</td>
+ </tr>
+ <tr>
+    <td>Function D</td>
+    <td>Optional</td>
+    <td>Reserved (Nexus devices use this to launch Google voice search)
 </td>
  </tr>
 </table>
 
-<h3 id=control-function_mapping>Control-Function Mapping</h3>
-
-<table>
- <tr>
-    <th>
-<p><strong>Control Function</strong></p>
-</th>
-    <th>
-<p><strong>Accessory Support</strong></p>
-</th>
-    <th>
-<p><strong>Description</strong></p>
-</th>
- </tr>
- <tr>
-    <td>
-<p>Function A</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Play/pause/hook (Short Press), Trigger Assist (Long Press), Next (double press)</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p>Function B</p>
-</td>
-    <td>
-<p>Optional</p>
-</td>
-    <td>
-<p>Vol+</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p>Function C</p>
-</td>
-    <td>
-<p>Optional</p>
-</td>
-    <td>
-<p>Vol-</p>
-</td>
- </tr>
- <tr>
-    <td>
-<p>Function D</p>
-</td>
-    <td>
-<p>Optional</p>
-</td>
-    <td>
-<p>Reserved (Nexus devices will use this reserved function to launch Google
-voice search)</p>
-</td>
- </tr>
-</table>
-
-<p><strong>Assign functions to buttons as follows</strong>:</p>
+<p>Assign functions to buttons as follows:</p>
 
 <ul>
   <li> All one-button headsets must implement Function A.
@@ -146,160 +98,93 @@
   </ul>
 </ul>
 
-<h3 id=mechanical>Mechanical</h3>
+<h3 id="mechanical">Mechanical</h3>
 
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Accessory Support</strong></p>
-</th>
-    <th>
-<p><strong>Notes</strong></p>
-</th>
+    <th style="width:33%">Function</th>
+    <th style="width:33%">Accessory Support</th>
+    <th style="width:33%">Notes</th>
  </tr>
  <tr>
-    <td>
-<p>4 conductor 3.5mm plug</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Ref: EIAJ-RC5325A standard</p>
-</td>
+    <td>4 conductor 3.5mm plug</td>
+    <td>Required</td>
+    <td>Ref: EIAJ-RC5325A standard</td>
  </tr>
  <tr>
-    <td>
-<p>CTIA pinout order (LRGM)</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Except in regions with legal requirements for OMTP pinout</p>
-</td>
+    <td>CTIA pinout order (LRGM)</td>
+    <td>Required</td>
+    <td>Except in regions with legal requirements for OMTP pinout</td>
  </tr>
  <tr>
-    <td>
-<p>OMTP pinout order  (LRMG)</p>
-</td>
-    <td>
-<p>Optional</p>
-</td>
+    <td>OMTP pinout order (LRMG)</td>
+    <td>Optional</td>
     <td></td>
  </tr>
  <tr>
-    <td>
-<p>Microphone</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Must not be obstructed when operating headset controls</p>
-</td>
+    <td>Microphone</td>
+    <td>Required</td>
+    <td>Must not be obstructed when operating headset controls</td>
  </tr>
 </table>
 
-<h3 id=electrical>Electrical</h3>
+<h3 id="electrical">Electrical</h3>
 
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Accessory Support</strong></p>
-</th>
-    <th>
-<p><strong>Description</strong></p>
-</th>
+    <th style="width:33%">Function</th>
+    <th style="width:33%">Accessory Support</th>
+    <th style="width:33%">Description</th>
  </tr>
  <tr>
-    <td>
-<p>Ear speaker impedance</p>
-</td>
-    <td>
-<p><strong>16 ohms or higher</strong></p>
-</td>
-    <td>
-<p>Recommend 32 - 300 ohms</p>
-</td>
+    <td>Ear speaker impedance</td>
+    <td>16 ohms or higher</td>
+    <td>Recommend 32 - 300 ohms</td>
  </tr>
  <tr>
-    <td>
-<p>Mic DC resistance</p>
+    <td>Mic DC resistance</td>
+    <td>1000 ohms or higher
 </td>
-    <td>
-<p><strong>1000 ohms or higher</strong></p>
-</td>
-    <td>
-<p>Mic characteristics must be compliant with section 5.4 “Audio Recording” of
-current Android Compatibility Definition Document (CDD)</p>
-</td>
+    <td>Mic characteristics must be compliant with section 5.4 “Audio
+    Recording” of the current
+    <a href="{@docRoot}compatibility/android-cdd.pdf">Android CDD</a></td>
  </tr>
  <tr>
-    <td>
-<p>Control Function Equivalent impedance*</p>
-
-<p>*Total impedance from positive mic terminal to GND when button is pressed with
-2.2 V mic bias applied through 2.2 kOhm resistor</p>
-</td>
-    <td>
-<p><strong>0 ohm</strong></p>
-</td>
-    <td>
-<p>[Function A]  Play/Pause/Hook</p>
-</td>
+    <td rowspan="4">Control Function Equivalent impedance*</td>
+    <td>0 ohm</td>
+    <td>[Function A] Play/Pause/Hook</td>
  </tr>
  <tr>
-    <td></td>
-    <td>
-<p><strong>240 ohm</strong> +/- 1% resistance</p>
-</td>
-    <td>
-<p>[Function B]</p>
-</td>
+    <td>240 ohm +/- 1% resistance</td>
+    <td>[Function B]</td>
  </tr>
  <tr>
-    <td></td>
-    <td>
-<p><strong>470 ohm</strong> +/- 1% resistance</p>
-</td>
-    <td>
-<p>[Function C] </p>
-</td>
+    <td>470 ohm +/- 1% resistance</td>
+    <td>[Function C]</td>
  </tr>
  <tr>
-    <td></td>
-    <td>
-<p><strong>135 ohm</strong> +/- 1% resistance</p>
-</td>
-    <td>
-<p>[Function D]</p>
-</td>
+    <td>135 ohm +/- 1% resistance</td>
+    <td>[Function D]</td>
  </tr>
 </table>
 
-<p>In the following diagrams, Button A is mapped to Function A, Button B to
+<p><em>*Total impedance from positive mic terminal to GND when button is
+pressed with 2.2 V mic bias applied through 2.2 kOhm resistor</em></p>
+
+<p>In the following diagrams, Button A maps to Function A, Button B to
 Function B, and so on.</p>
 
-<h3 id=reference_headset_test_circuit_1>Reference Headset Test Circuit 1</h3>
+<h3 id="reference_headsets">Reference headset test circuits</h3>
+
+<p>The following diagram for Reference Headset Test Circuit 1 shows the CTIA
+pinout for a 4-segment plug. For the OMTP pinout, switch the positions of the
+MIC and GND segments.</p>
 
 <img src="images/headset-circuit1.png" alt="Reference Headset Test Circuit 1" />
 <p class="img-caption"><strong>Figure 1.</strong> Reference headset test circuit 1</p>
 
-<p class="note"><strong>Note:</strong> The above diagram shows the CTIA pinout
-for a 4-segment plug. For the OMTP pinout, switch the positions of the MIC and
-GND segments.</p>
-
-<h3 id=reference_headset_test_circuit_2>Reference Headset Test Circuit 2</h3>
-
-<p>The second reference circuit shows how the actual resistor values (R1 - R4)
-are altered to meet this specification.</p>
+<p>The following diagram for Reference Headset Test Circuit 2 shows how the
+actual resistor values (R1 - R4) are altered to meet this specification.</p>
 
 <img src="images/headset-circuit2.png" alt="Reference Headset Test Circuit 2" />
 <p class="img-caption"><strong>Figure 2.</strong> Reference headset test circuit 2</p>
@@ -314,293 +199,161 @@
 equivalent impedance value of that button (provided), and Rmic is the
 microphone impedance value.</p>
 
-<p>The example above assumes a 5 kohm microphone impedance (Rmic). Therefore, to
-achieve an equivalent R4 impedance of 135 ohm (ReqD), the actual resistor value
-(R4) needs to be 139 ohms.</p>
+<p>The example above assumes a 5 kohm microphone impedance (Rmic); to achieve
+an equivalent R4 impedance of 135 ohm (ReqD), the actual resistor value (R4)
+must be 139 ohms.</p>
 
-
-<h2 id=mobile_device_jack_specifications>Mobile Device (Jack) Specifications</h2>
+<h2 id="mobile_device_jack_specifications">Mobile device (jack) specifications</h2>
 
 <p class="caution"><strong>Caution:</strong> To achieve compatibility with the
-headset specification above, devices that include a 4 conductor 3.5mm audio
-jack must meet the following specifications. Please see the <em>Analog audio
-ports</em> section of the <a
-href="{@docRoot}compatibility/android-cdd.pdf">Android Compatibility Definition
-Document (CDD)</a> for Android compatibility requirements.</p>
+headset specification, devices that include a 4 conductor 3.5mm audio jack
+must meet the following specifications. For Android compatibility requirements,
+refer to the <em>Analog audio ports</em> section of the <a
+href="{@docRoot}compatibility/android-cdd.pdf">Android CDD</a>.</p>
 
-<p><strong>Headset Jack Functions</strong></p>
+<h3 id="headset_jack_functions">Functions</h3>
+
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Device Support</strong></p>
-</th>
+    <th>Function</th>
+    <th>Device Support</th>
  </tr>
  <tr>
-    <td>
-<p>Stereo Audio Out</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
+    <td>Stereo Audio Out</td>
+    <td>Required</td>
  </tr>
  <tr>
-    <td>
-<p>Audio in (Mic)</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
+    <td>Audio in (Mic)</td>
+    <td>Required</td>
  </tr>
  <tr>
-    <td>
-<p>Ground</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
+    <td>Ground</td>
+    <td>Required</td>
  </tr>
 </table>
 
-<h3 id=software_mapping>Software mapping</h3>
+<h3 id="software_mapping">Software mapping</h3>
 
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Device Support</strong></p>
-</th>
-    <th>
-<p><strong>Description</strong></p>
-</th>
+    <th style="width:33%">Function</th>
+    <th style="width:33%">Device Support</th>
+    <th style="width:33%">Description</th>
  </tr>
  <tr>
-    <td>
-<p>Function A control event </p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>input event KEY_MEDIA</p>
-
-<p>Android key  KEYCODE_HEADSETHOOK</p>
-</td>
+    <td>Function A control event</td>
+    <td>Required</td>
+    <td>input event KEY_MEDIA
+<p>Android key KEYCODE_HEADSETHOOK</p></td>
  </tr>
  <tr>
-    <td>
-<p>Function D control event</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>input event KEY_VOICECOMMAND</p>
-
-<p>Android key KEYCODE_VOICE_ASSIST</p>
-</td>
+    <td>Function D control event</td>
+    <td>Required</td>
+    <td>input event KEY_VOICECOMMAND
+<p>Android key KEYCODE_VOICE_ASSIST</p></td>
  </tr>
  <tr>
-    <td>
-<p>Function B control event</p>
+    <td>Function B control event</td>
+    <td>Required
 </td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>input event KEY_VOLUMEUP</p>
-
-<p>Android key  VOLUME_UP</p>
-</td>
+    <td>input event KEY_VOLUMEUP
+<p>Android key  VOLUME_UP</p></td>
  </tr>
  <tr>
-    <td>
-<p>Function C control event</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>input event KEY_VOLUMEDOWN</p>
-
-<p>Android key  VOLUME_DOWN</p>
-</td>
+    <td>Function C control event</td>
+    <td>Required</td>
+    <td>input event KEY_VOLUMEDOWN
+<p>Android key VOLUME_DOWN</p></td>
  </tr>
  <tr>
-    <td>
-<p>Headset insertion detection</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>input event SW_JACK_PHYSICAL_INSERT 7</p>
-</td>
+    <td>Headset insertion detection</td>
+    <td>Required</td>
+    <td>input event SW_JACK_PHYSICAL_INSERT 7</td>
  </tr>
  <tr>
-    <td>
-<p>Headset type detection</p>
-</td>
-    <td>
-<p><strong>Mic</strong></p>
-</td>
-    <td>
-<p>input event SW_MICROPHONE_INSERT 4</p>
-</td>
+    <td rowspan="2">Headset type detection</td>
+    <td>Mic</td>
+    <td>input event SW_MICROPHONE_INSERT 4</td>
  </tr>
  <tr>
-    <td>
-<p>Headset type detection</p>
-</td>
-    <td>
-<p><strong>No Mic</strong></p>
-</td>
-    <td>
-<p>input event SW_HEADPHONE_INSERT 2</p>
-</td>
+    <td>No Mic</td>
+    <td>input event SW_HEADPHONE_INSERT 2</td>
  </tr>
  <tr>
-    <td>
-<p>Headset speaker impedance</p>
-</td>
-    <td>
-<p><strong>Required Headphone (low)</strong></p>
-</td>
-    <td>
-<p>Failure mode is to indicate headphones so that limitation would be on</p>
-</td>
+    <td rowspan="2">Headset speaker impedance</td>
+    <td>Required Headphone (low)</td>
+    <td>Failure mode is to indicate headphones so limitation would be on</td>
  </tr>
  <tr>
-    <td>
-<p>Headset speaker impedance</p>
-</td>
-    <td>
-<p><strong>Required Line In (high)</strong></p>
-</td>
-    <td>
-<p>input event SW_LINEOUT_INSERT 6</p>
-</td>
+    <td>Required Line In (high)</td>
+    <td>input event SW_LINEOUT_INSERT 6</td>
  </tr>
 </table>
 
-<h3 id=mechanical11>Mechanical</h3>
+<h3 id="mechanical11">Mechanical</h3>
 
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Device Support</strong></p>
-</th>
-    <th>
-<p><strong>Description</strong></p>
-</th>
+    <th style="width:33%">Function</th>
+    <th style="width:33%">Device Support</th>
+    <th style="width:33%">Description</th>
  </tr>
  <tr>
-    <td>
-<p>4 conductor 3.5mm jack</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
+    <td>4 conductor 3.5mm jack</td>
+    <td>Required</td>
     <td></td>
  </tr>
  <tr>
-    <td>
-<p>CTIA pinout order (LRGM)</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>3 Pin & Mono Plug Compatible</p>
-</td>
+    <td>CTIA pinout order (LRGM)</td>
+    <td>Required</td>
+    <td>3 Pin & Mono Plug Compatible</td>
  </tr>
  <tr>
-    <td>
-<p>OMTP pinout order  (LRMG)</p>
-</td>
-    <td>
-<p>Optional but <strong>Strongly Recommended</strong></p>
-</td>
+    <td>OMTP pinout order (LRMG)</td>
+    <td>Optional but strongly recommended</td>
     <td></td>
  </tr>
  <tr>
-    <td>
-<p>Headset detect sequence</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Plug insert notification must only be triggered after all contacts on plug are
-touching their relevant segments. This will prevent unreliable headset
-detection due to slow insertion. </p>
-</td>
+    <td>Headset detect sequence</td>
+    <td>Required</td>
+    <td>Plug insert notification must be triggered only after all contacts on
+    plug are touching their relevant segments (this prevents unreliable headset
+    detection due to slow insertion.</td>
  </tr>
 </table>
 
-<h3 id=electrical12>Electrical</h3>
+<h3 id="electrical12">Electrical</h3>
 
-<h4 id=general>General</h4>
+<h4 id="general">General</h4>
 
 <table>
  <tr>
-    <th>
-<p><strong>Function</strong></p>
-</th>
-    <th>
-<p><strong>Device Support</strong></p>
-</th>
-    <th>
-<p><strong>Notes</strong></p>
-</th>
+    <th style="width:33%">Function</th>
+    <th style="width:33%">Device Support</th>
+    <th style="width:33%">Notes</th>
  </tr>
  <tr>
-    <td>
-<p>Maximum output voltage drive</p>
-</td>
-    <td>
-<p>150mV </p>
-</td>
-    <td>
-<p>&gt;= 150mV on 32 ohm</p>
-
-<p>Test conditions: EN50332-2</p>
-</td>
+    <td>Maximum output voltage drive</td>
+    <td>150mV</td>
+    <td>&gt;= 150mV on 32 ohm
+<p>Test conditions: EN50332-2</p></td>
  </tr>
  <tr>
-    <td>
-<p>Mic bias resistance </p>
-</td>
-    <td>
-<p>Required</p>
-</td>
-    <td>
-<p>Flexible on detection method used and microphone bias resistor selection.
-Require that all button resistance value ranges specified below be detected and
-related to their respective function</p>
-</td>
+    <td>Mic bias resistance</td>
+    <td>Required</td>
+    <td>Flexible on detection method used and microphone bias resistor
+    selection. Require that all button resistance value ranges specified below
+    be detected and related to their respective function</td>
  </tr>
  <tr>
-    <td>
-<p>Mic bias voltage</p>
-</td>
-    <td>
-<p>1.8V - 2.9V</p>
-</td>
-    <td>
-<p>To guarantee compatibility to common microphone capsules.</p>
-</td>
+    <td>Mic bias voltage</td>
+    <td>1.8V - 2.9V</td>
+    <td>To guarantee compatibility to common microphone capsules.</td>
  </tr>
 </table>
 
-<h4 id=function_impedance_and_threshold_detection>Function Impedance and Threshold Detection</h4>
+<h4 id="function_impedance_and_threshold_detection">Function impedance and
+threshold detection</h4>
 
 <p>Devices must detect the following resistor ladder on the accessories. The
 accessories will be tested to the standardized circuit diagram in the diagram
@@ -609,89 +362,49 @@
 bias applied through 2.2 kOhm resistor. This is the same effective resistance
 as the button detection circuit with the microphone in parallel with the button
 resistor.</p>
+
 <table>
  <tr>
-    <th>
-<p><strong>Button Impedance Level</strong></p>
-</th>
-    <th>
-<p><strong>Device Support</strong></p>
-</th>
-    <th>
-<p><strong>Notes</strong></p>
-</th>
+    <th style="width:40%">Button Impedance Level</th>
+    <th style="width:20%">Device Support</th>
+    <th style="width:40%">Notes</th>
  </tr>
  <tr>
-    <td>
-<p><strong>70 ohm or less</strong></p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>[Function A]</p>
-</td>
+    <td>70 ohm or less</td>
+    <td>Required</td>
+    <td>[Function A]</td>
  </tr>
  <tr>
-    <td>
-<p><strong>110 - 180 ohm </strong></p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>[Function D]</p>
-</td>
+    <td>110 - 180 ohm</td>
+    <td>Required</td>
+    <td>[Function D]</td>
  </tr>
  <tr>
-    <td>
-<p><strong>210 - 290 ohm</strong></p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>[Function B]</p>
-</td>
+    <td>210 - 290 ohm</td>
+    <td>Required</td>
+    <td>[Function B]</td>
  </tr>
  <tr>
-    <td>
-<p><strong>360 - 680 ohm </strong></p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>[Function C]</p>
-</td>
+    <td>360 - 680 ohm</td>
+    <td>Required</td>
+    <td>[Function C]</td>
+ </tr>
+ </table>
+
+ <table>
+ <tr>
+    <th style="width:40%">Headset Speaker Impedance Level</th>
+    <th style="width:20%">Device Support</th>
+    <th style="width:40%">Notes</th>
  </tr>
  <tr>
-    <td>
-<p><strong>Headset speaker impedance level</strong></p>
-</td>
-    <td></td>
-    <td></td>
+    <td>Low Threshold Detection</td>
+    <td>Required</td>
+    <td>Headphone (low) &lt; 1 Kohm</td>
  </tr>
  <tr>
-    <td>
-<p>Low Threshold Detection</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Headphone (low) &lt; 1 Kohm</p>
-</td>
+    <td>High Threshold Detection</td>
+    <td>Required</td>
+    <td>Line In (high) &gt; 5 Kohm</td>
  </tr>
- <tr>
-    <td>
-<p>High Threshold Detection</p>
-</td>
-    <td>
-<p><strong>Required</strong></p>
-</td>
-    <td>
-<p>Line In (high) &gt; 5 Kohm</p>
-</td>
- </tr>
-</table>
+</table>
\ No newline at end of file
diff --git a/src/accessories/images/headset-circuit1.png b/src/accessories/images/headset-circuit1.png
index f3e622a..d6f7421 100644
--- a/src/accessories/images/headset-circuit1.png
+++ b/src/accessories/images/headset-circuit1.png
Binary files differ
diff --git a/src/accessories/images/headset-circuit2.png b/src/accessories/images/headset-circuit2.png
index ff6b541..6700c45 100644
--- a/src/accessories/images/headset-circuit2.png
+++ b/src/accessories/images/headset-circuit2.png
Binary files differ
diff --git a/src/compatibility/5.1/versions.jd b/src/compatibility/5.1/versions.jd
index 52a7f90..e27d574 100644
--- a/src/compatibility/5.1/versions.jd
+++ b/src/compatibility/5.1/versions.jd
@@ -11,8 +11,9 @@
 <p>Because subsequent releases of the Android software may revise this string,
 but not change any API behavior, such releases may not be accompanied by a new
 Compatibility Definition Document. This page lists the versions that are
-allowable by an Android 5.0-based system. The only permitted values for
+allowable by an Android 5.1-based system. The only permitted values for
 <code>android.os.Build.VERSION.RELEASE</code> for Android 5.1 are:</p>
 <ul>
 <li>5.1</li>
+<li>5.1.1</li>
 </ul>
diff --git a/src/compatibility/compatibility_toc.cs b/src/compatibility/compatibility_toc.cs
index 6d4b69e..c0115e9 100644
--- a/src/compatibility/compatibility_toc.cs
+++ b/src/compatibility/compatibility_toc.cs
@@ -24,9 +24,21 @@
     </div>
     <ul>
       <li><a href="<?cs var:toroot ?>compatibility/overview.html">Overview</a></li>
-      <li><a href="<?cs var:toroot ?>compatibility/cts-intro.html">Compatibility Test Suite</a></li>
-      <li><a href="<?cs var:toroot ?>compatibility/cts-development.html">CTS Development</a></li>
       <li><a href="<?cs var:toroot ?>compatibility/android-cdd.pdf">Compatibility Definition Document (CDD)</a></li>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>compatibility/cts/index.html">
+            <span class="en">Compatibility Test Suite</span>
+          </a>
+        </div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>compatibility/cts/setup.html">Set up CTS</a></li>
+          <li><a href="<?cs var:toroot ?>compatibility/cts/run.html">Run CTS</a></li>
+          <li><a href="<?cs var:toroot ?>compatibility/cts/verifier.html">Run CTS Verifier</a></li>
+          <li><a href="<?cs var:toroot ?>compatibility/cts/interpret.html">Interpret Results</a></li>
+          <li><a href="<?cs var:toroot ?>compatibility/cts/development.html">Develop CTS</a></li>
+        </ul>
+      </li>
       <li><a href="<?cs var:toroot ?>compatibility/downloads.html">Downloads</a></li>
       <li><a href="<?cs var:toroot ?>compatibility/contact-us.html">Contact Us</a></li>
     </ul>
diff --git a/src/compatibility/contact-us.jd b/src/compatibility/contact-us.jd
index 6c590f5..e77b115 100644
--- a/src/compatibility/contact-us.jd
+++ b/src/compatibility/contact-us.jd
@@ -2,24 +2,24 @@
 @jd:body
 
 <!--
-    Copyright 2015 The Android Open Source Project     
+    Copyright 2015 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    
+    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.   
+    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.
 -->
 <p>This page describes the
 contact methods for inquiries regarding the Android compatibility program,
 including the Compatibility Definition Document (CDD) and Compatibility Test
-Suite (CTS). See the <a href="{@docRoot}community/index.html">Community</a>
+Suite (CTS). See the <a href="{@docRoot}source/community.html">Community</a>
 page for communication channels regarding other topics.</p>
 
 <h2
@@ -38,7 +38,7 @@
 </ul>
 
 <p>To make best use of this list, please first read <a
-href="{@docRoot}source/community/index.html#getting-the-most-from-our-lists">Getting
+href="{@docRoot}source/community.html#getting-the-most-from-our-lists">Getting
 the Most from Our Lists</a> on the Community page. Users looking for help with
 Android devices should contact their carrier or manufacturer for help.</p>
 
@@ -49,4 +49,4 @@
 href="mailto:android-partnerships@google.com">android-partnerships@google.com</a>
 
 <p>While we read every message received, we cannot respond to each of them. We
-promise to contact you if we can help!</p>
+promise to contact you if we can help!</p>
\ No newline at end of file
diff --git a/src/compatibility/cts-development.jd b/src/compatibility/cts-development.jd
deleted file mode 100644
index 4631aca..0000000
--- a/src/compatibility/cts-development.jd
+++ /dev/null
@@ -1,109 +0,0 @@
-page.title=CTS Development
-@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.   
--->
-
-<h2 id="initializing-your-repo-client">Initializing Your Repo Client</h2>
-<p>Follow the <a href="{@docRoot}source/downloading.html">instructions</a>
-to get and build the Android source code but specify <code>-b android-4.3_r1</code>
-when issuing the <code>repo init</code> command. This assures that your CTS
-changes will be included in the next CTS release and beyond.</p>
-<h2 id="setting-up-eclipse">Setting Up Eclipse</h2>
-<p>Follow the <a href="{@docRoot}source/using-eclipse.html">instructions</a>
-to setup Eclipse but execute the following command to generate the
-<code>.classpath</code> file rather than copying the one from the development
-project:</p>
-<pre><code>cd /path/to/android/root
-./cts/development/ide/eclipse/genclasspath.sh &gt; .classpath
-chmod u+w .classpath
-</code></pre>
-<p>This <code>.classpath</code> file will contain both the Android framework
-packages and the CTS packages.</p>
-<h2 id="building-and-running-cts">Building and Running CTS</h2>
-<p>Execute the following commands to build CTS and start the interactive
-CTS console:</p>
-<pre><code>cd /path/to/android/root
-make cts
-cts-tradefed
-</code></pre>
-<p>At the cts-tf console, enter e.g.:</p>
-<pre><code>run cts --plan CTS
-</code></pre>
-<h2 id="writing-cts-tests">Writing CTS Tests</h2>
-<p>CTS tests use JUnit and the Android testing APIs. Review the 
-<a href="https://developer.android.com/guide/topics/testing/testing_android.html">Testing and Instrumentation</a>
-tutorial while perusing the existing tests under the
-<code>cts/tests/tests</code> directory. You will see that CTS tests mostly follow the same
-conventions used in other Android tests.</p>
-<p>Since CTS runs across many production devices, the tests must follow
-these rules:</p>
-<ul>
-<li>Must take into account varying screen sizes, orientations, and keyboard layouts.</li>
-<li>Only use public API methods. In other words, avoid all classes, methods, and fields that are annotated with the "hide" annotation.</li>
-<li>Avoid relying upon particular view layouts or depend on the dimensions of assets that may not be on some device.</li>
-<li>Don't rely upon root privileges.</li>
-</ul>
-<h3 id="test-naming-and-location">Test Naming and Location</h3>
-<p>Most CTS test cases target a specific class in the Android API. These tests
-have Java package names with a <code>cts</code> suffix and class
-names with the <code>Test</code> suffix. Each test case consists of
-multiple tests, where each test usually exercises a particular API method of
-the API class being tested. These tests are arranged in a directory structure
-where tests are grouped into different categories like "widgets" and "views."</p>
-<p>For example, the CTS test for <code>android.widget.TextView</code> is
-<code>android.widget.cts.TextViewTest</code> found under the
-<code>cts/tests/tests/widget/src/android/widget/cts</code> directory with its
-Java package name as <code>android.widget.cts</code> and its class name as
-<code>TextViewTest</code>. The <code>TextViewTest</code> class has a test called <code>testSetText</code>
-that exercises the "setText" method and a test named "testSetSingleLine" that
-calls the <code>setSingleLine</code> method. Each of those tests have <code>@TestTargetNew</code>
-annotations indicating what they cover.</p>
-<p>Some CTS tests do not directly correspond to an API class but are placed in
-the most related package possible. For instance, the CTS test,
-<code>android.net.cts.ListeningPortsTest</code>, is in the <code>android.net.cts</code>, because it
-is network related even though there is no <code>android.net.ListeningPorts</code> class.
-You can also create a new test package if necessary. For example, there is an
-"android.security" test package for tests related to security. Thus, use your
-best judgement when adding new tests and refer to other tests as examples.</p>
-<p>Finally, a lot of tests are annotated with @TestTargets and @TestTargetNew.
-These are no longer necessary so do not annotate new tests with these.</p>
-<h3 id="new-test-packages">New Test Packages</h3>
-<p>When adding new tests, there may not be an existing directory to place your
-test. In that case, refer to the example under <code>cts/tests/tests/example</code> and
-create a new directory. Furthermore, make sure to add your new package's
-module name from its <code>Android.mk</code> to <code>CTS_COVERAGE_TEST_CASE_LIST</code> in
-<code>cts/CtsTestCaseList.mk</code>. This Makefile is used by <code>build/core/tasks/cts.mk</code>
-to glue all the tests together to create the final CTS package.</p>
-<h3 id="test-stubs-and-utilities">Test Stubs and Utilities</h3>
-<p>Some tests use additional infrastructure like separate activities
-and various utilities to perform tests. These are located under the
-<code>cts/tests/src</code> directory. These stubs aren't separated into separate test
-APKs like the tests, so the <code>cts/tests/src</code> directory does not have additional
-top level directories like "widget" or "view." Follow the same principle of
-putting new classes into a package with a name that correlates to the purpose
-of your new class. For instance, a stub activity used for testing OpenGL like
-<code>GLSurfaceViewStubActivity</code> belongs in the <code>android.opengl.cts</code> package under
-the <code>cts/tests/src/android/opengl</code> directory.</p>
-<h2 id="other-tasks">Other Tasks</h2>
-<p>Besides adding new tests there are other ways to contribute to CTS:</p>
-<ul>
-<li>Fix or remove tests annotated with BrokenTest and KnownFailure.</li>
-</ul>
-<h2 id="submitting-your-changes">Submitting Your Changes</h2>
-<p>Follow the <a href="{@docRoot}source/submit-patches.html">Android Contributors' Workflow</a>
-to contribute changes to CTS. A reviewer
-will be assigned to your change, and your change should be reviewed shortly!</p>
diff --git a/src/compatibility/cts-intro.jd b/src/compatibility/cts-intro.jd
deleted file mode 100644
index d9dcc99..0000000
--- a/src/compatibility/cts-intro.jd
+++ /dev/null
@@ -1,166 +0,0 @@
-page.title=Compatibility Test Suite
-@jd:body
-
-<!--
-    Copyright 2014 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.   
--->
-
-<h2 id="how-does-the-cts-work">How does the CTS work?</h2>
-
-<div class="figure" style="width:383px">
-  <img src="{@docRoot}images/cts-0.png" alt="CTS flow" height="340px" id="figure1" />
-  <p class="img-caption">
-    <strong>Figure 1.</strong> How to use CTS
-  </p>
-</div>
-
-<p>The CTS is an automated testing harness that includes two major software components:</p>
-<ul>
-<li>
-<p>The CTS test harness runs on your desktop machine and manages test execution.</p>
-</li>
-<li>
-<p>Individual test cases are executed on attached mobile devices or on an
-emulator. The test cases are written in Java as JUnit tests and packaged as
-Android .apk files to run on the actual device target.</p>
-</li>
-</ul>
-<h2 id="workflow">Workflow</h2>
-<p>This section summarizes CTS setup. Please refer to the <a href="android-cts-manual.pdf">
-CTS User Manual</a> for detailed instructions.</p>
-<ol>
-<li>
-<p><a href="downloads.html">Download</a> the CTS and CTS media files.</p>
-</li>
-<li>
-<p>Attach at least one device (or emulator) to your machine.</p>
-</li>
-<li>
-<p>For CTS versions 2.1 R2 through 4.2 R4, set up your device (or emulator) to run the accessibility tests:</p>
-<ol>
-<li>
-<code>adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk</code>
-</li>
-<li>
-<p>On the device, enable Settings &gt; Accessibility &gt; Accessibility &gt; Delegating Accessibility Service</p>
-</li>
-</ol>
-</li>
-<li>
-<p>For CTS 2.3 R4 and beyond, set up your device to run the device administration tests:</p>
-<ol>
-<li>
-<code>adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk</code>
-</li>
-<li>
-<p>On the device, enable the two <code>android.deviceadmin.cts.CtsDeviceAdminReceiver*</code> device
-administrators under Settings &gt; Location &amp; security &gt; Select device administrators</p>
-<p><strong>Note</strong>: Make sure the <code>android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver</code>
-stays disabled in the same menu.</p>
-</li>
-</ol>
-</li>
-<li>
-<p>For CTS 2.3 R12 and beyond, the CTS media files must be copied to the device's external storage. Check section 4.2 of the latest CTS manual for further details on copying these files:</p>
-<ol>
-<li>
-<p>Unzip the CTS Media zip file.</p>
-</li>
-<li>
-<p>Run the following command. If no resolution is specified, the default maximum resolution of
-480x360 is assumed:</p>
-<code>copy_media.sh [720x480|1280x720|1920x1080|all] [-s serial]</code>
-</li>
-</ol>
-</li>
-<li>
-<p>Launch the CTS. The CTS test harness loads the test plan onto the attached devices. For each test in the test harness:</p>
-<ul>
-<li>
-<p>The test harness pushes an .apk file to each device, executes the test through instrumentation, and records test results.</p>
-</li>
-<li>
-<p>The test harness removes the .apk file from each device.</p>
-</li>
-</ul>
-</li>
-<li>
-<p>Once all the tests are executed, view the test results in your browser and
-use them to adjust your design. You can continue to run the CTS throughout your development process.</p>
-</li>
-</ol>
-<h2 id="types-of-test-cases">Types of test cases</h2>
-<p>The CTS includes the following types of test cases:</p>
-<ul>
-<li>
-<p><em>Unit tests</em> test atomic units of code within the Android platform; e.g. a single class, such as java.util.HashMap.</p>
-</li>
-<li>
-<p><em>Functional tests</em> test a combination of APIs together in a higher-level use-case.</p>
-</li>
-<li>
-<p><em>Reference application tests</em> instrument a complete sample application
-to exercise a full set of APIs and Android runtime services.</p>
-</li>
-</ul>
-<p>Future versions of the CTS will include the following types of test cases:</p>
-<ul>
-<li>
-<p><em>Robustness tests</em> test the durability of the system under stress.</p>
-</li>
-<li>
-<p><em>Performance tests</em> test the performance of the system against defined benchmarks, for example rendering frames per second.</p>
-</li>
-</ul>
-<h2 id="areas-covered">Areas Covered</h2>
-<p>The unit test cases cover the following areas to ensure compatibility:</p>
-<table>
-<thead>
-<tr>
-<th>Area</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>Signature tests</td>
-<td>For each Android release, there are XML files describing the signatures of all public APIs contained in the release. The CTS contains a utility to check those API signatures against the APIs available on the device. The results from signature checking are recorded in the test result XML file.</td>
-</tr>
-<tr>
-<td>Platform API Tests</td>
-<td>Test the platform (core libraries and Android Application Framework) APIs as documented in the SDK <a href="https://developer.android.com/reference/classes.html">Class Index</a> to ensure API correctness, including correct class, attribute and method signatures, correct method behavior, and negative tests to ensure expected behavior for incorrect parameter handling.</td>
-</tr>
-<tr>
-<td>Dalvik VM Tests</td>
-<td>The tests focus on testing the Dalvik Executable Format.</td>
-</tr>
-<tr>
-<td>Platform Data Model</td>
-<td>The CTS tests the core platform data model as exposed to application developers through content providers, as documented in the SDK <a href="https://developer.android.com/reference/android/provider/package-summary.html">android.provider</a> package: contacts, browser, settings, etc.</td>
-</tr>
-<tr>
-<td>Platform Intents</td>
-<td>The CTS tests the core platform intents, as documented in the SDK <a href="https://developer.android.com/guide/appendix/g-app-intents.html">Available Intents</a>.</td>
-</tr>
-<tr>
-<td>Platform Permissions</td>
-<td>The CTS tests the core platform permissions, as documented in the SDK <a href="https://developer.android.com/reference/android/Manifest.permission.html">Available Permissions</a>.</td>
-</tr>
-<tr>
-<td>Platform Resources</td>
-<td>The CTS tests for correct handling of the core platform resource types, as documented in the SDK <a href="https://developer.android.com/guide/topics/resources/available-resources.html">Available Resource Types</a>. This includes tests for: simple values, drawables, nine-patch, animations, layouts, styles and themes, and loading alternate resources.</td>
-</tr>
-</tbody>
-</table>
diff --git a/src/compatibility/cts/development.jd b/src/compatibility/cts/development.jd
new file mode 100644
index 0000000..662d94a
--- /dev/null
+++ b/src/compatibility/cts/development.jd
@@ -0,0 +1,189 @@
+page.title=CTS Development
+@jd:body
+
+<!--
+    Copyright 2015 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>
+
+<h2 id="initializing-your-repo-client">Initializing your Repo client</h2>
+<p>Follow the <a href="{@docRoot}source/downloading.html">instructions</a>
+to get and build the Android source code but specify a particular CTS branch
+name, for example<code>-b android-5.0_r2</code>, when issuing the <code>repo
+init</code> command. This assures your CTS changes will be included in the
+next CTS release and beyond.</p>
+
+<h2 id="setting-up-eclipse">Setting up Eclipse</h2>
+
+<p>Follow the <a href="{@docRoot}source/using-eclipse.html">instructions</a>
+to setup Eclipse but execute the following command to generate the
+<code>.classpath</code> file rather than copying the one from the development
+project:</p>
+<pre><code>cd /path/to/android/root
+./cts/development/ide/eclipse/genclasspath.sh &gt; .classpath
+chmod u+w .classpath
+</code></pre>
+
+<p>This <code>.classpath</code> file will contain both the Android framework
+packages and the CTS packages.</p>
+
+<h2 id="building-and-running-cts">Building and running CTS</h2>
+
+<p>Execute the following commands to build CTS and start the interactive
+CTS console:</p>
+<p class="note"><strong>Note:</strong> You may supply one of these other values 
+for <code>TARGET_PRODUCT</code> to build for different architectures:
+<code>aosp_x86_64</code> or <code>aosp_mips</code></p>
+<pre><code>cd <em>/path/to/android/root</em>
+make cts -j32 TARGET_PRODUCT=aosp_arm64
+cts-tradefed
+</code></pre>
+
+<p>At the cts-tf console, enter e.g.:</p>
+<pre><code>run cts --plan CTS
+</code></pre>
+
+<h2 id="writing-cts-tests">Writing CTS tests</h2>
+
+<p>CTS tests use JUnit and the Android testing APIs. Review the 
+<a href="https://developer.android.com/tools/testing/testing_android.html">Testing and Instrumentation</a>
+tutorial while perusing the existing tests under the
+<code>cts/tests</code> directory. You will see that CTS tests mostly follow the same
+conventions used in other Android tests.</p>
+<p>Since CTS runs across many production devices, the tests must follow
+these rules:</p>
+<ul>
+<li>Must take into account varying screen sizes, orientations, and keyboard layouts.</li>
+<li>Only use public API methods. In other words, avoid all classes, methods, and fields that are annotated with the "hide" annotation.</li>
+<li>Avoid relying upon particular view layouts or depend on the dimensions of assets that may not be on some device.</li>
+<li>Don't rely upon root privileges.</li>
+</ul>
+
+<h3 id="test-naming-and-location">Test naming and location</h3>
+
+<p>Most CTS test cases target a specific class in the Android API. These tests
+have Java package names with a <code>cts</code> suffix and class
+names with the <code>Test</code> suffix. Each test case consists of
+multiple tests, where each test usually exercises a particular API method of
+the API class being tested. These tests are arranged in a directory structure
+where tests are grouped into different categories like "widgets" and "views."</p>
+
+<p>For example, the CTS test for <code>android.widget.TextView</code> is
+<code>android.widget.cts.TextViewTest</code> found under the
+<code>cts/tests/tests/widget/src/android/widget/cts</code> directory with its
+Java package name as <code>android.widget.cts</code> and its class name as
+<code>TextViewTest</code>. The <code>TextViewTest</code> class has a test called <code>testSetText</code>
+that exercises the "setText" method and a test named "testSetSingleLine" that
+calls the <code>setSingleLine</code> method. Each of those tests have <code>@TestTargetNew</code>
+annotations indicating what they cover.</p>
+
+<p>Some CTS tests do not directly correspond to an API class but are placed in
+the most related package possible. For instance, the CTS test,
+<code>android.net.cts.ListeningPortsTest</code>, is in the <code>android.net.cts</code>, because it
+is network related even though there is no <code>android.net.ListeningPorts</code> class.
+You can also create a new test package if necessary. For example, there is an
+"android.security" test package for tests related to security. Thus, use your
+best judgement when adding new tests and refer to other tests as examples.</p>
+
+<p>Finally, a lot of tests are annotated with @TestTargets and @TestTargetNew.
+These are no longer necessary so do not annotate new tests with these.</p>
+<h3 id="new-test-packages">New sample packages</h3>
+<p>When adding new tests, there may not be an existing directory to place your
+test. In that case, refer to the example under <code>cts/tests/tests/example</code> and
+create a new directory. Furthermore, make sure to add your new package's
+module name from its <code>Android.mk</code> to <code>CTS_COVERAGE_TEST_CASE_LIST</code> in
+<code>cts/CtsTestCaseList.mk</code>. This Makefile is used by <code>build/core/tasks/cts.mk</code>
+to glue all the tests together to create the final CTS package.</p>
+
+<h2 id="Fix-remove-tests">Fix or remove tests</h2>
+<p>Besides adding new tests there are other ways to contribute to CTS: Fix or
+remove tests annotated with "BrokenTest" or "KnownFailure."</p>
+<h2 id="submitting-your-changes">Submitting your changes</h2>
+<p>Follow the <a href="{@docRoot}source/submit-patches.html">Submitting Patches workflow</a>
+to contribute changes to CTS. A reviewer
+will be assigned to your change, and your change should be reviewed shortly!</p>
+
+<h2 id="release-schedule">Release schedule and branch information</h2>
+
+<p>CTS releases follow this schedule.</p>
+
+<p class="note"><strong>Note</strong>: This schedule is tentative and may be
+updated from time to time as CTS for the given Android version matures.</p>
+
+<table>
+<tr>
+  <th>Version</th>
+  <th>Branch</th>
+  <th>Frequency</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+  <td>5.1</td>
+  <td>lollipop-mr1-cts-dev</td>
+  <td>Monthly</td>
+</tr>
+<tr>
+  <td>5.0</td>
+  <td>lollipop-cts-dev</td>
+  <td>Monthly</td>
+</tr>
+<tr>
+  <td>4.4</td>
+  <td>kitkat-cts-dev</td>
+  <td>Odd month (Jan, Mar, etc.)</td>
+</tr>
+<tr>
+  <td>4.3</td>
+  <td>jb-mr2-cts-dev</td>
+  <td>First month of each quarter</td>
+</tr>
+<tr>
+  <td>4.2</td>
+  <td>jb-mr1.1-cts-dev</td>
+  <td>First month of each quarter</td>
+</tr>
+</table>
+
+<h3 id="important-dates">Important Dates during month of the release</h3>
+
+<ul>
+  <li><strong>End of 1st Week</strong>: Code Freeze.  At this point,
+submissions on the current branch will no longer be accepted and will not be
+included in the next version of CTS.  Once we have chosen a candidate for
+release, the branch will again be open and accepting new submissions.
+
+  <li><strong>Second or third week</strong>: CTS is published in the Android
+Open Source Project (AOSP).
+</ul>
+
+<h3 id="auto-merge">Auto-merge flow</h3>
+
+<p>CTS development branches have been setup so that changes submitted to each
+branch will automatically merge as below:<br>
+jb-dev-> jb-mr1.1-cts-dev -> jb-mr2-cts-dev  -> kitkat-cts-dev ->
+lollipop-cts-dev -> lollipop-mr1-cts-dev -> &lt;private-development-branch for
+Android M&gt;</p>
+
+<p>If a changelist (CL) fails to merge correctly, the author of the CL will get
+an email with instructions on how to resolve the conflict. In most of the
+cases, the author of the CL can use the instructions to skip the auto-merge of
+the conflicting CL.</p>
diff --git a/src/compatibility/cts/images/camera-printed-target.png b/src/compatibility/cts/images/camera-printed-target.png
new file mode 100644
index 0000000..d405c50
--- /dev/null
+++ b/src/compatibility/cts/images/camera-printed-target.png
Binary files differ
diff --git a/src/compatibility/cts/images/cts-0.png b/src/compatibility/cts/images/cts-0.png
new file mode 100644
index 0000000..4264e4c
--- /dev/null
+++ b/src/compatibility/cts/images/cts-0.png
Binary files differ
diff --git a/src/compatibility/cts/images/cts-test-report.png b/src/compatibility/cts/images/cts-test-report.png
new file mode 100644
index 0000000..892daef
--- /dev/null
+++ b/src/compatibility/cts/images/cts-test-report.png
Binary files differ
diff --git a/src/compatibility/cts/images/cts-test-summary.png b/src/compatibility/cts/images/cts-test-summary.png
new file mode 100644
index 0000000..ff35afc
--- /dev/null
+++ b/src/compatibility/cts/images/cts-test-summary.png
Binary files differ
diff --git a/src/compatibility/cts/images/cts-verifier-icon.png b/src/compatibility/cts/images/cts-verifier-icon.png
new file mode 100644
index 0000000..52f07f3
--- /dev/null
+++ b/src/compatibility/cts/images/cts-verifier-icon.png
Binary files differ
diff --git a/src/compatibility/cts/images/cts-verifier-menu.png b/src/compatibility/cts/images/cts-verifier-menu.png
new file mode 100644
index 0000000..f0ab680
--- /dev/null
+++ b/src/compatibility/cts/images/cts-verifier-menu.png
Binary files differ
diff --git a/src/compatibility/cts/images/path-saved-report.png b/src/compatibility/cts/images/path-saved-report.png
new file mode 100644
index 0000000..5269c2a
--- /dev/null
+++ b/src/compatibility/cts/images/path-saved-report.png
Binary files differ
diff --git a/src/compatibility/cts/images/screen-lock-test.png b/src/compatibility/cts/images/screen-lock-test.png
new file mode 100644
index 0000000..3ffb96e
--- /dev/null
+++ b/src/compatibility/cts/images/screen-lock-test.png
Binary files differ
diff --git a/src/compatibility/cts/images/verifier-save-icon.png b/src/compatibility/cts/images/verifier-save-icon.png
new file mode 100644
index 0000000..f04478d
--- /dev/null
+++ b/src/compatibility/cts/images/verifier-save-icon.png
Binary files differ
diff --git a/src/compatibility/cts/images/video-verifier.png b/src/compatibility/cts/images/video-verifier.png
new file mode 100644
index 0000000..72f62fe
--- /dev/null
+++ b/src/compatibility/cts/images/video-verifier.png
Binary files differ
diff --git a/src/compatibility/cts/index.jd b/src/compatibility/cts/index.jd
new file mode 100644
index 0000000..7b154e5
--- /dev/null
+++ b/src/compatibility/cts/index.jd
@@ -0,0 +1,124 @@
+page.title=Compatibility Test Suite
+@jd:body
+
+<!--
+    Copyright 2015 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>
+
+<h2 id="how-does-the-cts-work">How does the CTS work?</h2>
+
+<p>The CTS is an automated testing harness that includes two major software components:</p>
+<ul>
+<li>
+<p>The CTS tradefed test harness runs on your desktop machine and manages test execution.</p>
+</li>
+<li>
+<p>Individual test cases are executed on the Device Under Test (DUT). The test
+cases are written in Java as JUnit tests and packaged as
+Android .apk files to run on the actual device target.</p>
+</li>
+</ul>
+
+<p>The CTS Verifier is a tool for manual testing and includes the following software components:</p>
+<ul>
+<li>
+<p>The CTS verifier app that is executed on the DUT and collects the results.<p>
+</li>
+<li>
+<p>The executable(s) or script(s) that are executed on the desktop machine to
+provide data or additional control for some test cases in the CTS Verifier
+app.</p>
+</li>
+</ul>
+
+<h2 id="workflow">Workflow</h2>
+
+<div class="figure" style="width:383px">
+  <img src="images/cts-0.png" alt="CTS flow" height="340px" id="figure1" />
+  <p class="img-caption">
+    <strong>Figure 1.</strong> How to use CTS
+  </p>
+</div>
+
+<p>This diagram summarizes CTS workflow. Please refer to the subpages of this
+section starting with <a href="setup.html">Setup</a> for detailed
+instructions.</p>
+
+<h2 id="types-of-test-cases">Types of test cases</h2>
+<p>The CTS includes the following types of test cases:</p>
+<ul>
+<li>
+<p><em>Unit tests</em> test atomic units of code within the Android platform; e.g. a single class, such as java.util.HashMap.</p>
+</li>
+<li>
+<p><em>Functional tests</em> test a combination of APIs together in a higher-level use-case.</p>
+</li>
+</ul>
+<p>Future versions of the CTS will include the following types of test cases:</p>
+<ul>
+<li>
+<p><em>Robustness tests</em> test the durability of the system under stress.</p>
+</li>
+<li>
+<p><em>Performance tests</em> test the performance of the system against defined benchmarks, for example rendering frames per second.</p>
+</li>
+</ul>
+<h2 id="areas-covered">Areas covered</h2>
+<p>The unit test cases cover the following areas to ensure compatibility:</p>
+<table>
+<thead>
+<tr>
+<th>Area</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Signature tests</td>
+<td>For each Android release, there are XML files describing the signatures of all public APIs contained in the release. The CTS contains a utility to check those API signatures against the APIs available on the device. The results from signature checking are recorded in the test result XML file.</td>
+</tr>
+<tr>
+<td>Platform API Tests</td>
+<td>Test the platform (core libraries and Android Application Framework) APIs as documented in the SDK <a href="https://developer.android.com/reference/classes.html">Class Index</a> to ensure API correctness, including correct class, attribute and method signatures, correct method behavior, and negative tests to ensure expected behavior for incorrect parameter handling.</td>
+</tr>
+<tr>
+<td>Dalvik Tests</td>
+<td>The tests focus on testing the Dalvik Executable Format.</td>
+</tr>
+<tr>
+<td>Platform Data Model</td>
+<td>The CTS tests the core platform data model as exposed to application developers through content providers, as documented in the SDK <a href="https://developer.android.com/reference/android/provider/package-summary.html">android.provider</a> package: contacts, browser, settings, etc.</td>
+</tr>
+<tr>
+<td>Platform Intents</td>
+<td>The CTS tests the core platform intents, as documented in the SDK <a href="https://developer.android.com/guide/appendix/g-app-intents.html">Available Intents</a>.</td>
+</tr>
+<tr>
+<td>Platform Permissions</td>
+<td>The CTS tests the core platform permissions, as documented in the SDK <a href="https://developer.android.com/reference/android/Manifest.permission.html">Available Permissions</a>.</td>
+</tr>
+<tr>
+<td>Platform Resources</td>
+<td>The CTS tests for correct handling of the core platform resource types, as documented in the SDK <a href="https://developer.android.com/guide/topics/resources/available-resources.html">Available Resource Types</a>. This includes tests for: simple values, drawables, nine-patch, animations, layouts, styles and themes, and loading alternate resources.</td>
+</tr>
+</tbody>
+</table>
diff --git a/src/compatibility/cts/interpret.jd b/src/compatibility/cts/interpret.jd
new file mode 100644
index 0000000..c8468d1
--- /dev/null
+++ b/src/compatibility/cts/interpret.jd
@@ -0,0 +1,65 @@
+page.title=Interpreting CTS results
+@jd:body
+
+<!--
+    Copyright 2015 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.
+-->
+
+<p>The CTS test results are placed in the file:</p>
+<pre>
+$CTS_ROOT/android-cts/repository/results/&lt;start_time>.zip
+</pre>
+
+<p>If you have built the CTS yourself, <em>$CTS_ROOT</em> will resemble the
+path <em>out/host/linux-x86/cts</em> but differ by platform. This reflects the
+path where you have uncompressed the prebuilt official CTS <a
+href="{@docRoot}compatibility/downloads.html">downloaded</a> from this site.</p>
+
+<p>Inside the zip, the testResult.xml file contains the actual results—open
+this file in any web browser (HTML5 compatible browser recommended) to view the
+test results. It will resemble the following screenshots.</p>
+
+<img src="images/cts-test-summary.png" alt="CTS test summary" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> CTS test summary
+</p>
+
+<p>The Device Information section provides details about the device, firmware
+(make, model, firmware build, platform), and device hardware (screen
+resolution, keypad, screen type).  To access device information, click the link
+above Test Summary.</p>
+
+<p>The <em>Test Summary</em> section provides executed test plan details, like
+the CTS plan name and execution start and end times. It also presents an
+aggregate summary of the number of tests that passed, failed, timed out, or
+could not be executed.</p>
+<p>The next section also provides a summary of tests passed per package.</p>
+
+<img src="images/cts-test-report.png" alt="CTS detailed test report" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> CTS test report
+</p>
+
+<p>This is followed by details of the the actual tests that were executed. The
+report lists the test package, test suite, test case, and the executed tests.
+It shows the result of the test execution—pass, fail, timed out, or not
+executed. In the event of a test failure details are provided to help diagnose
+the cause.</p>
+
+<p>Further, the stack trace of the failure is available in the XML file but is
+not included in the report to ensure brevity—viewing the XML file with a text
+editor should provide details of the test failure (search for the
+<em>&lt;Test&gt;</em> tag corresponding to the failed test and look within it
+for the <em>&lt;StackTrace&gt;</em> tag).</p>
diff --git a/src/compatibility/cts/run.jd b/src/compatibility/cts/run.jd
new file mode 100644
index 0000000..ba44a3e
--- /dev/null
+++ b/src/compatibility/cts/run.jd
@@ -0,0 +1,179 @@
+page.title=Running CTS tests
+@jd:body
+
+<!--
+    Copyright 2015 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>
+
+<h2 id=cts_tradefed>Using the CTS tradefed</h2>
+<p>See the <a
+href="{@docRoot}devices/tech/test_infra/tradefed/index.html">Trade Federation
+Overview</a> for an explanation of the Trade Federation (tradefed or TF for
+short) continuous test framework.</p>
+
+<p>To run a test plan:</p>
+<ol>
+  <li>Connect at least one device.
+  <li>Press the <strong>home</strong> button to set the device to the home screen at the start of CTS.
+  <li>While a device is running tests, it must not be used for any other tasks
+    and must be kept in a stationary position (to avoid triggering sensor activity)
+    with the cameras pointing at an object that could be focused.
+  <li>Do not press any keys on the device while the CTS is running. Pressing keys
+    or touching the screen of a test device will interfere with the running tests
+    and may lead to test failures.
+  <li>Launch the CTS console by running the <em>cts-tradefed</em> script from
+    the folder where the CTS package has been unzipped, e.g.
+    <code>$ ./android-cts/tools/cts-tradefed</code>
+  <li>You may start the default test plan (containing all of the test packages) by
+    appending: <code>run cts --plan CTS</code> This will kick off all the CTS tests required for compatibility.
+    Enter <code>list plans</code> to see a list of test plans in the repository.
+    Enter <code>list packages</code> to see a list of test packages in the repository.
+    See the CTS command
+    reference or type help for a complete list of supported commands.
+  <li>Alternately, you may run the CTS plan of your choosing from the command line
+    using: <code>cts-tradefed run cts --plan
+      <plan_name>
+      </code>
+  <li>View test progress and results reported on the console.
+  <li>If your device is Android 5.0 or later and declares support for an ARM and a
+    x86 ABI, you should run both the ARM and x86 CTS packages.
+</ol>
+<h2 id=selecting_cts_plans>Selecting CTS plans</h2>
+<p>The following test plans are available:</p>
+<ul>
+  <li><em>CTS</em>—all tests required for compatibility. </li>
+  <li><em>Signature</em>—the signature verification of all public APIs </li>
+  <li><em>Android</em>—tests for the Android APIs </li>
+  <li><em>Java</em>—tests for the Java core library </li>
+  <li><em>VM</em>—tests for ART or Dalvik </li>
+  <li><em>Performance</em>—performance tests for your implementation </li>
+</ul>
+<p>These can be executed with the <code>run cts</code> command.</p>
+<h2 id=cts_reference>CTS Console command reference</h2>
+<table>
+  <tbody>
+    <tr>
+      <th>Host</th>
+      <th> </th>
+    </tr>
+    <tr>
+      <td><code>help</code></td>
+      <td>Display a summary of the most commonly used commands</td>
+    </tr>
+    <tr>
+      <td><code>help all</code></td>
+      <td>Display the complete list of available commands</td>
+    </tr>
+    <tr>
+      <td><code>exit</code></td>
+      <td>Gracefully exit the CTS console. Console will close when all currently running tests are finished</td>
+    </tr>
+    <tr>
+      <th>Run</th>
+      <th> </th>
+    </tr>
+    <tr>
+      <td><code>run cts</code></td>
+      <td>Run the specified tests and displays progress information. One of --plan, --package, --class or --continue-session-id needs to be specified
+        <p>The CTS console can accept other commands while tests are in progress </p>
+        <p>If no devices are connected, the CTS desktop machine (or host) will wait for a device to be connected before starting tests </p>
+        <p>If more than one device is connected, the CTS host will choose a device automatically</p></td>
+    </tr>
+    <tr>
+      <td><code>--plan &lt;test_plan_name&gt;</code></td>
+      <td>Run the specified test plan</td>
+    </tr>
+    <tr>
+      <td><code>-- package/-p &lt;test_package_name&gt;  [--package/-p &lt;test_package2&gt;...]</code></td>
+      <td>Run the specified test packages</td>
+    </tr>
+    <tr>
+      <td><code>--class/-c &lt;class_name&gt; [--method/-m &lt;test_method_name&gt;</code></td>
+      <td>Run the specified test class and/or method</td>
+    </tr>
+    <tr>
+      <td><code>--continue-session-id</code></td>
+      <td>Run all not executed tests from previous CTS session; the sessions testResult.xml will be updated with the new results</td>
+    </tr>
+    <tr>
+      <td><code>--shards &lt;number_of_shards&gt;</code></td>
+      <td>Shard a CTS run into given number of independent chunks, to run on multiple devices in parallel</td>
+    </tr>
+    <tr>
+      <td><code>--serial/-s &lt;deviceID&gt;</code></td>
+      <td>Run CTS on the specific device</td>
+    </tr>
+    <tr>
+      <td><code>-t &lt;class_name&gt;#&lt;test_method_name&gt;</code></td>
+      <td>Run a specific test method</td>
+    </tr>
+    <tr>
+      <td><code>--abi 32|64</code></td>
+      <td>On 64-bit devices, run the test against only the 32-bit or 64-bit ABI</td>
+    </tr>
+    <tr>
+      <th>List</th>
+      <th> </th>
+    </tr>
+    <tr>
+      <td><code>list packages</code></td>
+      <td>List all available test packages in the repository</td>
+    </tr>
+    <tr>
+      <td><code>list plans</code></td>
+      <td>List all available test plans in the repository</td>
+    </tr>
+    <tr>
+      <td><code>list invocations</code></td>
+      <td>List 'run' commands currently being executed on devices</td>
+    </tr>
+    <tr>
+      <td><code>list commands</code></td>
+      <td>List all 'run' commands currently in the queue waiting to be assigned to devices</td>
+    </tr>
+    <tr>
+      <td><code>list results</code></td>
+      <td>List CTS results currently stored in repository</td>
+    </tr>
+    <tr>
+      <td><code>list devices</code></td>
+      <td>List currently connected devices and their state
+        <p> </p>
+        <p>'Available' devices are functioning, idle devices, available for running tests</p>
+        <p> </p>
+        <p>'Unavailable' devices are devices visible via adb, but are not responding to adb commands and won't be allocated for tests</p>
+        <p> </p>
+        <p>'Allocated' devices are devices currently running tests</td>
+    </tr>
+    <tr>
+      <th>Add</th>
+      <th> </th>
+    </tr>
+    <tr>
+      <td><code>add derivedplan --plan &lt;plan_name&gt;<br>
+        --result/-r<br>
+        [pass | fail | timeout | notExecuted]<br>
+        [--session/-s &lt;session_id&gt;]</code></td>
+      <td>Create a plan derived from given result session; use this option to rerun reports and validate test issues</td>
+    </tr>
+  </tbody>
+</table>
diff --git a/src/compatibility/cts/setup.jd b/src/compatibility/cts/setup.jd
new file mode 100644
index 0000000..dc93278
--- /dev/null
+++ b/src/compatibility/cts/setup.jd
@@ -0,0 +1,177 @@
+page.title=Setting up CTS
+@jd:body
+
+<!--
+    Copyright 2015 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>
+
+<h2 id=desktop_setup>Desktop machine setup</h2>
+<h3 id=adb>Android Debug Bridge (ADB)</h3>
+<p>Before running the CTS, make sure you have a recent version of Android Debug
+Bridge (adb) installed and the <code>adb</code> location added to the system
+path of your machine.</p>
+
+<p>To install ADB, download the <a
+href="http://developer.android.com/sdk/index.html#Other">Android SDK Tools</a>
+package for your operating system, open it, and follow the instructions in the
+included README file. For troubleshooting information, see <a
+href="http://developer.android.com/sdk/installing/index.html?pkg=tools">Installing
+the Stand-alone SDK Tools</a>.</p>
+
+<p>Ensure <code>adb</code> is in your system path. The following command
+assumes you've opened the package archive in your home directory:</p>
+<hr>
+<pre>
+export PATH=$PATH:$HOME/android-sdk-linux/platform-tools
+</pre>
+
+<p class="note"><strong>Note:</strong> Please ensure your starting path and
+directory name are correct.</p>
+
+<h3 id=JDK>Java Development Kit (JDK)</h3>
+<p>You need to install the proper version of the <a
+href="{@docRoot}source/initializing.html#installing-the-jdk">Java Development Kit (JDK)</a>:</p>
+
+<ul>
+  <li>CTS 5.0 and later: Java 7
+  <li>CTS 4.4 and earlier: Java 6
+</ul>
+
+<h3 id=CTS_files>CTS files</h3>
+
+<p><a href="{@docRoot}compatibility/downloads.html">Download</a> and open the CTS
+packages matching your devices' Android version and all the Application Binary
+Interfaces (ABIs) your devices support.</p>
+
+<p>Download and open the latest version of the <a
+href="{@docRoot}compatibility/downloads.html#cts-media-files">CTS Media
+Files</a>.</p>
+
+<h3 id=system_detect>Device detection</h3>
+<p>Follow the step to <a
+href="http://developer.android.com/tools/device.html#setting-up">set up your
+system to detect your device</a>, such as creating a <code>udev</code> rules
+file for Ubuntu Linux.</p>
+
+<h2 id=device_setup>Android device setup</h2>
+
+<h3 id=user_builds>User builds</h3>
+<p>To prevent test timeouts and other failures, your device should be running a
+<strong>user build (Android 4.0 and later)</strong> from <a
+href="{@docRoot}source/build-numbers.html">Codenames, Tags, and Build
+Numbers</a> of source.android.com.<br>
+<p class="note"><strong>Note:</strong> CTS should be executed on consumer
+(user build) devices only.</p>
+</ol>
+
+<h3 id=storage_requirements>Storage requirements</h3>
+<p>The CTS media stress tests require video clips to be on external storage
+(<code>/sdcard</code>). Most of the clips are from <a
+href="https://peach.blender.org/">Big Buck Bunny</a> which is copyrighted by
+the Blender Foundation under the <a
+href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 license.</a></p>
+<p>The required space depends on the maximum video playback resolution supported
+  by the device (See section 5 in the compatibility definition document for the
+  platform version of the required resolutions.) Note that the video playback
+  capabilities of the device under test will be checked via the <code>android.media.CamcorderProfile</code> APIs for earlier versions of Android and the <code>android.media.MediaCodecInfo.CodecCapabilities</code> APIs from Android 5.0.</p>
+<p>Here are the storage requirements by maximum video playback resolution:</p>
+<ul>
+  <li>480x360: 98MB
+  <li>720x480: 193MB
+  <li>1280x720: 606MB
+  <li>1920x1080: 1863MB
+</ul>
+
+<h3 id=screen_storage>Screen and storage</h3>
+<ol>
+<li>Any device that does not have an embedded screen needs to be connected to a screen.</li>
+<li>If the device has a memory card slot, plug in an empty SD card. <em>Use an
+SD card that supports Ultra High Speed (UHS) Bus with SDHC or SDXC capacity or
+one with at least speed class 10 or higher to ensure it can pass the CTS.</em>
+<p class="warning"><strong>Warning:</strong> CTS may modify/erase data on the SD card plugged into the device.</p>
+</li>
+<li>If the device has SIM card slots, plug in an activated SIM card to each slot.</li>
+</li>
+</ol>
+
+<h2 id=config_device>Android device configuration</h2>
+<ol>
+  <li>Factory data reset the device: <strong>Settings > Backup &amp; reset > Factory data reset</strong>
+    <p class="warning"><strong>Warning:</strong> This will erase all user data from the device.</em></p>
+  <li>Set your device’s language to English (<strong>United States</strong>) from: <strong>Settings > Language
+    & input > Language</strong>
+  <li>Turn on the location setting if there is a GPS or Wi-Fi / Cellular network
+    feature on the device: <strong>Settings &gt; Location</strong>
+  <li>Connect to a Wi-Fi network  that supports IPv6 and has an
+    internet connection: <strong>Settings > Wi-Fi</strong>
+    <p class="note"><strong>Note:</strong> If you don’t have access to a native IPv6 network, an IPv6 carrier network,
+      or a VPN to pass some tests depending on IPv6, you may instead use a Wi-Fi
+      access point and an IPv6 tunnel. See Wikipedia <a href="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">list of IPv6 tunnel brokers</a>.</p>
+  <li>Make sure no lock pattern or password is set on the device: <strong>Settings > Security > Screen
+    lock = 'None'</strong>
+  <li>Enable <strong>USB debugging</strong> on your device: <strong>Settings &gt; Developer options &gt; USB debugging</strong>.
+       <p class="note"><strong>Note:</strong> On Android 4.2 and later, <strong>Developer
+        options</strong> is hidden by default. To make them available, go
+        to <strong>Settings &gt; About phone</strong> and tap <strong>Build number</strong>
+        seven times. Return to the previous screen to find <strong>Developer
+        options</strong>. See <a
+        href="http://developer.android.com/tools/device.html#developer-device-options">Enabling
+        On-device Developer Options</a> for additional details.</p>
+  <li>Select: <strong>Settings > Developer options > Stay Awake</strong>
+  <li>Select: <strong>Settings > Developer options > Allow mock locations</strong>
+  <li>Launch the browser and dismiss any startup/setup screen.
+  <li>Connect the desktop machine that will be used to test the device with a USB cable
+    <p class="note"><strong>Note:</strong> When you connect a device running Android 4.2.2 or later
+    to your computer, the system shows a dialog asking whether to accept an RSA key that allows
+    debugging through this computer. Select <em>Allow USB debugging</em>.</p>
+  <li> Install and configure helper apps on the device.
+<p class="note"><strong>Note:</strong> For CTS versions 2.1 R2 through 4.2 R4</em>, set up your device (or emulator)
+to run the accessibility tests with:<br>
+<code>adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk</code><br>
+On the device, enable: <strong>Settings > Accessibility > Accessibility >
+Delegating Accessibility Service</strong></p>
+<p class="note"><strong>Note:</strong> For CTS 2.3 R4 and beyond on devices that declare the
+<code>android.software.device_admin feature</code>, set up your device to run
+the device administration tests with:<br>
+<code>adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk</code><br>
+On the device, enable only the two
+<code>android.deviceadmin.cts.CtsDeviceAdminReceiver*</code> device
+administrators under: <strong>Settings > Security > Select device
+administrators</strong>. Make sure the
+<code>android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver</code> and any
+other preloaded device administrators stay disabled in the same menu.</p>
+<li>Copy the CTS media files to the device as follows:
+<p class="note"><strong>Note:</strong> For CTS 2.3 R12 and beyond, if the
+device supports video codecs, the CTS media files must be copied to the
+device.</p>
+<ul>
+  <li>Navigate (cd) to the path the media files are downloaded and unzipped to.
+  <li>Change the file permissions: <code>chmod u+x copy_media.sh</code>
+  <li>Run <code>copy_media.sh</code>:
+    <ul>
+      <li>To copy clips up to a resolution of 720x480, run: <code>./copy_media.sh 720x480</code>
+      <li>If you are not sure about the maximum resolution, try <code>./copy_media.sh all</code> so that all files are copied.
+      <li>If there are multiple devices under adb, add the -s (serial) option to the end.
+        For example, to copy up to 720x480 to the device with serial 1234567, run: <code>./copy_media.sh 720x480 -s 1234567</code>
+    </ul>
+</ul>
+</ol>
diff --git a/src/compatibility/cts/verifier.jd b/src/compatibility/cts/verifier.jd
new file mode 100644
index 0000000..25e0a54
--- /dev/null
+++ b/src/compatibility/cts/verifier.jd
@@ -0,0 +1,203 @@
+page.title=Using CTS Verifier
+@jd:body
+
+<!--
+    Copyright 2015 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 Android Compatibility Test Suite Verifier (CTS Verifier) is a supplement to
+  the Compatibility Test Suite (CTS). While CTS checks those APIs and functions
+  that can be automated, CTS Verifier provides tests for those APIs and functions
+  that cannot be tested on a stationary device without manual input, like audio
+  quality, touchscreen, accelerometer, camera, etc.</p>
+<h2 id=test_preparation>Test preparation</h2>
+<p>The device must have verified Android API compatibility by successfully passing
+  the Compatibility Test Suite.</p>
+<h3 id=hardware_requirements>Hardware requirements</h3>
+<ul>
+  <li> A Linux computer with USB 2.0 compatible port
+  <li> A second Android device with a known compatible Bluetooth, Wi-Fi direct, and
+    NFC Host Card Emulation (HCE) implementation
+</ul>
+<h3 id=setup>Setup</h3>
+<ul>
+  <li>Install the <a href="http://developer.android.com/sdk/index.html">Android
+SDK</a> on the Linux computer <li>Download the appropriate <a
+href="{@docRoot}compatibility/downloads.html">CTS Verifier.apk</a> for the
+version of Android under test.
+  <li>Install CTS Verifier.apk to the <em>Device Under Test</em> (DUT). <br>
+    <code>adb install -r CtsVerifier.apk</code>
+  <li>Ensure that the device has its system data and time set correctly.
+</ul>
+<h2 id=cts_test_procedure>CTS Verifier test procedure</h2>
+<ol>
+  <li>After the CTS Verifier.apk has been installed, launch the CTS Verifier
+    application:
+
+<img src="images/cts-verifier-icon.png" alt="CTS Verifier icon in launcher" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> CTS Verifier icon
+</p>
+
+  <li>Once opened, the CTS Verifier displays a list of all test sets available for
+    manual verification:
+
+<img src="images/cts-verifier-menu.png" alt="CTS Verifier menu of tests" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> CTS Verifier menu of tests
+</p>
+
+  <li>Each test contains a set of common elements (in some tests, Pass/Fail is
+    determined automatically):
+    <ul>
+      <li><em>Info</em>—a set of instructions to run the test. This will appear as a popup the first
+        time each test is opened or whenever the <strong>Info</strong> button (？) is pressed.
+      <li><em>Pass</em>—If the DUT meets the test requirements per the instructions from Info, press
+        the <strong>Pass</strong> button (✓).
+      <li><em>Fail</em>—If the DUT does not meet the test requirements per the instructions from Info,
+        press the <strong>Fail</strong> button (！).
+    </ul>
+
+<img src="images/video-verifier.png" alt="Streaming video quality verifier" id="figure3" />
+<p class="img-caption">
+  <strong>Figure 3.</strong> Video quality verifier
+</p>
+
+</ol>
+
+<h2 id=specific_test_requirements>Specific test requirements</h2>
+<h3 id=usb_accessory>USB Accessory</h3>
+<p>In order to run the USB Accessory test, you need a Linux computer to run the
+  USB desktop machine (host) program.</p>
+<ol>
+  <li>Connect the DUT to a computer.
+  <li>Execute the cts-usb-accessory program on the computer found in the CTS Verifier
+    package.
+  <li>A popup message will appear on the DUT. Select <strong>OK</strong> and go into the USB Accessory Test in the CTS Verifier application.
+<br>
+<img src="images/screen-lock-test.png" alt="CTS Verifier screen lock test" id="figure4" />
+<p class="img-caption">
+  <strong>Figure 4.</strong> Screen lock test
+</p>
+
+  <li>Output similar to below will appear on the computer’s console. 
+</ol>
+<pre>
+out/host/linux-x86/cts-verifier/android-cts-verifier$ <strong>./cts-usb-accessory</strong>
+CTS USB Accessory Tester
+Found possible Android device (413c:2106) - attempting to switch to accessory
+mode...
+Failed to read protocol version
+Found Android device in accessory mode (18d1:2d01)...
+[RECV] Message from Android device #0
+[SENT] Message from Android accessory #0
+[RECV] Message from Android device #1
+[SENT] Message from Android accessory #1
+[RECV] Message from Android device #2
+[SENT] Message from Android accessory #2
+[RECV] Message from Android device #3
+[SENT] Message from Android accessory #3
+[RECV] Message from Android device #4
+[SENT] Message from Android accessory #4
+[RECV] Message from Android device #5
+[SENT] Message from Android accessory #5
+[RECV] Message from Android device #6
+[SENT] Message from Android accessory #6
+[RECV] Message from Android device #7
+[SENT] Message from Android accessory #7
+[RECV] Message from Android device #8
+[SENT] Message from Android accessory #8
+[RECV] Message from Android device #9
+[SENT] Message from Android accessory #9
+[RECV] Message from Android device #10
+[SENT] Message from Android accessory #10
+</pre>
+<h3 id=camera_field_of_view_calibration>Camera field of view calibration</h3>
+<p>This field of view calibration procedure is designed to be a quick way to
+  determine the device field of view with moderate accuracy.
+<p><strong>Setup</strong> - Print the <a
+href="{@docRoot}compatibility/calibration-pattern.pdf">calibration-pattern.pdf</a>
+target file and mount it on a rigid backing. Print on 11” x 17” or A3. Orient
+the camera device and the printed target as shown in the diagram below:</p>
+
+<img src="images/camera-printed-target.png" alt="Camera printed target" id="figure5" />
+<p class="img-caption">
+  <strong>Figure 5.</strong> Camera printed target
+</p>
+
+<p><strong>Setting the target width</strong> - Measure the distance between the
+solid lines on the target pattern in centimeters to account for printing
+inaccuracies (~38 cm).</p>
+<ol>
+  <li>Start the calibration application.
+  <li>Press the setup button and select “Marker distance” to enter the distance.
+  <li>Measure and enter the distance to the target pattern (~100 cm).
+  <li>Press the back button to return to the calibration preview.
+</ol>
+<p><strong>Calibration process</strong> - Verify that the device and target are
+placed as shown in the figure and the correct distances have been entered into
+the setup dialog.The preview will display the image with a vertical line
+overlaid onto it. This line should align with the center line of the target
+pattern. The transparent grid can be used with the other vertical lines to
+ensure that the optical axis is orthogonal to the target.</p>
+<ol>
+  <li>Select an image resolution to test from the selector at the bottom left.
+  <li>Tap the screen to take a photo and enter the calibration mode (described
+    below).
+  <li>Hit the back button and repeat for all supported image resolutions.
+</ol>
+<p><strong>Calibration test (per resolution)</strong> In the calibration mode, the photo will be displayed with two vertical lines
+  overlaid onto the image.These lines should align with the vertical lines on the target pattern within a
+  few pixels. If they do not, then the reported field of view for that mode is
+  inaccurate (assuming the setup is correct).Adjust the slider at the bottom of the screen until the overlay aligns with the
+  target pattern as closely as possible. The displayed field of view will be a
+  close approximation to the correct value when the overlay and the target
+  pattern image are aligned. The reported field of view should be within +/-1
+  degree of the calibration value.</p>
+<h2 id=exporting_test_reports>Exporting test reports</h2>
+<ol>
+  <li>After all tests are completed, tap the <strong>Save (disk)</strong> icon.
+<br>
+<img src="images/verifier-save-icon.png" alt="CTS Verifier Save icon" id="figure6" />
+<p class="img-caption">
+  <strong>Figure 6.</strong> CTS Verifier Save icon
+</p>
+
+  <li>A path to the saved report will be displayed in pop-up (e.g.
+<code>/mnt/sdcard/ctsVerifierReports/ctsVerifierReport-date-time.zip</code>).
+Record the path.
+<br>
+<img src="images/path-saved-report.png" alt="CTS Verifier path to saved report " id="figure7" />
+<p class="img-caption">
+  <strong>Figure 7.</strong> CTS Verifier path to saved report
+</p>
+
+  <li>Connect the device via USB to a computer with the SDK installed.
+  <li>From the computer’s SDK installation, run <code>adb pull
+    <CTS Verifier report path>
+    </code> to download the report from the device.
+    <ul>
+  <li>To download all reports run : <code>adb pull /mnt/sdcard/ctsVerifierReports/ .</code>
+  <li>The name of the reports are time-stamped based on the DUT’s system time.
+  <li>To clear results after they have been selected, select <strong>Menu > Clear</strong>. This will
+    clear the Pass/Fail results.
+</ol>
diff --git a/src/compatibility/downloads.jd b/src/compatibility/downloads.jd
index 0d729f2..f6b2b20 100644
--- a/src/compatibility/downloads.jd
+++ b/src/compatibility/downloads.jd
@@ -27,10 +27,29 @@
 <p>Thank you for your interest in Android Compatibility! The links below give
 you access to key documents and information about the program.</p>
 
+<h2 id="android-51">Android 5.1</h2>
+<p>Android 5.1 is the release of the development milestone code-named Lollipop-MR1.
+The source code for the following tests can be synced with the
+'android-cts-5.1_r1' tag in the open source tree.</p>
+<ul>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-5.1_r1-linux_x86-arm.zip">Android
+5.1 R1 Compatibility Test Suite (CTS) - ARM</a></li>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-5.1_r1-linux_x86-x86.zip">Android
+5.1 R1 Compatibility Test Suite (CTS) - x86</a></li>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-5.1_r1-linux_x86-arm.zip">Android
+5.1 R1 CTS Verifier - ARM</a></li>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-5.1_r1-linux_x86-x86.zip">Android
+5.1 R1 CTS Verifier - x86</a></li>
+</ul>
+
 <h2 id="android-50">Android 5.0</h2>
 <p>Android 5.0 is the release of the development milestone code-named Lollipop.
 The source code for the following tests can be synced with the
-'android-cts-5.0_r2' tag in the open-source tree.</p>
+'android-cts-5.0_r2' tag in the open source tree.</p>
 <ul>
 <li><a href="5.0/android-5.0-cdd.pdf">Android 5.0 Compatibility Definition
 Document (CDD)</a></li>
@@ -51,7 +70,7 @@
 <h2 id="android-44">Android 4.4</h2>
 <p>Android 4.4 is the release of the development milestone code-named
 KitKat. Source code for Android 4.4 is found in the
-'android-4.4.4_r1' branch in the open-source tree.</p>
+'android-4.4.4_r1' branch in the open source tree.</p>
 <ul>
 <li><a href="4.4/android-4.4-cdd.pdf">Android 4.4 Compatibility Definition
 Document (CDD)</a></li>
@@ -71,7 +90,7 @@
 
 <h2 id="android-43">Android 4.3</h2>
 <p>Android 4.3 is the release of the development milestone code-named
-Jelly Bean-MR2. Source code for Android 4.3 is found in the 'android-4.3_r2.2-cts' branch in the open-source tree.</p>
+Jelly Bean-MR2. Source code for Android 4.3 is found in the 'android-4.3_r2.2-cts' branch in the open source tree.</p>
 <ul>
 <li><a href="4.3/android-4.3-cdd.pdf">Android 4.3 Compatibility Definition Document (CDD)</a></li>
 <li><a
@@ -84,7 +103,7 @@
 
 <h2 id="android-42">Android 4.2</h2>
 <p>Android 4.2 is the release of the development milestone code-named
-Jelly Bean-MR1. Source code for Android 4.2 is found in the 'android-4.2.2_r1' branch in the open-source tree.</p>
+Jelly Bean-MR1. Source code for Android 4.2 is found in the 'android-4.2.2_r1' branch in the open source tree.</p>
 <ul>
 <li><a href="4.2/android-4.2-cdd.pdf">Android 4.2 Compatibility Definition Document (CDD)</a></li>
 <li><a href="https://dl.google.com/dl/android/cts/android-cts-4.2_r4-linux_x86-arm.zip">Android 4.2 R4 Compatibility Test Suite (CTS)</a></li>
@@ -93,7 +112,7 @@
 <h2 id="android-41">Android 4.1</h2>
 <p>Android 4.1 is the release of the development milestone code-named Jelly
 Bean. The source code of the Compatibility Test Suite revisions below is
-available at the 'android-cts-4.1_r4' tag in the open-source tree.</p>
+available at the 'android-cts-4.1_r4' tag in the open source tree.</p>
 <ul>
 <li><a href="4.1/android-4.1-cdd.pdf">Android 4.1 Compatibility Definition Document (CDD)</a></li>
 <li><a href="https://dl.google.com/dl/android/cts/android-cts-4.1_r4-linux_x86-arm.zip">Android 4.1 R4 Compatibility Test Suite (CTS)</a></li>
@@ -102,7 +121,7 @@
 <h2 id="android-403">Android 4.0.3</h2>
 <p>Android 4.0.3 is the release of the development milestone code-named
 Ice Cream Sandwich. Android 4.0.3 is the current version of Android. Source code for
-Android 4.0.3 is found in the 'android-4.0.3_r1' branch in the open-source tree.</p>
+Android 4.0.3 is found in the 'android-4.0.3_r1' branch in the open source tree.</p>
 <ul>
 <li><a href="4.0/android-4.0-cdd.pdf">Android 4.0 Compatibility Definition Document (CDD)</a></li>
 <li><a href="https://dl.google.com/dl/android/cts/android-cts-4.0.3_r3-linux_x86-arm.zip">Android 4.0.3 R3 Compatibility Test Suite (CTS)</a></li>
@@ -111,7 +130,7 @@
 <h2 id="android-23">Android 2.3</h2>
 <p>Android 2.3 is the release of the development milestone code-named
 Gingerbread. Source code for Android 2.3 is found in the 'gingerbread' branch in 
-the open-source tree.</p>
+the open source tree.</p>
 <ul>
 <li><a href="2.3/android-2.3.3-cdd.pdf">Android 2.3 Compatibility Definition Document (CDD)</a></li>
 <li><a href="https://dl.google.com/dl/android/cts/android-cts-2.3_r13-linux_x86-arm.zip">Android 2.3 R13 Compatibility Test Suite (CTS)</a></li>
@@ -120,7 +139,7 @@
 <h2 id="android-22">Android 2.2</h2>
 <p>Android 2.2 is the release of the development milestone code-named
 FroYo. Source code for Android 2.2 is found in the 'froyo' branch in the
-open-source tree.</p>
+open source tree.</p>
 <ul>
 <li><a href="2.2/android-2.2-cdd.pdf">Android 2.2 Compatibility Definition Document (CDD)</a></li>
 <li><a href="https://dl.google.com/dl/android/cts/android-cts-2.2_r8-linux_x86-arm.zip">Android 2.2 R8 Compatibility Test Suite (CTS)</a></li>
@@ -128,7 +147,7 @@
 <h2 id="android-21">Android 2.1</h2>
 <p>Android 2.1 is the release of the development milestone code-named
 Eclair. Source code for Android 2.1 is found in the 'eclair' branch in the
-open-source tree. Note that for technical reasons, there is no compatibility
+open source tree. Note that for technical reasons, there is no compatibility
 program for Android 2.0 or 2.0.1, and new devices must use Android 2.1.</p>
 <ul>
 <li><a href="2.1/android-2.1-cdd.pdf">Android 2.1 Compatibility Definition Document (CDD)</a></li>
@@ -137,7 +156,7 @@
 <h2 id="android-16">Android 1.6</h2>
 <p>Android 1.6 was the release of the development milestone code-named Donut.
 Android 1.6 was obsoleted by Android 2.1. Source code for Android 1.6 is found
-in the 'donut' branch in the open-source tree.</p>
+in the 'donut' branch in the open source tree.</p>
 <ul>
 <li><a href="1.6/android-1.6-cdd.pdf">Android 1.6 Compatibility Definition Document (CDD)</a></li>
 <li><a href="https://dl.google.com/dl/android/cts/android-cts-1.6_r1-x86.zip">Android 1.6 R1 Compatibility Test Suite (CTS)</a></li>
diff --git a/src/compatibility/images/compat-ecosystem.png b/src/compatibility/images/compat-ecosystem.png
new file mode 100644
index 0000000..4b166d1
--- /dev/null
+++ b/src/compatibility/images/compat-ecosystem.png
Binary files differ
diff --git a/src/compatibility/index.jd b/src/compatibility/index.jd
index b3c375a..6b29fa3 100644
--- a/src/compatibility/index.jd
+++ b/src/compatibility/index.jd
@@ -2,77 +2,94 @@
 @jd:body
 
 <!--
-    Copyright 2015 The Android Open Source Project     
+    Copyright 2015 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    
+    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.   
+    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>Android's purpose is to establish an open platform for developers to build innovative apps.
-The Android Compatibility program defines the technical details of the Android platform and provides
-tools used by OEMs to ensure that developers' apps run on a variety of devices. The Android SDK
-provides built-in tools that developers use to clearly state the device features their apps
-require. And Google Play shows apps only to those devices that can properly run them.
-</p>
+<p>Android's purpose is to establish an open platform for developers to build
+innovative apps.</p>
+<ul>
+<li>The Android Compatibility program defines technical details of the
+Android platform and provides tools for OEMs to ensure developer applications
+run on a variety of devices.</li>
+<li>The Android SDK provides built-in tools for developers to clearly state the
+device features requires by their applications.
+<li>Google Play shows applications only to those devices that can properly run
+those applications.</li></li>
 
-<h2 id="why-build-compatible-android-devices">Why build compatible Android devices?</h2>
-<h3 id="users-want-a-customizable-device">Users want a customizable device.</h3>
+<h2 id="why-build-compatible-android-devices">Why build compatible Android
+devices?</h2>
+
+<h3 id="users-want-a-customizable-device">Users want customizable devices</h3>
+
+<div class="figure">
+  <img src="images/compat-ecosystem.png" alt="Compatibility ecosystem" id="figure1" />
+  <p class="img-caption">
+    <strong>Figure 1.</strong> The Android ecosystem thrives with device compatibility
+  </p>
+</div>
+
 <p>A mobile phone is a highly personal, always-on, always-present gateway to
 the Internet. We haven't met a user yet who didn't want to customize it by
 extending its functionality. That's why Android was designed as a robust
 platform for running aftermarket applications.</p>
-<h3 id="developers-outnumber-us-all">Developers outnumber us all.</h3>
-<p>No device manufacturer can hope to write all the software that a person could
-conceivably need. We need third-party developers to write the apps users want;
-so the Android Open Source Project aims to make it as easy and open as
-possible for developers to build apps.</p>
-<h3 id="everyone-needs-a-common-ecosystem">Everyone needs a common ecosystem.</h3>
-<p>Every line of code developers write to work around a particular phone's bug
-is a line of code that didn't add a new feature. The more compatible phones
-there are, the more apps there will be. By building a fully compatible Android
-device, you benefit from the huge pool of apps written for Android, while
-increasing the incentive for developers to build more of those apps.</p>
-<h2 id="android-compatibility-is-free-and-its-easy">Android compatibility is free, and it's easy.</h2>
-<p>If you are building a mobile device, you can follow these steps to make
-sure your device is compatible with Android. For more details about the
-Android compatibility program in general, see <a href="overview.html">the program overview</a>.</p>
-<p>Building a compatible device is a three-step process:</p>
+
+<h3 id="developers-outnumber-us-all">Developers outnumber us all</h3>
+<p>No device manufacturer can write all the software a user could conceivably
+need. We need third-party developers to write the apps users want, so the
+Android Open Source Project (AOSP) aims to make application development as easy
+and open as possible.</p>
+
+<h3 id="everyone-needs-a-common-ecosystem">Everyone needs a common ecosystem</h3>
+<p>Every line of code developers write to work around a bug is a line of code
+that didn't add a new feature. The more compatible mobile devices are, the more
+applications we'll have to run on those devices. By building a fully compatible
+Android device, you benefit from the huge pool of apps written for Android while
+increasing the incentive for developers to build more apps.</p>
+
+<h2 id="android-compatibility-is-free-and-its-easy">Android compatibility is
+free, and it's easy</h2>
+<p>To build an Android-compatible mobile device, follow this three-step
+process:</p>
 <ol>
-<li>
-<p><em>Obtain the <a href="{@docRoot}source/index.html">Android software source
-code</a></em>.
-    This is the source code for the Android platform that you port to your hardware.</p>
-</li>
-<li>
-<p><em>Comply with the <a href="{@docRoot}compatibility/android-cdd.pdf">Android
-Compatibility Definition Document (CDD)</a></em>.
-    The CDD enumerates the software and hardware requirements of a compatible Android device.</p>
-</li>
-<li>
-<p><em>Pass the <a href="{@docRoot}compatibility/cts-intro.html">Compatibility
-Test Suite (CTS)</a></em>.
-    Use the CTS as an ongoing aid to compatibility during the development process.</p>
-</li>
+<li><em>Obtain the <a href="{@docRoot}source/index.html">Android software source
+code</a></em>. This is the source code for the Android platform that you port
+to your hardware.</li>
+<li><em>Comply with the <a href="{@docRoot}compatibility/android-cdd.pdf">Android
+Compatibility Definition Document (CDD)</a></em>. The CDD enumerates the
+software and hardware requirements of a compatible Android device.</li>
+<li><em>Pass the <a href="{@docRoot}compatibility/cts-intro.html">Compatibility
+Test Suite (CTS)</a></em>. Use the CTS as an ongoing aid to evaluate
+compatibility during the development process.</li>
 </ol>
 
-<p>After complying with the CDD and passing the CTS, your device is now Android
-compatible. Android apps in the ecosystem will have a consistent experience on
-your device.</p>
+<p>After complying with the CDD and passing the CTS, your device is Android
+compatible, meaning Android apps in the ecosystem provide a consistent
+experience when running on your device. For details about the Android
+compatibility program, see the <a href="overview.html">program overview</a>.</p>
 
-<h2 id="licensing-gms">Licensing Google Mobile Services</h2>
-<p>If you've built an Android compatible device, you may wish to inquire about
-licensing Google’s proprietary suite of apps that run on top of Android -
-Google Mobile Services (GMS, which include Google Play, YouTube, Google Maps,
-Gmail, and more). Google Mobile Services is not part of the Android Open Source
-Project and is available only through a license with Google. Please visit the
-‘contact’ us section for more information on how to inquire about a GMS
-license.</p>
+<h2 id="licensing-gms">Licensing Google Mobile Services (GMS)</h2>
+<p>After building an Android compatible device, consider licensing Google Mobile
+Services (GMS), Google’s proprietary suite of apps (Google Play, YouTube, Google
+Maps, Gmail, and more ) that run on top of Android. GMS is not part of the
+Android Open Source Project and is available only through a license with Google.
+For information on how to request a GMS license, see
+<a href="contact-us.html">Contact Us</a>.</p>
\ No newline at end of file
diff --git a/src/compatibility/overview.jd b/src/compatibility/overview.jd
index ac0fb9f..0a1bfca 100644
--- a/src/compatibility/overview.jd
+++ b/src/compatibility/overview.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project     
+    Copyright 2015 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.   
@@ -16,10 +16,17 @@
     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 Android compatibility program makes it easy for mobile device
 manufacturers to develop compatible Android devices.</p>
-<h1 id="program-goals">Program goals</h1>
+<h2 id="program-goals">Program goals</h2>
 <p>The Android compatibility program works for the benefit of the entire
 Android community, including users, developers, and device manufacturers.</p>
 <p>Each group depends on the others. Users want a wide selection of devices
@@ -79,7 +86,7 @@
 the source code tree, there is a separate CTS and CDD for each version as
 well. The CDD, CTS, and source code are -- along with your hardware and your
 software customizations -- everything you need to create a compatible device.</p>
-<h1 id="compatibility-definition-document-cdd">Compatibility Definition Document</h1>
+<h2 id="compatibility-definition-document-cdd">Compatibility Definition Document</h2>
 <p>For each release of the Android platform, a detailed CDD will be provided. The CDD represents the "policy"
 aspect of Android compatibility.</p>
 <p>No test suite, including CTS, can truly be comprehensive. For instance, the
@@ -99,9 +106,9 @@
 start by checking out the source code for that version, and then read the
 corresponding CDD and stay within its guidelines. For additional details,
 simply examine <a href="/compatibility/android-cdd.pdf">the latest CDD</a>.</p>
-<h1 id="compatibility-test-suite-cts">Compatibility Test Suite</h1>
-<p>The CTS is a free, commercial-grade test suite, available for
-<a href="downloads.html">download</a>.
+<h2 id="compatibility-test-suite-cts">Compatibility Test Suite</h2>
+<p>The <a href="cts/index.html">CTS</a> is a free, commercial-grade test suite,
+available for <a href="downloads.html">download</a>.
 The CTS represents the "mechanism" of compatibility.</p>
 <p>The CTS runs on a desktop machine and executes test cases directly on
 attached devices or an emulator. The CTS is a set of unit tests designed to be
@@ -109,11 +116,11 @@
 the engineers building a device. Its intent is to reveal incompatibilities
 early on, and ensure that the software remains compatible throughout the
 development process.</p>
-<h1 id="compatibility-test-suite-verifier-cts-verifier">Compatibility Test Suite Verifier (CTS Verifier)</h1>
+<h2 id="compatibility-test-suite-verifier-cts-verifier">Compatibility Test Suite Verifier (CTS Verifier)</h2>
 <p>The Compatibility Test Suite Verifier (CTS Verifier) is a supplement to the
 CTS available for <a href="downloads.html">download</a>.
 CTS Verifier provides tests for APIs and functions that cannot be tested on a
 stationary device without manual input (e.g. audio quality, accelerometer, etc).</p>
-<p>For details on the CTS, consult the <a href="cts-intro.html">CTS introduction</a>.</p>
+<p>For details on the CTS, consult the <a href="cts/index.html">CTS introduction</a>.</p>
 
 
diff --git a/src/devices/audio/images/venn.png b/src/devices/audio/images/venn.png
new file mode 100644
index 0000000..1db4f53
--- /dev/null
+++ b/src/devices/audio/images/venn.png
Binary files differ
diff --git a/src/devices/audio/latency.jd b/src/devices/audio/latency.jd
index 59c3f73..a45bf20 100644
--- a/src/devices/audio/latency.jd
+++ b/src/devices/audio/latency.jd
@@ -50,4 +50,8 @@
   <td>Round-trip audio latency results</td>
   <td><a href="latency_measurements.html">Audio Latency Measurements</a></td>
 </tr>
+<tr>
+  <td>Applications</td>
+  <td><a href="latency_app.html">Audio Latency for App Developers</a></td>
+</tr>
 </table>
diff --git a/src/devices/audio/latency_app.jd b/src/devices/audio/latency_app.jd
new file mode 100644
index 0000000..22e3984
--- /dev/null
+++ b/src/devices/audio/latency_app.jd
@@ -0,0 +1,174 @@
+page.title=Audio Latency for App Developers
+@jd:body
+
+<!--
+    Copyright 2015 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>For the lowest audio latency possible, we recommend you use Android native audio
+based on OpenSL ES 1.0.1.</p>
+
+<h2 id=implementation>Implementation checklist</h2>
+
+<p>To use Android native audio:</p>
+
+<ol>
+
+<li>
+Download and install the
+<a href="https://developer.android.com/tools/sdk/ndk/index.html">Android NDK</a>.
+In the rest of this document, we'll assume <code>NDKroot</code> is the
+directory where you installed NDK.
+</li>
+
+<li>
+Read the <a href="#supporting">supporting documentation.</a>
+</li>
+
+<li>
+Check for API level 9 or higher.
+</li>
+
+<li>
+Check for feature
+<a href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html#hw-features">android.hardware.audio.low_latency.</a>
+</li>
+
+<li>
+Use the recommended native buffer size and sample rate returned by
+<a href="http://developer.android.com/reference/android/media/AudioManager.html#getProperty(java.lang.String)">android.media.AudioManager.getProperty(java.lang.String)</a>
+<p> <strong>Note</strong>: the same buffer size and sample rate should also be used for input.</p>
+</li>
+
+<li>
+Usually an OpenSL ES buffer count of 1 is sufficient.
+</li>
+
+<li>
+Keep your callback handlers short, without bursty CPU usage or unbounded blocking.  Avoid
+<a href="avoiding_pi.html">priority inversion.</a>
+</li>
+
+<li>
+Consider using
+<a href="avoiding_pi.html#nonBlockingAlgorithms">non-blocking algorithms</a>
+to communicate between input and output callback handlers,
+and between the callback handlers and the rest of your application.
+</li>
+
+</ol>
+
+<h2 id=supporting>Supporting documentation</h2>
+
+<h3 id=opensl_es_1_0_1>OpenSL ES 1.0.1</h3>
+
+<p>
+Use a PDF viewer to review the
+<a href="https://www.khronos.org/registry/sles/specs/OpenSL_ES_Specification_1.0.1.pdf">OpenSL 1.0.1 Specification.</a>
+This is a rather long reference, and not all of it will be relevant to you; but you
+will need to consult it for details on the API.
+</p>
+
+<p class="note">
+<strong>Note</strong>: this document describes the full OpenSL ES 1.0.1, but Android
+native audio is actually based on a subset of OpenSL ES 1.0.1 with some Android-specific extensions.
+</p>
+
+<p>
+Documents describing later versions of OpenSL ES, such as 1.1,
+are not relevant to Android.
+</p>
+
+<h3 id=opensl_es_for_android>OpenSL ES for Android</h3>
+
+<p>
+The document "OpenSL ES for Android" is provided in the NDK installation,
+and is not currently available online.  Open this link in a browser:
+</p>
+
+<pre>
+NDKroot/docs/Additional_library_docs/opensles/index.html
+</pre>
+
+<p>
+You’ll want to skim the whole
+document, but pay special attention to the "Performance" subsection of the
+"Programming notes" section.
+</p>
+
+<p>
+Section "Supported features from OpenSL ES 1.0.1"
+describes the subset supported by Android.
+</p>
+
+<p>
+Section "Android extensions" describes Android-specific extensions
+that aren't included in base OpenSL ES 1.0.1.
+</p>
+
+<h3 id=relationship>Relationship with OpenSL ES 1.0.1</h3>
+
+<p>
+This Venn diagram shows the relationship between
+Android native audio and OpenSL ES 1.0.1.
+</p>
+
+<img src="images/venn.png" alt="Venn diagram" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Venn diagram
+</p>
+
+<h2 id=resources>Other resources</h2>
+
+<h3 id=source_android_com>source.android.com</h3>
+
+<p>
+The site <a href="{@docRoot}">source.android.com</a>
+is primarily designed for OEMs building Android
+devices, and the SoC vendors who supply components to these OEMs.
+</p>
+
+<p>
+However, there is a wealth of useful information about latency at this site, so
+you may want to review it.  See the articles at
+<a href="latency.html">Audio Latency.</a>
+</p>
+
+<h3 id=android_ndk>android-ndk</h3>
+
+<p>
+If you have questions about how to use Android native audio, you can ask at the discussion group
+<a href="https://groups.google.com/forum/#!forum/android-ndk">android-ndk.</a>
+</p>
+
+<h3 id=videos>Videos</h3>
+
+<dl>
+
+<dt><a href="https://www.youtube.com/watch?v=d3kfEeMZ65c">Google I/O 2013 - High performance audio on Android</a></dt>
+<dd>The whole video is about latency.</dd>
+
+<dt><a href="https://www.youtube.com/watch?v=92fgcUNCHic">Google I/O 2014 - Building great multi-media experiences on Android</a></dt>
+<dd>The first 14 minutes are about audio in general and input latency in particular.</dd>
+
+</dl>
diff --git a/src/devices/audio/latency_measure.jd b/src/devices/audio/latency_measure.jd
index f6b1d3e..6285ff9 100644
--- a/src/devices/audio/latency_measure.jd
+++ b/src/devices/audio/latency_measure.jd
@@ -67,12 +67,10 @@
 <ol>
   <li>Run an app that periodically pulses the LED at
   the same time it outputs audio. 
-
-  <p class="note"><b>Note:</b> To get useful results, it is crucial to use the correct
+  <p class="note"><strong>Note:</strong> To get useful results, it is crucial to use the correct
   APIs in the test app so that you're exercising the fast audio output path.
   See <a href="latency_design.html">Design For Reduced Latency</a> for
-  background.
-  </p>
+  background.</p>
   </li>
   <li>Place a light sensor next to the LED.</li>
   <li>Connect the probes of a dual-channel oscilloscope to both the wired headphone
diff --git a/src/devices/audio/latency_measurements.jd b/src/devices/audio/latency_measurements.jd
index e66b5f9..8055890 100644
--- a/src/devices/audio/latency_measurements.jd
+++ b/src/devices/audio/latency_measurements.jd
@@ -331,6 +331,16 @@
   <td>38</td>
 </tr>
 
+</tr>
+  <td>Nexus 9</td>
+  <td>5.1.1</td>
+  <td>LMY47X</td>
+  <td>48000</td>
+  <td>256</td>
+  <td>5.3</td>
+  <td>32</td>
+</tr>
+
 <tr>
   <td>Nexus 6</td>
   <td>5.0.1</td>
diff --git a/src/devices/audio/midi.jd b/src/devices/audio/midi.jd
new file mode 100644
index 0000000..38428c7
--- /dev/null
+++ b/src/devices/audio/midi.jd
@@ -0,0 +1,161 @@
+page.title=MIDI
+@jd:body
+
+<!--
+    Copyright 2015 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>
+<a href="http://en.wikipedia.org/wiki/MIDI">MIDI</a> (Musical Instrument Digital Interface)
+is a standard protocol for inter-connecting computers with musical instruments, stage lighting,
+and other time-oriented media.
+</p>
+
+<p>
+The physical <a href="http://en.wikipedia.org/wiki/Transport_layer">transport layer</a>
+specified in original MIDI 1.0 is a current loop with
+<a href="http://en.wikipedia.org/wiki/DIN_connector">5-pin DIN</a> connector.
+</p>
+
+<p>
+Since MIDI 1.0, additional transports have been defined, including MIDI over USB
+and a proposed draft for MIDI over
+<a href="http://en.wikipedia.org/wiki/Bluetooth_low_energy">Bluetooth Low Energy</a> (BLE.)
+</p>
+
+<p>
+Strictly speaking, MIDI is unrelated to audio. But since MIDI is commonly used with
+music, this article is placed in the audio section.
+</p>
+
+<h2 id="for-android">MIDI for Android</h2>
+
+<p>
+Android 3.1 and later support
+<a href="http://en.wikipedia.org/wiki/USB_On-The-Go">USB On-The-Go</a>,
+which permits an Android device to act as USB host to drive USB
+peripherals. The USB host mode APIs introduced in Android 3.1 permit
+developers to implement MIDI over USB at the application level, but until
+recently there have been no built-in platform APIs for MIDI.
+</p>
+
+<p>
+Beginning with the Android M release, device makers can enable optional MIDI support in the platform.
+Supported transports include USB, draft BLE, and virtual (inter-app).
+</p>
+
+<p>
+For details on application programming with the new MIDI APIs,
+first download the
+<a href="https://developer.android.com/preview/download.html#docs">preview reference</a>
+and then see the <code>android.media.midi</code> package.
+</p>
+
+<p>
+The remainder of this article discusses how an Android device maker can
+enable MIDI support in the platform.
+</p>
+
+<h2 id="transport">Enabling transports</h2>
+
+<h3 id="usb-host">USB host mode</h3>
+
+<p>
+To enable MIDI for USB host mode, first support USB host mode in general, and
+then enable <code>CONFIG_SND_RAWMIDI</code> in your kernel configuration.
+</p>
+
+<h3 id="usb-peripheral">USB peripheral mode</h3>
+
+<p>
+To enable MIDI for USB peripheral mode, you may need to apply patches
+to your Linux kernel to integrate the
+<code>drivers/usb/gadget/f_midi.c</code> into the USB gadget
+driver. As of this writing, these patches are available for Linux kernel version
+3.10. These patches have not yet been updated for
+<a href="http://en.wikipedia.org/wiki/Configfs">ConfigFs</a>
+(a new architecture
+for USB gadget drivers), nor are they merged at upstream
+<a href="http://kernel.org"</a>kernel.org</a>.
+</p>
+
+<p>
+The patches are shown in commit order for the <code>tegra</code> tree:
+</p>
+<ol>
+<li><a href="https://android.googlesource.com/kernel/tegra/+/261230ce54cfc119efe643fc1d128e431d1678d3"</a>261230ce54cfc119efe643fc1d128e431d1678d3</a></li>
+<li><a href="https://android.googlesource.com/kernel/tegra/+/3f048135f3028e503d9d6e32b602e362bd9f374f"</a>3f048135f3028e503d9d6e32b602e362bd9f374f</a></li>
+<li><a href="https://android.googlesource.com/kernel/tegra/+/ae2019d83ecf14454315240c16dc3136212f0da2"</a>ae2019d83ecf14454315240c16dc3136212f0da2</a></li>
+</ol>
+
+<p>
+In addition, the end user must also check the box for MIDI
+in the <em>Settings</em> dialog for <em>Select USB configuration</em>,
+or by pulling down from the top of screen while attached
+to the USB host, and choosing <strong>MIDI</strong> for "Use USB for ...".
+</p>
+
+<h3 id="ble">BLE</h3>
+
+<p>
+MIDI over BLE is always enabled.
+As this transport is in draft status, it is subject to change.
+</p>
+
+<h3 id="virtual">Virtual (inter-app)</h3>
+
+<p>
+The virtual (inter-app) transport is always enabled.
+</p>
+
+<h2 id="claim-feature">Claiming the feature</h2>
+
+<p>
+Applications can screen for the presence of MIDI support using the
+<code>android.software.midi</code> feature.
+</p>
+
+<p>
+To claim MIDI support, add this line to your <code>device.mk</code>:
+</p>
+<pre>
+PRODUCT_COPY_FILES += \
+frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.midi.xml
+</pre>
+
+<p>
+See the
+<a href="{@docRoot}compatibility/android-cdd.pdf">Android Compatibility Definition Document (CDD)</a>
+for information
+on requirements to claim the feature.
+</p>
+
+<h2 id="hostDebugging">Debugging while in host mode</h2>
+
+<p>
+While in USB host mode, Android Debug Bridge (adb) debugging over USB is unavailable.
+See section <a href="http://developer.android.com/tools/help/adb.html#wireless">Wireless usage</a>
+of
+<a href="http://developer.android.com/tools/help/adb.html">Android Debug Bridge</a>
+for an alternative.
+</p>
diff --git a/src/devices/audio/usb.jd b/src/devices/audio/usb.jd
index b885f60..5395560 100644
--- a/src/devices/audio/usb.jd
+++ b/src/devices/audio/usb.jd
@@ -67,7 +67,7 @@
 </p>
 
 <p>
-<b>Note:</b> the terms <i>device</i> or <i>accessory</i> are common synonyms for
+<p class="note"><strong>Note:</strong> The terms <i>device</i> and <i>accessory</i> are common synonyms for
 <i>peripheral</i>.  We avoid those terms here, as they could be confused with
 Android <a href="http://en.wikipedia.org/wiki/Mobile_device">device</a>
 or the Android-specific concept called
@@ -452,7 +452,7 @@
 <p>
 Which design is better?  The answer depends on your needs.
 Each has advantages and disadvantages.
-<b>Note:</b> this is an artificial comparison, since
+<p class="note"><strong>Note:</strong> This is an artificial comparison, since
 a real Android device would probably have both options available.
 </p>
 
diff --git a/src/devices/camera/images/ape_fwk_camera.png b/src/devices/camera/images/ape_fwk_camera.png
index 102461e..cb8831b 100644
--- a/src/devices/camera/images/ape_fwk_camera.png
+++ b/src/devices/camera/images/ape_fwk_camera.png
Binary files differ
diff --git a/src/devices/camera/images/camera-hal-overview.png b/src/devices/camera/images/camera-hal-overview.png
index fed29e7..3f39356 100644
--- a/src/devices/camera/images/camera-hal-overview.png
+++ b/src/devices/camera/images/camera-hal-overview.png
Binary files differ
diff --git a/src/devices/camera/images/camera-ops-flow.png b/src/devices/camera/images/camera-ops-flow.png
index 7326782..2d5cd4f 100644
--- a/src/devices/camera/images/camera-ops-flow.png
+++ b/src/devices/camera/images/camera-ops-flow.png
Binary files differ
diff --git a/src/devices/camera/images/camera_block.png b/src/devices/camera/images/camera_block.png
index b7a58eb..29b92e9 100644
--- a/src/devices/camera/images/camera_block.png
+++ b/src/devices/camera/images/camera_block.png
Binary files differ
diff --git a/src/devices/camera/images/camera_hal.png b/src/devices/camera/images/camera_hal.png
index 28fa927..ffb1406 100644
--- a/src/devices/camera/images/camera_hal.png
+++ b/src/devices/camera/images/camera_hal.png
Binary files differ
diff --git a/src/devices/camera/images/camera_model.png b/src/devices/camera/images/camera_model.png
index 50cbabc..a8810c6 100644
--- a/src/devices/camera/images/camera_model.png
+++ b/src/devices/camera/images/camera_model.png
Binary files differ
diff --git a/src/devices/camera/images/camera_simple_model.png b/src/devices/camera/images/camera_simple_model.png
index fd0fac0..625dd8f 100644
--- a/src/devices/camera/images/camera_simple_model.png
+++ b/src/devices/camera/images/camera_simple_model.png
Binary files differ
diff --git a/src/devices/camera/images/crop-region-11-ratio.png b/src/devices/camera/images/crop-region-11-ratio.png
index 8e28230..f6406d7 100644
--- a/src/devices/camera/images/crop-region-11-ratio.png
+++ b/src/devices/camera/images/crop-region-11-ratio.png
Binary files differ
diff --git a/src/devices/camera/images/crop-region-169-ratio.png b/src/devices/camera/images/crop-region-169-ratio.png
index 62837e2..d190858 100644
--- a/src/devices/camera/images/crop-region-169-ratio.png
+++ b/src/devices/camera/images/crop-region-169-ratio.png
Binary files differ
diff --git a/src/devices/camera/images/crop-region-43-ratio.png b/src/devices/camera/images/crop-region-43-ratio.png
index f48046b..420068b 100644
--- a/src/devices/camera/images/crop-region-43-ratio.png
+++ b/src/devices/camera/images/crop-region-43-ratio.png
Binary files differ
diff --git a/src/devices/camera/images/crop-region-43-square-ratio.png b/src/devices/camera/images/crop-region-43-square-ratio.png
index 3794dbe..9257dda 100644
--- a/src/devices/camera/images/crop-region-43-square-ratio.png
+++ b/src/devices/camera/images/crop-region-43-square-ratio.png
Binary files differ
diff --git a/src/devices/camera/index.jd b/src/devices/camera/index.jd
index 1e5cab8..9bf74df 100644
--- a/src/devices/camera/index.jd
+++ b/src/devices/camera/index.jd
@@ -30,7 +30,7 @@
 camera framework APIs in <a href="http://developer.android.com/reference/android/hardware/package-summary.html">android.hardware</a> to your underlying camera driver and hardware. The camera subsystem includes implementations for camera pipeline components while the camera HAL provides interfaces for use in implementing your version of these components.</p>
 
 <h2 id="architecture">Architecture</h2>
-<p>The following figure and list describe the components involved and where to find the source for each:
+<p>The following figure and list describe the HAL components:
 </p>
 
 <img src="images/ape_fwk_camera.png" alt="Android camera architecture" id="figure1" />
diff --git a/src/devices/devices_toc.cs b/src/devices/devices_toc.cs
index 45ddd70..10a5dbb 100644
--- a/src/devices/devices_toc.cs
+++ b/src/devices/devices_toc.cs
@@ -46,11 +46,13 @@
               <li><a href="<?cs var:toroot ?>devices/audio/testing_circuit.html">Light Testing Circuit</a></li>
               <li><a href="<?cs var:toroot ?>devices/audio/loopback.html">Audio Loopback Dongle</a></li>
               <li><a href="<?cs var:toroot ?>devices/audio/latency_measurements.html">Measurements</a></li>
+              <li><a href="<?cs var:toroot ?>devices/audio/latency_app.html">Applications</a></li>
             </ul>
           </li>
           <li><a href="<?cs var:toroot ?>devices/audio/avoiding_pi.html">Priority Inversion</a></li>
           <li><a href="<?cs var:toroot ?>devices/audio/src.html">Sample Rate Conversion</a></li>
           <li><a href="<?cs var:toroot ?>devices/audio/debugging.html">Debugging</a></li>
+          <li><a href="<?cs var:toroot ?>devices/audio/midi.html">MIDI</a></li>
           <li><a href="<?cs var:toroot ?>devices/audio/usb.html">USB Digital Audio</a></li>
           <li><a href="<?cs var:toroot ?>devices/audio/tv.html">TV Audio</a></li>
         </ul>
@@ -215,6 +217,21 @@
       </li>
 
       <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>devices/tech/admin/index.html">
+          <span class="en">Device Administration</span></a>
+        </div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>devices/tech/admin/implement.html">Implementation</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/admin/multi-user.html">Multiple Users</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/admin/managed-profiles.html">Managed Profiles</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/admin/provision.html">Provisioning</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/admin/multiuser-apps.html">Multiuser Apps</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/admin/testing-setup.html">Testing Setup</a></li>
+        </ul>
+      </li>
+
+      <li class="nav-section">
         <div class="nav-section-header empty">
           <a href="<?cs var:toroot ?>devices/halref/index.html">
             <span class="en">HAL File Reference</span>
@@ -222,20 +239,6 @@
         </div>
       </li>
 
-      <li><a href="<?cs var:toroot ?>devices/tech/kernel.html">Kernel</a></li>
-
-      <li class="nav-section">
-        <div class="nav-section-header">
-            <a href="<?cs var:toroot ?>devices/tech/ram/index.html">
-              <span class="en">RAM</span>
-            </a>
-        </div>
-        <ul>
-          <li><a href="<?cs var:toroot ?>devices/tech/ram/low-ram.html">Low RAM</a></li>
-          <li><a href="<?cs var:toroot ?>devices/tech/ram/procstats.html">Viewing RAM Usage Data</a></li>
-        </ul>
-      </li>
-
       <li class="nav-section">
         <div class="nav-section-header">
             <a href="<?cs var:toroot ?>devices/tech/ota/index.html">
@@ -251,14 +254,12 @@
         </ul>
       </li>
 
-      <li><a href="<?cs var:toroot ?>devices/tech/netstats.html">Viewing Network Data</a></li>
-
       <li class="nav-section">
         <div class="nav-section-header">
           <a href="<?cs var:toroot ?>devices/tech/power/index.html"><span class="en">Power</span></a>
         </div>
         <ul>
-          <li><a href="<?cs var:toroot ?>devices/tech/power/batterystats.html">Viewing Battery Usage Data</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/power/batterystats.html">Battery Usage Data</a></li>
         </ul>
       </li>
 
@@ -331,6 +332,29 @@
           </ul>
         </li>
       </ul>
+
+      <li class="nav-section">
+        <div class="nav-section-header">
+            <a href="<?cs var:toroot ?>devices/tech/resources.html">
+              <span class="en">System Resources</span>
+            </a>
+        </div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>devices/tech/kernel.html">Kernel Configuration</a></li>
+          <li><a href="<?cs var:toroot ?>devices/tech/netstats.html">Network Usage Data</a></li>
+          <li class="nav-section">
+            <div class="nav-section-header">
+                <a href="<?cs var:toroot ?>devices/tech/ram/index.html">
+                  <span class="en">RAM</span>
+                </a>
+            </div>
+            <ul>
+              <li><a href="<?cs var:toroot ?>devices/tech/ram/low-ram.html">Low RAM Configuration</a></li>
+              <li><a href="<?cs var:toroot ?>devices/tech/ram/procstats.html">RAM Usage Data</a></li>
+            </ul>
+          </li>
+        </ul>
+
       <li class="nav-section">
         <div class="nav-section-header">
           <a href="<?cs var:toroot ?>devices/tech/test_infra/tradefed/index.html">
diff --git a/src/devices/graphics/architecture.jd b/src/devices/graphics/architecture.jd
index 75623cc..77593f2 100644
--- a/src/devices/graphics/architecture.jd
+++ b/src/devices/graphics/architecture.jd
@@ -55,7 +55,7 @@
 out in a few places.</p>
 
 <p>At various points I will refer to source code from the AOSP sources or from
-Grafika.  Grafika is a Google open-source project for testing; it can be found at
+Grafika.  Grafika is a Google open source project for testing; it can be found at
 <a
 href="https://github.com/google/grafika">https://github.com/google/grafika</a>.
 It's more "quick hack" than solid example code, but it will suffice.</p>
@@ -158,10 +158,12 @@
 primary component of which is a BufferQueue - for which SurfaceFlinger acts as
 the consumer.  A Binder object for the producer side is passed through the
 WindowManager to the app, which can then start sending frames directly to
-SurfaceFlinger.  (Note: The WindowManager uses the term "window" instead of
+SurfaceFlinger.</p>
+
+<p class="note"><strong>Note:</strong> The WindowManager uses the term "window" instead of
 "layer" for this and uses "layer" to mean something else.  We're going to use the
 SurfaceFlinger terminology.  It can be argued that SurfaceFlinger should really
-be called LayerFlinger.)</p>
+be called LayerFlinger.</p>
 
 <p>For most apps, there will be three layers on screen at any time: the "status
 bar" at the top of the screen, the "navigation bar" at the bottom or side, and
@@ -272,10 +274,11 @@
 layer's name is indicative of its original role: On a device with
 <code>/dev/graphics/fb0</code> and no overlays, all composition would be done
 with GLES, and the output would be written to the framebuffer.  On recent devices there
-generally is no simple framebuffer, so the FB_TARGET layer is a scratch buffer.
-(Note: This is why screen grabbers written for old versions of Android no
-longer work: They're trying to read from The Framebuffer, but there is no such
-thing.)</p>
+generally is no simple framebuffer, so the FB_TARGET layer is a scratch buffer.</p>
+
+<p class="note"><strong>Note:</strong> This is why screen grabbers written for old versions of Android no
+longer work: They're trying to read from the Framebuffer, but there is no such
+thing.</p>
 
 <p>The overlay planes have another important role: they're the only way to display
 DRM content.  DRM-protected buffers cannot be accessed by SurfaceFlinger or the
diff --git a/src/devices/input/getevent.jd b/src/devices/input/getevent.jd
index 8bf4093..fd39dbb 100644
--- a/src/devices/input/getevent.jd
+++ b/src/devices/input/getevent.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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 <code>getevent</code> tool runs on the device and provides information about input
 devices and a live dump of kernel input events.</p>
 <p>It is very useful tool for ensuring that device drivers are reporing the
diff --git a/src/devices/input/input-device-configuration-files.jd b/src/devices/input/input-device-configuration-files.jd
index 877053c..ffe9ba4 100644
--- a/src/devices/input/input-device-configuration-files.jd
+++ b/src/devices/input/input-device-configuration-files.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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>Input device configuration files (<code>.idc</code> files) contain device-specific
 configuration properties that affect the behavior of input devices.</p>
 <p>Input device configuration files are typically not necessary for standard
diff --git a/src/devices/input/key-character-map-files.jd b/src/devices/input/key-character-map-files.jd
index 6872cdb..d485707 100644
--- a/src/devices/input/key-character-map-files.jd
+++ b/src/devices/input/key-character-map-files.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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>Key character map files (<code>.kcm</code> files) are responsible for mapping combinations
 of Android key codes with modifiers to Unicode characters.</p>
 <p>Device-specific key layout files are <em>required</em> for all internal (built-in)
diff --git a/src/devices/input/key-layout-files.jd b/src/devices/input/key-layout-files.jd
index d353d08..2b7cd53 100644
--- a/src/devices/input/key-layout-files.jd
+++ b/src/devices/input/key-layout-files.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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>Key layout files (<code>.kl</code> files) are responsible for mapping Linux key codes
 and axis codes to Android key codes and axis codes and specifying associated
 policy flags.</p>
diff --git a/src/devices/input/keyboard-devices.jd b/src/devices/input/keyboard-devices.jd
index 74bafaa..267ae42 100644
--- a/src/devices/input/keyboard-devices.jd
+++ b/src/devices/input/keyboard-devices.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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>Android supports a variety of keyboard devices including special function
 keypads (volume and power controls), compact embedded QWERTY keyboards,
 and fully featured PC-style external keyboards.</p>
diff --git a/src/devices/input/overview.jd b/src/devices/input/overview.jd
index 118fabf..11cdf97 100644
--- a/src/devices/input/overview.jd
+++ b/src/devices/input/overview.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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 Android input subsystem nominally consists of an event pipeline
 that traverses multiple layers of the system.</p>
 <h2 id="input-pipeline">Input Pipeline</h2>
diff --git a/src/devices/input/touch-devices.jd b/src/devices/input/touch-devices.jd
index 298ba15..bb78d35 100644
--- a/src/devices/input/touch-devices.jd
+++ b/src/devices/input/touch-devices.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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>Android supports a variety of touch screens and touch pads, including
 stylus-based digitizer tablets.</p>
 <p>Touch screens are touch devices that are associated with a display such that
diff --git a/src/devices/input/validate-keymaps.jd b/src/devices/input/validate-keymaps.jd
index 6a907a1..4a099d4 100644
--- a/src/devices/input/validate-keymaps.jd
+++ b/src/devices/input/validate-keymaps.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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 Android framework has a small tool called <code>validatekeymaps</code> to validate the
 syntax of input device configuration files, key layout files, key character
 maps files and virtual key definition files.</p>
diff --git a/src/devices/sensors/sensor-types.jd b/src/devices/sensors/sensor-types.jd
index 7ebac25..baa2f76 100644
--- a/src/devices/sensors/sensor-types.jd
+++ b/src/devices/sensors/sensor-types.jd
@@ -608,7 +608,7 @@
   Gyroscope</p>
 <p>Reporting-mode: <em><a href="report-modes.html#continuous">Continuous</a></em></p>
 <p><code>getDefaultSensor(SENSOR_TYPE_ORIENTATION)</code> <em>returns a non-wake-up sensor</em></p>
-<p>Note: This is an older sensor type that has been deprecated in the Android SDK.
+<p class="note"><strong>Note:</strong> This is an older sensor type that has been deprecated in the Android SDK.
   It has been replaced by the rotation vector sensor, which is more clearly
   defined. Use the rotation vector sensor over the orientation sensor whenever
   possible.</p>
diff --git a/src/devices/sensors/versioning.jd b/src/devices/sensors/versioning.jd
index 130c58c..8fb2af0 100644
--- a/src/devices/sensors/versioning.jd
+++ b/src/devices/sensors/versioning.jd
@@ -129,12 +129,12 @@
 <p>For continuous sensors, set it to the maximum sampling period allowed in
 microseconds.</p>
 
-<p>Note:</p>
+<p>The following are applicable for <code>period_ns</code>, <code>maxDelay</code>, and <code>minDelay</code>:</p>
 <ul>
 <li><code>period_ns</code> is in nanoseconds whereas
 <code>maxDelay</code>/<code>minDelay</code> are in microseconds.</li>
-<li><code>maxDelay </code>should always fit within a 32-bit signed integer. It
-is declared as 64 bit on 64 bit architectures only for binary compatibility reasons.</li>
+<li><code>maxDelay</code> should always fit within a 32-bit signed integer. It
+is declared as 64-bit on 64-bit architectures only for binary compatibility reasons.</li>
 </ul>
 
 <p><em>flags</em>: This field defines the reporting mode of the sensor and whether the sensor is
diff --git a/src/devices/storage/config-example.jd b/src/devices/storage/config-example.jd
index 347d8d5..fd55db8 100644
--- a/src/devices/storage/config-example.jd
+++ b/src/devices/storage/config-example.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,13 @@
     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>Below are examples of external storage configurations as of Android 4.4
 for various typical devices. Only the relevant portions of the configuration
diff --git a/src/devices/storage/index.jd b/src/devices/storage/index.jd
index e8786ec..894e85b 100644
--- a/src/devices/storage/index.jd
+++ b/src/devices/storage/index.jd
@@ -16,6 +16,13 @@
     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>
 
 <img style="float: right; margin: 0px 15px 15px 15px;" src="images/ape_fwk_hal_extstor.png" alt="Android external storage HAL icon"/>
 
diff --git a/src/devices/tech/admin/images/multi-user-perms.png b/src/devices/tech/admin/images/multi-user-perms.png
new file mode 100644
index 0000000..f955ddc
--- /dev/null
+++ b/src/devices/tech/admin/images/multi-user-perms.png
Binary files differ
diff --git a/src/devices/tech/admin/implement.jd b/src/devices/tech/admin/implement.jd
new file mode 100644
index 0000000..03ce93c
--- /dev/null
+++ b/src/devices/tech/admin/implement.jd
@@ -0,0 +1,147 @@
+page.title=Implementing Device Administration
+@jd:body
+
+<!--
+    Copyright 2015 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>This page walks you through the many features in Android 5.0 and higher
+platform release that need to be enabled and validated on devices to make them
+ready for managed profile and device owner user cases that are essential to using
+them in a corporate environment. In addition to the related Android Open Source
+Project (AOSP) code, there are a number of additional components required for a
+device to function with managed profiles.</p>
+
+<h2 id=requirements>Requirements</h2>
+
+<p>The following uses-feature need to be defined:</p>
+
+<pre>
+android.software.managed_users
+android.software.device_admin
+</pre>
+
+<p>Confirm with: <code>adb shell pm list features</code></p>
+
+<p>It should not be a low-RAM device, meaning <code>ro.config.low_ram</code>
+should not be defined. The framework automatically limits the number of users
+to 1 when the <code>low_ram</code> flag is defined.</p>
+
+<p>By default, only applications that are essential for correct operation of the
+profile should be enabled as part of provisioning a managed device.</p>
+
+<p>OEMs must ensure the managed profile or device has all required applications by
+modifying:</p>
+
+<pre>
+vendor_required_apps_managed_profile.xml
+vendor_required_apps_managed_device.xml
+</pre>
+
+<p>Here are examples from a Nexus device:</p>
+
+<code>packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml</code>
+
+<pre>
+&lt;resources&gt;
+  &lt;!-- A list of apps to be retained on the managed device --&gt;
+  &lt;string-array name="vendor_required_apps_managed_device"&gt;
+    &lt;item&gt;com.android.vending&lt;/item&gt; &lt;!--­Google Play --&gt;
+    &lt;item&gt;com.google.android.gms&lt;/item&gt; &lt;!--­Required by Play --&gt;
+    &lt;item&gt;com.google.android.contacts&lt;/item&gt; &lt;!--­Google or OEM Contacts­--&gt;
+    &lt;item&gt;com.google.android.googlequicksearchbox&lt;/item&gt; &lt;!--­Google Launcher --&gt;
+    &lt;item&gt;com.google.android.launcher&lt;/item&gt; &lt;!--­Google Launcher or OEM Launcher --&gt;
+    &lt;item&gt;com.google.android.dialer&lt;/item&gt; &lt;!--­Google or OEM dialer to enable making phone calls --&gt;
+  &lt;/string-array&gt;
+&lt;/resources&gt;
+</pre>
+
+<code>
+packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml
+</code>
+
+<pre>
+&lt;resources&gt;
+    &lt;!-- A list of apps to be retained in the managed profile. This includes any Google experience apps required. --&gt;
+    &lt;string-array name="vendor_required_apps_managed_profile"&gt;
+        &lt;item&gt;com.android.vending&lt;/item&gt; &lt;!-- Google Play --&gt;
+        &lt;item&gt;com.google.android.gms&lt;/item&gt; &lt;!-- Required by Play --&gt;
+        &lt;item&gt;com.google.android.contacts&lt;/item&gt; &lt;!-- Google or OEM Contacts --&gt;
+    &lt;/string-array&gt;
+&lt;/resources&gt;
+</pre>
+
+<h3 id=launcher>Launcher</h3>
+
+<p>The launcher must support badging applications with the icon badge provided
+in the Android Open Source Project (AOSP) to represent the managed applications
+and other badge user interface elements such as recents and notifications.</p> 
+
+<p>Update the Launcher to support badging. If you use <a
+href="https://android.googlesource.com/platform/packages/apps/Launcher3/">launcher3</a>
+in AOSP as-is, then you likely already support this badging feature.
+</p>
+
+<h3 id=nfc>NFC</h3>
+
+<p>On devices with NFC, NFC must be enabled in the Android Setup Wizard and
+configured to accept managed provisioning intents:</p>
+
+<code>packages/apps/Nfc/res/values/provisioning.xml</code>
+
+<pre>
+&lt;bool name="enable_nfc_provisioning"&gt;true&lt;/bool&gt;
+&lt;item>application/com.android.managedprovisioning&lt;/item&gt;
+</pre>
+
+<h3 id=setup_wizard>Setup Wizard</h3>
+
+<p>The Android Setup Wizard needs to support device owner provisioning. When it
+opens, it needs to check if another process (such as device owner provisioning)
+has already finished the user setup. If this is the case, it needs to fire a
+home intent and finish the setup wizard. </p>
+
+<p>This intent will be caught by the provisioning application, which will then
+hand over control to the newly set device owner. This can be achieved by adding
+the following to your setup wizard’s main activity:</p>
+
+<pre>
+&#64;Override
+   protected void onStart() {
+        super.onStart();
+
+        // When returning to a setup wizard activity, check to see if another setup process
+        // has intervened and, if so, complete an orderly exit
+        boolean completed = Settings.Secure.getInt(getContentResolver(),
+                Settings.Secure.USER_SETUP_COMPLETE, 0) != 0;
+        if (completed) { 
+           startActivity(new Intent(Intent.ACTION_MAIN, null)
+                .addCategory(Intent.CATEGORY_HOME)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                        | Intent.FLAG_ACTIVITY_CLEAR_TASK
+                        | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED));
+           finish();
+       }
+
+       ...
+   }
+</pre>
diff --git a/src/devices/tech/admin/index.jd b/src/devices/tech/admin/index.jd
new file mode 100644
index 0000000..7798355
--- /dev/null
+++ b/src/devices/tech/admin/index.jd
@@ -0,0 +1,62 @@
+page.title=Device Administration
+@jd:body
+
+<!--
+    Copyright 2015 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>Devices running Android 5.0 and later with the managed_users feature
+declared can be used in a <a href="http://www.android.com/work/">corporate
+environment</a> under the auspices of each company’s information technology (IT)
+department. This is possible with the introduction of <a href="multi-user.html">multiple
+users</a>, <a href="managed-profiles.html">managed profiles</a>, and enterprise
+mobility management (EMM) applications, as well as enhancements to default
+<a
+href="{@docRoot}devices/tech/security/encryption/index.html">encryption</a>,
+<a
+href="{@docRoot}devices/tech/security/verifiedboot/index.html">verified
+boot</a>, and <a
+href="{@docRoot}devices/tech/security/selinux/index.html">SELinux</a>.</p>
+
+<p>With these enhancements, either users or their IT departments may create
+managed profiles that separate corporate employer data from personal user
+information. Follow the documents within this section of the site to properly
+implement corporate device administration.</p>
+
+<h2 id=summary>Summary</h2>
+
+<p>Follow this flow to employ device administration:</p>
+
+<ol>
+  <li>Gain an understanding of key concepts, such as <a
+href="multi-user.html">multiple users</a> and <a
+href="managed-profiles.html">managed profiles</a>.
+  <li><a href="implement.html">Implement device administration</a> via custom
+overlay files.
+  <li><a href="testing-setup.html">Test</a> and validate your devices with EMM providers and applications.
+</ol>
+
+<h2 id=supporting_documentation>Supporting documentation</h2>
+
+<p><a href="http://developer.android.com/guide/topics/admin/device-admin.html">Device Administration API</a></p>
+
+<p><a href="https://developer.android.com/training/enterprise/index.html">Building Apps for Work</a></p>
diff --git a/src/devices/tech/admin/managed-profiles.jd b/src/devices/tech/admin/managed-profiles.jd
new file mode 100644
index 0000000..c36510e
--- /dev/null
+++ b/src/devices/tech/admin/managed-profiles.jd
@@ -0,0 +1,170 @@
+page.title=Employing Managed Profiles
+@jd:body
+
+<!--
+    Copyright 2015 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>A <em>managed profile</em> or <em>work profile</em> is an Android <a
+href="multi-user.html">user</a> with some additional special properties around
+management and visual aesthetic.</p>
+
+<h2 id=purpose>DevicePolicyManager APIs</h2>
+
+<p>Android 5.x or newer offers a greatly improved DevicePolicyManager with dozens of new
+APIs to support both corporate-owned and bring your own device (BYOD)
+administration use cases. Examples include app restrictions, silent
+installation of certificates, and cross-profile sharing intent access control.
+You may use the sample Device Policy Client (DPC) app, <a
+href="https://developer.android.com/samples/BasicManagedProfile/index.html">BasicManagedProfile.apk</a>,
+as a starting point. See <a
+href="https://developer.android.com/training/enterprise/work-policy-ctrl.html">Building
+a Work Policy Controller</a> for additional details.
+
+<h2 id=purpose>Purpose</h2>
+
+<p>The primary goal of a managed profile is to create a segregated and secure
+space for managed (for example, corporate) data to reside. The administrator of
+the profile has full control over scope, ingress, and egress of data as well as
+its lifetime. These policies offer great powers and therefore fall upon the
+managed profile instead of the device administrator.</p>
+
+<ul>
+  <li><strong>Creation</strong> - Managed profiles can be created by any application in the primary user. The
+user is notified of managed profile behaviors and policy enforcement before
+creation.
+  <li><strong>Management</strong> - Management is performed by applications that programmatically invoke APIs in
+the <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">DevicePolicyManager</a> class to restrict use. Such applications are referred to as <em>profile owners</em> and are defined at initial profile setup. Policies unique to managed profile
+involve app restrictions, updatability, and intent behaviors.
+  <li><strong>Visual treatment</strong> - Applications, notifications, and widgets from the managed profile are always
+badged and typically made available inline with user interface (UI) elements
+from the primary user.
+</ul>
+
+<h2 id=data_segregation>Data Segregation </h2>
+
+<h3 id=applications>Applications</h3>
+
+<p>Applications are scoped with their own segregated data when the same app exists
+in the primary user and managed profile. Generally, applications cannot
+communicate directly with one another across the profile-user boundary and act
+independently of one another.</p>
+
+<h3 id=accounts>Accounts</h3>
+
+<p>Accounts in the managed profile are distinctly unique from the primary user.
+There is no way to access credentials across the profile-user boundary. Only
+apps in their respective context are able to access their respective accounts.</p>
+
+<h3 id=intents>Intents</h3>
+
+<p>The administrator controls whether intents are resolved in/out of managed
+profile or not. Applications from the managed profile are default scoped to
+stay within the managed profile exception of the Device Policy API.</p>
+
+<h3 id=settings>Settings</h3>
+
+<p>Enforcement of settings is generally scoped to the managed profile with a few
+exceptions. Specifically, lockscreen and encryption settings are still scoped
+to the device and shared between the primary user and managed profile.
+Otherwise, a profile owner does not have any device administrator privileges
+outside the managed profile.</p>
+
+<p>Managed profiles are implemented as a new kind of secondary user, such that:</p>
+
+<pre>
+uid = 10000 * userid + appid
+</pre>
+
+
+<p>They have separate app data like regular users:</p>
+
+<pre>
+/data/user/&lt;userid&gt;
+</pre>
+
+<p>The UserId is calculated for all system requests using <code>Binder.getCallingUid()</code>, and all system state and responses are separated by userId. You may consider
+instead using <code>Binder.getCallingUserHandle</code> rather than <code>getCallingUid</code> to avoid confusion between uid and userId.</p>
+
+<p>The AccountManagerService maintains a separate list of accounts for each user.</p>
+
+<p>The main differences between a managed profile and a regular secondary user are
+as follows:</p>
+
+<ul>
+  <li> The managed profile is associated with its parent user and started alongside
+the primary user at boot time.
+  <li> Notifications for managed profiles are enabled by ActivityManagerService
+allowing the managed profile to share the activity stack with the primary user.
+  <li> Some other system services shared are: IME, A11Y services, Wi-Fi, and NFC.
+  <li> New Launcher APIs allow launchers to display badged apps and whitelisted
+widgets from the managed profile alongside apps in the primary profile without
+switching users.
+</ul>
+
+<h2 id=device_administration>Device administration</h2>
+
+<p>Android device administration includes two new types of device administrators for
+enterprises:</p>
+
+<ul>
+  <li><em>Profile owner</em>—Designed for bring your own device (BYOD) environments
+  <li><em>Device Owner</em>—Designed for corp-liable environments
+</ul>
+
+<p>The majority of the new device administrator APIs that have been added for
+Android 5.0 are available only to profile or device owners. Traditional device
+administrators remain but are applicable to the simpler consumer-only case
+(e.g. find my device).</p>
+
+<h3 id=profile_owners>Profile owners</h3>
+
+<p>A Device Policy Client (DPC) app typically functions as the profile owner. The
+DPC app is typically provided by an enterprise mobility management (EMM)
+partner, such as Google Apps Device Policy.</p>
+
+<p>The profile owner app creates a managed profile on the device by sending the
+<code>ACTION_PROVISION_MANAGED_PROFILE</code> intent. This profile is
+distinguished by the appearance of badged instances of
+apps, as well as personal instances. That badge, or Android device
+administration icon, identifies which apps are work apps.</p>
+
+<p>The EMM has control only over the managed profile (not personal space) with some
+exceptions, such as enforcing the lock screen.</p>
+
+<h3 id=device_owners>Device owners</h3>
+
+<p>The device owner can be set only in an unprovisioned device:</p>
+
+<ul>
+  <li>Can be provisioned only at initial device setup
+  <li>Enforced disclosure always displayed in quick-settings
+</ul>
+
+<p>Device owners can conduct some tasks profile owners cannot, and here are a few examples:</p>
+
+<ul>
+  <li>Wipe device data
+  <li>Disable Wi-Fi/ BT
+  <li>Control <code>setGlobalSetting</code>
+  <li><code>setLockTaskPackages</code> (the ability to whitelist packages that can pin themselves to the foreground)
+</ul>
diff --git a/src/devices/tech/admin/multi-user.jd b/src/devices/tech/admin/multi-user.jd
new file mode 100644
index 0000000..8319be0
--- /dev/null
+++ b/src/devices/tech/admin/multi-user.jd
@@ -0,0 +1,162 @@
+page.title=Supporting Multiple Users
+@jd:body
+
+<!--
+    Copyright 2015 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>This document describes the Android multi-user feature. It allows more than one
+user on a single Android device by separating their accounts and application
+data. For instance, parents may let their children use the family tablet. Or a
+critical team might share a mobile device for on-call duty.</p>
+
+<h1 id=definitions>Definitions</h1>
+
+<p>Before supporting multiple Android users, you should understand the basic
+concepts involved. Here are the primary terms used when describing Android
+users and accounts:</p>
+
+<ul>
+  <li><em>User</em> - Each user is intended to be used by a different physical person. Each user
+has distinct application data and some unique settings, as well as a user
+interface to explicitly switch between users. A user can run in the background
+when another user is active; the system manages shutting down users to conserve
+resources when appropriate. Secondary users can be created either directly via
+the primary user interface or from a <a
+href="https://developer.android.com/guide/topics/admin/device-admin.html">Device
+Administration</a> application.
+  <li><em>Account</em> - Accounts are contained within a user but are not defined by a user. Nor is a
+user defined by or linked to any given account. Users and profiles contain
+their own unique accounts but are not required to have accounts to be
+functional. The list of accounts differs by user. See the <a href="https://developer.android.com/reference/android/accounts/Account.html">Account class</a> definition.
+  <li><em>Profile<strong></em> </strong>- A profile has separated app data but shares some system-wide settings (for
+example, Wi-Fi and Bluetooth). A profile is a subset of and tied to the
+existence of a user. A user can have multiple profiles. They are created
+through a <a href="https://developer.android.com/guide/topics/admin/device-admin.html">Device
+Administration</a> application. A profile always has an immutable
+association to a ‘parent’ user, defined by the user that created the profile.
+Profiles do not live beyond the lifetime of the creating user.
+  <li><em>App</em> - An application’s data exists within each associated user. App data is
+sandboxed from other applications within the same user. Apps within the same
+user can interact with each other via IPC. See <a href="https://developer.android.com/training/enterprise/index.html">Building Apps for Work</a>.
+</ul>
+
+<h2 id=user_types>User types</h2>
+
+<ul>
+  <li><em>Primary</em> - The first user added to a device. The primary user cannot be removed except
+by factory reset. This user also has some special privileges and settings only
+it can set. The primary user is always running even when other users are in the
+foreground.
+  <li><em>Secondary</em> - Any user added to the device other than the primary user. They can be
+removed by either themselves or the primary user and cannot impact other users
+on a device. Secondary users can run in the background and will continue to
+have network connectivity when they do.
+  <li><em>Guest<strong></em> </strong>- A guest user is a temporary secondary user with an explicit option to quick
+delete the guest user when its usefulness is over. There can be only one guest
+user at a time.
+</ul>
+
+<h2 id=profile_types>Profile types</h2>
+
+<ul>
+  <li><em>Managed<strong></em> </strong>- Managed profiles are created by an application to contain work data and
+apps. They are managed exclusively by the ‘profile owner’, the app who created
+the corp profile. Launcher, notifications and recent tasks are shared by the
+primary user and the corp profile.
+  <li><em>Restricted</em> - Restricted profiles use the accounts based off the primary user. The Primary
+user can control what apps are available on the restricted profile. Restricted
+profiles are available only on tablets.
+</ul>
+
+<h1 id=effects>Effects</h1>
+
+<p>When users are added to a device, some functionality will be curtailed when
+another user is in the foreground. Since app data is separated by user, the
+state of those apps differs by user. For example, email destined for an account
+of a user not currently in focus won’t be available until that user and account
+are active on the device.</p>
+
+<p>The default state is only the primary user has full access to phone calls and
+texts. The secondary user may receive inbound calls but cannot send or receive
+texts. The primary user must enable these functions for others.</p>
+
+ <p class="note"><strong>Note</strong>: To enable or disable the phone and SMS functions for a secondary user, go to
+Settings > Users, select the user, and switch the <em>Allow phone calls and SMS</em> setting to off.</p>
+
+<p>Please note, some restrictions exist when a secondary user is in background.
+For instance, the background secondary user will not be able to display the
+user interface or make Bluetooth services active. Finally, background secondary
+users will be halted by the system process if the device needs additional
+memory for operations in the foreground user.</p>
+
+<p>Here are aspects of behavior to keep in mind when employing multiple users on
+an Android device:</p>
+
+<ul>
+  <li>Notifications appear for all accounts of a single user at once.
+  <li>Notifications for other users do not appear until they are active.
+  <li>Each user gets his or her own workspace to install and place apps.
+  <li>No user has access to the app data of another user.
+  <li>Any user can affect the installed apps for all users.
+  <li>The primary user can remove apps or even the entire workspace established by
+secondary users.
+</ul>
+
+<h1 id=implementation>Implementation</h1>
+
+<h2 id=managing_users>Managing users</h2>
+
+<p>Management of users and profiles (with the exception of restricted profiles) is
+performed by applications that programmatically invoke API in the <code>DevicePolicyManager</code> class to restrict use.</p>
+
+<p>Schools and enterprises may employ users and profiles to manage the lifetime
+and scope of apps and data on devices. They may use the types outlined above in
+conjunction with the <a href="http://developer.android.com/reference/android/os/UserManager.html">UserManager API</a> to build unique solutions tailored to their use cases.</p>
+
+<h2 id=applying_the_overlay>Applying the overlay</h2>
+
+<p>The multi-user feature is disabled by default in the Android 5.0 release. To
+enable it, device manufacturers must define a resource overlay that replaces
+the following values in frameworks/base/core/res/res/values/config.xml:</p>
+
+<pre>
+&lt;!--  Maximum number of supported users --&gt;
+&lt;integer name="config_multiuserMaximumUsers"&gt;1&lt;/integer&gt;
+&lt;!--  Whether Multiuser UI should be shown --&gt;
+&lt;bool name="config_enableMultiUserUI"&gt;false&lt;/bool&gt;
+</pre>
+
+<p>To apply this overlay and enable guest and secondary users on the device, use the
+<code>DEVICE_PACKAGE_OVERLAYS</code> feature of the Android build system to:</p>
+
+<ul>
+  <li> Replace the value for <code>config_multiuserMaximumUsers</code> with one greater than 1
+  <li> Replace the value of <code>config_enableMultiUserUI</code> with: <code>true</code>
+</ul>
+
+<p>Device manufacturers may decide upon the maximum number of users.</p>
+
+<p>That said, if device manufacturers or others have modified settings, they need
+to ensure SMS and telephony work as defined in the <a
+href="{@docRoot}compatibility/android-cdd.pdf">Android Compatibility Definition
+Document</a> (CDD).</p>
diff --git a/src/devices/tech/admin/multiuser-apps.jd b/src/devices/tech/admin/multiuser-apps.jd
new file mode 100644
index 0000000..6577bcf
--- /dev/null
+++ b/src/devices/tech/admin/multiuser-apps.jd
@@ -0,0 +1,104 @@
+page.title=Building Multiuser-Aware Apps
+@jd:body
+
+<!--
+    Copyright 2015 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>When a device supports <a href="multi-user.html">multiple users</a>, its apps must be made aware of these distinct users.</p>
+
+<p>Certain apps need to have some components run as singletons and can accept
+requests from any user. Only system apps can currently use this feature.</p>
+
+<p>This facility:</p>
+
+<ul>
+  <li>Conserves resources
+  <li>Arbitrates one or more shared resources across users
+  <li>Reduces network overhead by using a single server connection
+</ul>
+
+<p>See the diagram below for a depiction of permissions flow with multiple users.</p>
+
+<p><img src="images/multi-user-perms.png" alt="Multiple users permissions flow" />
+<p class="img-caption"><strong>Figure 1.</strong> Multiple users permissions</p>
+
+<h2 id=enabling_a_singleton_component>Enabling a singleton component</h2>
+
+<p>To identify an app as a singleton, Add <code>android:singleUser=”true”</code> to your service or provider in the Android manifest.</p>
+
+<p>The system will instantiate that component in the process running as user 0
+only. Any requests to connect to that provider or service from any user will be
+routed to the process in user 0. If this is the only component in your app,
+only one instance of your app will run.</p>
+
+<p>Activities in your package will still be launched in a separate process for
+each user, with the UID being in the UID range for that user (such as 1010034).</p>
+
+<h2 id=interacting_with_users>Interacting with users</h2>
+
+<h3 id=perms_required>Set permissions</h3>
+
+<p>These permissions are required</p>
+
+<pre>
+INTERACT_ACROSS_USERS (signature|system)
+INTERACT_ACROSS_USERS_FULL (signature)
+</pre>
+
+<h3 id=apis>Employ APIs</h3>
+
+<p>Use the following APIs to make apps aware of multiple users.</p>
+
+<ol>
+  <li> Extract the user handle from incoming Binder calls:
+  <ul>
+    <li> <code>int userHandle = UserHandle.getCallingUserId()</code>
+  </ul>
+  <li> Use new, protected APIs to start services, activities, broadcasts on a specific
+user: 
+  <ul>
+    <li><code>Context.startActivityAsUser(Intent, UserHandle)</code>
+    <li><code>Context.bindServiceAsUser(Intent, …, UserHandle)</code>
+    <li><code>Context.sendBroadcastAsUser(Intent, … , UserHandle)</code>
+    <li><code>Context.startServiceAsUser(Intent, …, UserHandle)
+UserHandle</code> can be an explicit user or one of the special handles: <code>UserHandle.CURRENT</code> or <code>UserHandle.ALL</code>. <code>CURRENT</code> indicates the user that is currently in the foreground. You can use <code>ALL</code> when you want to send a broadcast to all users.
+  </ul>
+  <li>Communicate with components in your own app:
+<code>(INTERACT_ACROSS_USERS)</code>
+Or with components in other apps:
+<code>(INTERACT_ACROSS_USERS_FULL)</code>
+  <li>You may need to create proxy components that run in the user’s process that
+then access the <code>singleUser</code> component in user 0.
+  <li>Query users and their handles with the new <code>UserManager</code> system service:
+  <ul>
+    <li><code>UserManager.getUsers()</code>
+    <li><code>UserManager.getUserInfo()</code>
+    <li><code>UserManager.supportsMultipleUsers()</code>
+    <li><code>UserManager.getUserSerialNumber(int userHandle)</code> - a non-recycled number that corresponds to a user handle.
+    <li><code>UserManager.getUserHandle(int serialNumber)</code>
+    <li><code>UserManager.getUserProfiles() </code>- returns the collection of self and managed profiles, if any.
+  </ul>
+  <li>Register to listen to specific or all users and the callbacks with new APIs on
+ContentObserver, PackageMonitor, BroadcastReceiver that provide additional
+information about which user has caused the callback.
+</ol>
diff --git a/src/devices/tech/admin/provision.jd b/src/devices/tech/admin/provision.jd
new file mode 100644
index 0000000..62b898e
--- /dev/null
+++ b/src/devices/tech/admin/provision.jd
@@ -0,0 +1,168 @@
+page.title=Provisioning for Device Administration
+@jd:body
+
+<!--
+    Copyright 2015 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>This page describes the process for deploying devices to corporate users.</p>
+
+<p>Device owner provisioning can be accomplished over NFC or with an activation
+code. See <a href="implement.html">Implementing Device Administration</a> for
+the complete list of requirements.</p>
+
+<p>Download the <a
+href="https://github.com/googlesamples/android-NfcProvisioning">NfcProvisioning
+APK</a> and <a
+href="https://github.com/googlesamples/android-DeviceOwner">Android-DeviceOwner
+APK</a>.</p>
+
+<h2 id=managed_provisioning>Managed Provisioning</h2>
+
+<p>Managed Provisioning is a framework UI flow to ensure users are adequately
+informed of the implications of setting a device owner or managed profile. You can
+think of it as a setup wizard for managed profiles.</p>
+
+<p class="note"><strong>Note:</strong> Remember, the device owner can be set
+only from an unprovisioned device. If
+<code>Settings.Secure.USER_SETUP_COMPLETE</code> has ever been set, then the
+device is considered provisioned & device owner cannot be set.</p>
+
+<p>Please note, devices that enable default encryption offer considerably
+simpler/quicker device administration provisioning flow. The managed provisioning
+component:</p>
+
+<ul>
+  <li>Encrypts the device</li>
+  <li>Creates the managed profile</li>
+  <li>Disables non-required applications</li>
+  <li>Sets the enterprise mobility management (EMM) app as profile owner</li>
+</ul>
+
+<p>In turn, the EMM app:</p>
+
+<ul>
+  <li>Adds user accounts</li>
+  <li>Enforces device compliance</li>
+  <li>Enables any additional system applications</li>
+</ul>
+
+<p>In this flow, managed provisioning triggers device encryption. The framework
+  copies the EMM app into the managed profile as part of managed provisioning.
+  The instance of the EMM app inside of the managed profile gets a callback from the
+framework when provisioning is done.</p>
+
+<p>The EMM can then add accounts and enforce policies; it then calls
+<code>setProfileEnabled()</code>, which makes the launcher icons visible.</p>
+
+<h2 id=profile_owner_provisioning>Profile Owner Provisioning</h2>
+
+<p>Profile owner provisioning assumes the user of the device oversees its
+management (and not a company IT department). To enable, profile owner
+provisioning, you must send an intent with appropriate extras. See the <a href="https://developer.android.com/samples/BasicManagedProfile/index.html">BasicManagedProfile.apk</a> for an example.</p>
+
+<p>Mobile Device Management (MDM) applications trigger the creation of the managed
+profile by sending an intent with action:</p>
+
+<p><a href="https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/admin/DevicePolicyManager.java">DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE</a></p>
+
+<p>Here is a sample intent that will trigger the creation of the managed profile
+and set the DeviceAdminSample as the profile owner:</p>
+
+<pre>
+adb shell am start -a android.app.action.PROVISION_MANAGED_PROFILE \
+          -c android.intent.category.DEFAULT \
+	      -e wifiSsid $(printf '%q' \"GoogleGuest\") \
+          -e deviceAdminPackage "com.google.android.deviceadminsample" \
+	      -e android.app.extra.deviceAdminPackageName $(printf '%q'
+                        .DeviceAdminSample\$DeviceAdminSampleReceiver) \
+	      -e android.app.extra.DEFAULT_MANAGED_PROFILE_NAME "My Organisation"
+</pre>
+
+<h2 id=device_owner_provisioning_via_nfc>Device Owner Provisioning via NFC</h2>
+
+<p>Device owner provisioning via NFC is similar to the profile owner method but
+requires more bootstrapping before managed provisioning.</p>
+
+<p>To use this method, <a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">NFC bump</a> the device from the first page of setup wizard (SUW). This offers a low-touch
+flow and configures Wi-Fi, installs the DPC, and sets the DPC as device owner.</p>
+
+<p>Here is the typical NFC bundle:</p>
+
+<pre>
+                EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME
+                EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_LOCATION
+                EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM
+                EXTRA_PROVISIONING_WIFI_SSID
+                EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
+</pre>
+
+<p>The device must have NFC configured to accept the managed provisioning mimetype
+from SUW:</p>
+
+<pre>
+/packages/apps/Nfc/res/values/provisioning.xml
+
+      &lt;bool name="enable_nfc_provisioning"&gt;true&lt;/bool&gt;
+      &lt;item&gt;application/com.android.managedprovisioning&lt;/item&gt;
+</pre>
+
+<h2 id=device_owner_provisioning_with_activation_code>Device Owner Provisioning with Activation Code</h2>
+
+<p>Select <em>Add Work Account</em> from the setup wizard. This triggers a
+lookup of the EMM from Android servers.</p>
+
+<p>The device installs the EMM app and starts provisioning flow. As an extra
+option, Android device administration supports the option of using email
+address with a six-digit activation code to bootstrap the process as part of
+setup wizard.</p>
+
+<h2 id=emm_benefits>EMM benefits</h2>
+
+<p>An EMM can help by conducting these tasks for you:</p>
+
+<ul>
+  <li>Provision managed profile
+  <li>Apply security policies
+  <ul>
+    <li>Set password complexity
+    <li>Lockdowns: disable screenshots, sharing from managed profile, etc.
+  </ul>
+  <li>Configure enterprise connectivity
+  <ul>
+    <li>Use WifiEnterpriseConfig to configure corporate Wi-Fi
+    <li>Configure VPN on the device
+    <li>Use DPM.setApplicationRestrictions() to configure corporate VPN
+  </ul>
+  <li>Enable corporate app Single Sign-On (SSO)
+  <ul>
+    <li>Install desired corporate apps
+    <li>Use DPM.installKeyPair()to silently install corp client certs
+    <li>Use DPM.setApplicationRestrictions() to configure hostnames, cert alias’ of
+corporate apps
+  </ul>
+</ul>
+
+<p>Managed provisioning is just one piece of the EMM end-to-end workflow, with the
+  end goal being to make corporate data accessible to apps in the managed profile.</p>
+
+<p>See <a href="https://docs.google.com/document/d/1xWdZHjsDB_4FWQcHfPh84EuTvljoMgrc2JINGMBtDQg/edit#">Manual Setup for Device Owner Testing</a> for testing instructions.</p>
diff --git a/src/devices/tech/admin/testing-setup.jd b/src/devices/tech/admin/testing-setup.jd
new file mode 100644
index 0000000..678c04b
--- /dev/null
+++ b/src/devices/tech/admin/testing-setup.jd
@@ -0,0 +1,93 @@
+page.title=Setting up Device Testing
+@jd:body
+
+<!--
+    Copyright 2015 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>These are the essential elements that must exist for OEM devices to ensure
+minimal support for managed profiles:</p>
+
+<ul>
+  <li>Profile Owner as described in <a
+href="https://developer.android.com/training/enterprise/app-compatibility.html">Ensuring
+Compatibility with Managed Profiles</a>
+  <li>Device Owner
+  <li>Activation Code Provisioning
+  </ul>
+<p>See <a href="implement.html">Implementing Device Administration</a> for the complete list of requirements.</p>
+
+<h2 id=summary>Summary</h2>
+<p>To test your device administration features:</p>
+
+<ol>
+  <li>For device owner, use the  <a
+href="https://developer.android.com/samples/BasicManagedProfile/index.html">BasicManagedProfile.apk</a>
+test app.
+  <li>Consider working with other enterprise mobility management (EMM) providers
+directly.
+</ol>
+
+<h2 id=set_up_the_device_owner_for_testing>Set up the device owner for testing</h2>
+<ol>
+  <li>Device MUST be built with <strong>userdebug</strong> or <strong>eng</strong> build.
+  </li>
+  <li>Factory reset the target device (and continue with the next steps in the
+    meantime).
+  </li>
+      <li>Download <a
+        href="http://developer.android.com/downloads/samples/BasicManagedProfile.zip">BasicManagedProfile.zip</a>. (Also see the <a
+        href="http://developer.android.com/samples/BasicManagedProfile/index.html">BasicManagedProfile</a> documentation.)</li>
+      <li>Unzip the file.
+      <li>Navigate (<code>cd</code>) to the unzipped directory.</li>
+      <li>If you don't have it, download the <a href="http://developer.android.com/sdk/index.html#Other">Android SDK Tools</a> package.</li>
+      <li>Create a file with the name <code>local.properties</code> containing the following single
+        line:<br>
+        <code>sdk.dir=<em>&lt;path to your android SDK folder&gt;</em></code><br>
+      <li>On Linux and Mac OS, run:<br>
+        <code>./gradlew assembleDebug</code><br>
+        Or on windows run:<br>
+        <code>gradlew.bat assembleDebug</code></li>
+      <li>If the build is unsuccessful because you have an outdated android SDK, run:<br>
+        <code><em>&lt;your android sdk folder&gt;</em>/tools/android update sdk -u -a</code></li>
+      <li>Wait for factory reset to complete if it hasn’t yet.<br>
+	<p class="Caution"><strong>Caution</strong>: Stay on the first screen
+        after factory reset and do not finish the setup wizard.</li>
+      <li>Install the BasicManagedProfile app by running the following command:<br>
+        <code>adb install ./Application/build/outputs/apk/Application-debug.apk </code>
+      </li>
+  <li>Set this app as the device owner by running this command:<br><code>$ adb shell am start -a
+    com.android.managedprovisioning.ACTION_PROVISION_MANAGED_DEVICE --es
+    android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME
+    com.example.android.basicmanagedprofile</code>
+  </li>
+  <li>Go through device owner setup on the device (encrypt, select Wi-Fi, etc.)</li>
+</ol>
+
+<h2 id=verify_the_device_owner_was_correctly_setup>Verify the device owner was correctly setup</h2>
+<ol>
+  <li>Go to <em>Settings > Security > Device Administrators</em>.
+  </li>
+  <li>Confirm the BasicManagedProfile is in the list and verify it cannot be
+    disabled. (This signifies it is a device owner.)
+  </li>
+</ol>
diff --git a/src/devices/tech/dalvik/dalvik-bytecode.jd b/src/devices/tech/dalvik/dalvik-bytecode.jd
index 5695440..f449bce 100644
--- a/src/devices/tech/dalvik/dalvik-bytecode.jd
+++ b/src/devices/tech/dalvik/dalvik-bytecode.jd
@@ -174,7 +174,7 @@
   <td>nop</td>
   <td>&nbsp;</td>
   <td>Waste cycles.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     Data-bearing pseudo-instructions are tagged with this opcode, in which
     case the high-order byte of the opcode unit indicates the nature of
     the data. See "<code>packed-switch-payload</code> Format",
@@ -209,7 +209,7 @@
   <td><code>A:</code> destination register pair (4 bits)<br/>
     <code>B:</code> source register pair (4 bits)</td>
   <td>Move the contents of one register-pair to another.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     It is legal to move from <code>v<i>N</i></code> to either
     <code>v<i>N-1</i></code> or <code>v<i>N+1</i></code>, so implementations
     must arrange for both halves of a register pair to be read before
@@ -222,7 +222,7 @@
   <td><code>A:</code> destination register pair (8 bits)<br/>
     <code>B:</code> source register pair (16 bits)</td>
   <td>Move the contents of one register-pair to another.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     Implementation considerations are the same as <code>move-wide</code>,
     above.</p>
   </td>
@@ -233,7 +233,7 @@
   <td><code>A:</code> destination register pair (16 bits)<br/>
     <code>B:</code> source register pair (16 bits)</td>
   <td>Move the contents of one register-pair to another.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     Implementation considerations are the same as <code>move-wide</code>,
     above.</p>
   </td>
@@ -425,7 +425,7 @@
   <td>monitor-exit vAA</td>
   <td><code>A:</code> reference-bearing register (8 bits)</td>
   <td>Release the monitor for the indicated object.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     If this instruction needs to throw an exception, it must do
     so as if the pc has already advanced past the instruction.
     It may be useful to think of this as the instruction successfully
@@ -446,7 +446,7 @@
     <code>B:</code> type index (16 bits)</td>
   <td>Throw a <code>ClassCastException</code> if the reference in the
     given register cannot be cast to the indicated type.
-    <p><b>Note:</b> Since <code>A</code> must always be a reference
+    <p class="note"><strong>Note:</strong> Since <code>A</code> must always be a reference
     (and not a primitive value), this will necessarily fail at runtime
     (that is, it will throw an exception) if <code>B</code> refers to a
     primitive type.</p>
@@ -461,7 +461,7 @@
   <td>Store in the given destination register <code>1</code>
     if the indicated reference is an instance of the given type,
     or <code>0</code> if not.
-    <p><b>Note:</b> Since <code>B</code> must always be a reference
+    <p class="note"><strong>Note:</strong> Since <code>B</code> must always be a reference
     (and not a primitive value), this will always result
     in <code>0</code> being stored if <code>C</code> refers to a primitive
     type.</td>
@@ -547,7 +547,7 @@
   <td>goto +AA</td>
   <td><code>A:</code> signed branch offset (8 bits)</td>
   <td>Unconditionally jump to the indicated instruction.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     The branch offset must not be <code>0</code>. (A spin
     loop may be legally constructed either with <code>goto/32</code> or
     by including a <code>nop</code> as a target before the branch.)</p>
@@ -558,7 +558,7 @@
   <td>goto/16 +AAAA</td>
   <td><code>A:</code> signed branch offset (16 bits)<br/></td>
   <td>Unconditionally jump to the indicated instruction.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     The branch offset must not be <code>0</code>. (A spin
     loop may be legally constructed either with <code>goto/32</code> or
     by including a <code>nop</code> as a target before the branch.)</p>
@@ -640,7 +640,7 @@
     <code>C:</code> signed branch offset (16 bits)</td>
   <td>Branch to the given destination if the given two registers' values
     compare as specified.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     The branch offset must not be <code>0</code>. (A spin
     loop may be legally constructed either by branching around a
     backward <code>goto</code> or by including a <code>nop</code> as
@@ -661,7 +661,7 @@
     <code>B:</code> signed branch offset (16 bits)</td>
   <td>Branch to the given destination if the given register's value compares
     with 0 as specified.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     The branch offset must not be <code>0</code>. (A spin
     loop may be legally constructed either by branching around a
     backward <code>goto</code> or by including a <code>nop</code> as
@@ -723,7 +723,7 @@
     <code>C:</code> instance field reference index (16 bits)</td>
   <td>Perform the identified object instance field operation with
     the identified field, loading or storing into the value register.
-    <p><b>Note:</b> These opcodes are reasonable candidates for static linking,
+    <p class="note"><strong>Note:</strong> These opcodes are reasonable candidates for static linking,
     altering the field argument to be a more direct offset.</p>
   </td>
 </tr>
@@ -750,7 +750,7 @@
     <code>B:</code> static field reference index (16 bits)</td>
   <td>Perform the identified object static field operation with the identified
     static field, loading or storing into the value register.
-    <p><b>Note:</b> These opcodes are reasonable candidates for static linking,
+    <p class="note"><strong>Note:</strong> These opcodes are reasonable candidates for static linking,
     altering the field argument to be a more direct offset.</p>
   </td>
 </tr>
@@ -788,7 +788,7 @@
     <code>interface</code> method, that is, on an object whose concrete
     class isn't known, using a <code>method_id</code> that refers to
     an <code>interface</code>.</p>
-    <p><b>Note:</b> These opcodes are reasonable candidates for static linking,
+    <p class="note"><strong>Note:</strong> These opcodes are reasonable candidates for static linking,
     altering the method argument to be a more direct offset
     (or pair thereof).</p>
   </td>
@@ -955,7 +955,7 @@
   <td>Perform the indicated binary op on the indicated register (first
     argument) and literal value (second argument), storing the result in
     the destination register.
-    <p><b>Note:</b>
+    <p class="note"><strong>Note:</strong>
     <code>rsub-int</code> does not have a suffix since this version is the
     main opcode of its family. Also, see below for details on its semantics.
     </p>
@@ -982,7 +982,7 @@
   <td>Perform the indicated binary op on the indicated register (first
     argument) and literal value (second argument), storing the result
     in the destination register.
-    <p><b>Note:</b> See below for details on the semantics of
+    <p class="note"><strong>Note:</strong> See below for details on the semantics of
     <code>rsub-int</code>.</p>
   </td>
 </tr>
@@ -1031,7 +1031,7 @@
 </tbody>
 </table>
 
-<p><b>Note:</b> The total number of code units for an instance of this
+<p class="note"><strong>Note:</strong> The total number of code units for an instance of this
 table is <code>(size * 2) + 4</code>.</p>
 
 <h2 id="sparse-switch">sparse-switch-payload format</h2>
@@ -1071,7 +1071,7 @@
 </tbody>
 </table>
 
-<p><b>Note:</b> The total number of code units for an instance of this
+<p class="note"><strong>Note:</strong> The total number of code units for an instance of this
 table is <code>(size * 4) + 2</code>.</p>
 
 <h2 id="fill-array">fill-array-data-payload format</h2>
@@ -1108,13 +1108,13 @@
 </tbody>
 </table>
 
-<p><b>Note:</b> The total number of code units for an instance of this
+<p class="note"><strong>Note:</strong> The total number of code units for an instance of this
 table is <code>(size * element_width + 1) / 2 + 4</code>.</p>
 
 
 <h2 id="math">Mathematical operation details</h2>
 
-<p><b>Note:</b> Floating point operations must follow IEEE 754 rules, using
+<p class="note"><strong>Note:</strong> Floating point operations must follow IEEE 754 rules, using
 round-to-nearest and gradual underflow, except where stated otherwise.</p>
 
 <table class="math">
diff --git a/src/devices/tech/dalvik/dex-format.jd b/src/devices/tech/dalvik/dex-format.jd
index bd167fb..5315db1 100644
--- a/src/devices/tech/dalvik/dex-format.jd
+++ b/src/devices/tech/dalvik/dex-format.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -275,7 +275,7 @@
                         = "dex\n035\0"
 </pre>
 
-<p><b>Note:</b> At least a couple earlier versions of the format have
+<p class="note"><strong>Note:</strong> At least a couple earlier versions of the format have
 been used in widely-available public software releases. For example,
 version <code>009</code> was used for the M3 releases of the
 Android platform (November&ndash;December 2007),
@@ -306,10 +306,10 @@
 <p>The constant <code>NO_INDEX</code> is used to indicate that
 an index value is absent.</p>
 
-<p><b>Note:</b> This value isn't defined to be
+<p class="note"><strong>Note:</strong> This value isn't defined to be
 <code>0</code>, because that is in fact typically a valid index.</p>
 
-<p><b>Also Note:</b> The chosen value for <code>NO_INDEX</code> is
+<p>The chosen value for <code>NO_INDEX</code> is
 representable as a single byte in the <code>uleb128p1</code> encoding.</p>
 
 <pre>
@@ -381,8 +381,8 @@
   <td>&nbsp;</td>
   <td>&nbsp;</td>
   <td><code>synchronized</code>: associated lock automatically acquired
-    around call to this method. <b>Note:</b> This is only valid to set when
-    <code>ACC_NATIVE</code> is also set.</td>
+    around call to this method. <p class="note"><strong>Note:</strong> This is only valid to set when
+    <code>ACC_NATIVE</code> is also set. </p></td>
 </tr>
 <tr>
   <td>ACC_VOLATILE</td>
@@ -482,8 +482,8 @@
   <td>0x20000</td>
   <td>&nbsp;</td>
   <td>&nbsp;</td>
-  <td>declared <code>synchronized</code>. <b>Note:</b> This has no effect on
-    execution (other than in reflection of this flag, per se).
+  <td>declared <code>synchronized</code>. <p class="note"><strong>Note:</strong> This has no effect on
+    execution (other than in reflection of this flag, per se).</p>
   </td>
 </tr>
 </tbody>
@@ -1567,7 +1567,7 @@
     followed by a byte of value <code>0</code>. See
     "MUTF-8 (Modified UTF-8) Encoding" above for details and
     discussion about the data format.
-    <p><b>Note:</b> It is acceptable to have a string which includes
+    <p class="note"><strong>Note:</strong> It is acceptable to have a string which includes
     (the encoded form of) UTF-16 surrogate code units (that is,
     <code>U+d800</code> &hellip; <code>U+dfff</code>)
     either in isolation or out-of-order with respect to the usual
@@ -1897,7 +1897,7 @@
 </tbody>
 </table>
 
-<p><b>Note:</b> All elements' <code>field_id</code>s and
+<p class="note"><strong>Note:</strong> All elements' <code>field_id</code>s and
 <code>method_id</code>s must refer to the same defining class.</p>
 
 <h3 id="encoded-field-format">encoded_field format</h3>
@@ -2381,7 +2381,7 @@
     to indicate that that value is unknown. (If <code>sig_idx</code> is
     <code>-1</code>, though, the same data could be represented more
     efficiently using the opcode <code>DBG_START_LOCAL</code>.)
-    <p><b>Note:</b> See the discussion under
+    <p class="note"><strong>Note:</strong> See the discussion under
     "<code>dalvik.annotation.Signature</code>" below for caveats about
     handling signatures.</p>
   </td>
@@ -2538,7 +2538,7 @@
 </tbody>
 </table>
 
-<p><b>Note:</b> All elements' <code>field_id</code>s and
+<p class="note"><strong>Note:</strong> All elements' <code>field_id</code>s and
 <code>method_id</code>s must refer to the same defining class.</p>
 
 <h3 id="field-annotation">field_annotation format</h3>
diff --git a/src/devices/tech/index.jd b/src/devices/tech/index.jd
index 62a1f59..10c42ab 100644
--- a/src/devices/tech/index.jd
+++ b/src/devices/tech/index.jd
@@ -30,14 +30,6 @@
 are looking to modify, contribute to, or port the Android software. This is
 "under the hood" information intended for engineers.</p>
 
-<h2 id="accessory-protocol-information">Accessories</h2>
-<p>Android devices can connect to hardware accessories, such as audio docks,
-keyboards and custom hardware, through USB or Bluetooth. This section
-describes the Android Open Accessory protocol (AOAP) for accessory hardware
-builders.</p>
-<p><a href="{@docRoot}accessories/index.html">&raquo; Accessory Protocol
-Information</a></p>
-
 <h2 id="art-technical-information">ART</h2>
 <p>The Android runtime (ART) is the heart of Android. It's a fast, ahead-of-time
 compiled runtime with modern garbage collection designed to scale.
@@ -61,6 +53,13 @@
 <p><a href="{@docRoot}devices/tech/debug/index.html">&raquo; Debugging
 Information</a></p>
 
+<h2 id="admin-information">Device Administration</h2>
+<p>Since Android 5.0, the platform supports use cases in a corporate
+environment under the auspices of each company’s information technology (IT)
+department.</p>
+<p><a href="{@docRoot}devices/tech/admin/index.html">&raquo; Device
+administration information</a></p>
+
 <h2 id="HAL-technical-information">HAL File Reference</h2>
 <p>Android's Hardware Abstraction Layer (HAL) provides the interface between
 software APIs and hardware drivers. This section contains the commented code
@@ -109,4 +108,4 @@
 slot into environments with existing build, test, and reporting
 infrastructures.</p>
 <p><a href="{@docRoot}devices/tech/test_infra/tradefed/index.html">
-&raquo; Trade Federation Testing Infrastructure Overview</a></p>
\ No newline at end of file
+&raquo; Trade Federation Testing Infrastructure Overview</a></p>
diff --git a/src/devices/tech/kernel.jd b/src/devices/tech/kernel.jd
index 637c5c4..e3f89bb 100644
--- a/src/devices/tech/kernel.jd
+++ b/src/devices/tech/kernel.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,7 +16,18 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<p>The kernel configuration settings in this document are meant to be used as a base for an Android kernel configuration. All devices should have the options in android-base configuration enabled. While not mandatory, the options in android-recommended configuration enable advanced Android 
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2>In this document</h2>
+    <ol id="auto-toc">
+    </ol>
+  </div>
+</div>
+
+<p>The kernel configuration settings in this document are meant to be used as a
+base for an Android kernel configuration. All devices should have the options
+in android-base configuration enabled. While not mandatory, the options in
+android-recommended configuration enable advanced Android 
 features.</p>
 
 <p>
diff --git a/src/devices/tech/power/index.jd b/src/devices/tech/power/index.jd
index c3a6a9a..c64676f 100644
--- a/src/devices/tech/power/index.jd
+++ b/src/devices/tech/power/index.jd
@@ -91,8 +91,7 @@
 nominal voltage using an external power monitor, such as a bench power supply or specialized
 battery-monitoring tools (such as Monsoon Solution Inc. Power Monitor and Power Tool software).</p>
 
-<p class="note">
-<strong>Note:</strong> Manufacturers often supply information about the current consumed by an
+<p class="note"><strong>Note:</strong> Manufacturers often supply information about the current consumed by an
 individual component. Use this information if it accurately represents the current drawn from the
 device battery in practice. However, validate manufacturer-provided values before
 using those values in your device power profile.</p>
diff --git a/src/devices/tech/resources.jd b/src/devices/tech/resources.jd
new file mode 100644
index 0000000..dade1a7
--- /dev/null
+++ b/src/devices/tech/resources.jd
@@ -0,0 +1,20 @@
+page.title=System Resources
+@jd:body
+
+<!--
+    Copyright 2015 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.
+-->
+
+<p> The following sections contain information, documentation, tips and tricks about Android system resources.</p>
diff --git a/src/devices/tech/security/images/android_software_stack.png b/src/devices/tech/security/images/android_software_stack.png
new file mode 100644
index 0000000..170ea33
--- /dev/null
+++ b/src/devices/tech/security/images/android_software_stack.png
Binary files differ
diff --git a/src/devices/tech/security/images/device_states.png b/src/devices/tech/security/images/device_states.png
deleted file mode 100644
index 319c345..0000000
--- a/src/devices/tech/security/images/device_states.png
+++ /dev/null
Binary files differ
diff --git a/src/devices/tech/security/images/dm-verity_mgmt.png b/src/devices/tech/security/images/dm-verity_mgmt.png
index f67b93f..2c2854e 100644
--- a/src/devices/tech/security/images/dm-verity_mgmt.png
+++ b/src/devices/tech/security/images/dm-verity_mgmt.png
Binary files differ
diff --git a/src/devices/tech/security/images/permissions_check.png b/src/devices/tech/security/images/permissions_check.png
new file mode 100644
index 0000000..0dc2e02
--- /dev/null
+++ b/src/devices/tech/security/images/permissions_check.png
Binary files differ
diff --git a/src/devices/tech/security/images/verified_boot.png b/src/devices/tech/security/images/verified_boot.png
index 592aee8..b1c5cb6 100644
--- a/src/devices/tech/security/images/verified_boot.png
+++ b/src/devices/tech/security/images/verified_boot.png
Binary files differ
diff --git a/src/devices/tech/security/index.jd b/src/devices/tech/security/index.jd
index 1c67377..cb5c881 100644
--- a/src/devices/tech/security/index.jd
+++ b/src/devices/tech/security/index.jd
@@ -64,7 +64,7 @@
   the components below are properly secured. With the exception of a small amount
   of Android OS code running as root, all code above the Linux Kernel is
   restricted by the Application Sandbox.</p>
-<p><img alt="Figure 1: Android software stack" src="images/image00.png" /></p>
+<p><img alt="Figure 1: Android software stack" src="images/android_software_stack.png" /></p>
 <p><em>Figure 1: Android software stack.</em></p>
 <p>The main Android platform building blocks are:</p>
 <ul>
diff --git a/src/devices/tech/security/overview/acknowledgements.jd b/src/devices/tech/security/overview/acknowledgements.jd
index 19e79ec..35e8cbc 100644
--- a/src/devices/tech/security/overview/acknowledgements.jd
+++ b/src/devices/tech/security/overview/acknowledgements.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2014 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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 Android Security Team would like to thank the following people and
 parties for helping to improve Android security. They have done this either by
 finding and responsibly reporting security vulnerabilities to <a
diff --git a/src/devices/tech/security/overview/app-security.jd b/src/devices/tech/security/overview/app-security.jd
index 3f2811c..f25f067 100644
--- a/src/devices/tech/security/overview/app-security.jd
+++ b/src/devices/tech/security/overview/app-security.jd
@@ -239,7 +239,7 @@
   choose to share this information can use Android OS permission checks to
   protect the data from third-party applications.</p>
 <img alt="Access to sensitive user data available only through protected
-APIs" src="../images/image03.png" id="figure2" />
+APIs" src="../images/permissions_check.png" id="figure2" />
 <p class="img-caption">
   <strong>Figure 2.</strong> Access to sensitive user data is available only through protected APIs
 </p>
@@ -339,7 +339,7 @@
   </li>
 </ul>
 <p><img alt="Architecture of Digital Rights Management on Android
-platform" src="../images/image02.png" id="figure3" /></p>
+platform" src="../../../images/ape_fwk_drm_2.png" id="figure3" /></p>
 <p class="img-caption">
   <strong>Figure 3.</strong> Architecture of Digital Rights Management on Android platform
 </p>
diff --git a/src/devices/tech/security/overview/index.jd b/src/devices/tech/security/overview/index.jd
index e23d734..6b00c55 100644
--- a/src/devices/tech/security/overview/index.jd
+++ b/src/devices/tech/security/overview/index.jd
@@ -39,11 +39,11 @@
     and security resources, with appropriate security controls integrated into the
     architecture of the system.</li>
   <li><strong>Penetration Testing and Code Review</strong>: During the development of the
-    platform, Android-created and open-source components are subject to vigorous
+    platform, Android-created and open source components are subject to vigorous
     security reviews. These reviews are performed by the Android Security Team,
     Google’s Information Security Engineering team, and independent security
     consultants. The goal of these reviews is to identify weaknesses and possible
-    vulnerabilities well before the platform is open-sourced, and to simulate the
+    vulnerabilities well before the platform is open sourced, and to simulate the
     types of analysis that will be performed by external security experts upon
     release.</li>
   <li><strong>Open Source and Community Review</strong>: The Android Open Source Project enables
diff --git a/src/devices/tech/security/verifiedboot/dm-verity.jd b/src/devices/tech/security/verifiedboot/dm-verity.jd
index f86c1b2..0b03dda 100644
--- a/src/devices/tech/security/verifiedboot/dm-verity.jd
+++ b/src/devices/tech/security/verifiedboot/dm-verity.jd
@@ -189,6 +189,9 @@
 
 <p>And this table describes those metadata fields.</p>
 
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> Verity metadata fields</p>
+
 <table>
 <tr>
 <th>Field</th>
@@ -233,3 +236,11 @@
 <td>0</td>
 </tr>
 </table>
+
+<h3 id="optimize">Optimizing dm-verity</h3>
+
+<p>To get the best performance out of dm-verity, you should:</p>
+  <ul>
+    <li>In the kernel, turn on NEON SHA-2 for ARMv7 and the SHA-2 extensions for ARMv8.
+    <li>Experiment with different read-ahead and prefetch_cluster settings to find the best configuration for your device.
+  </ul>
diff --git a/src/devices/tech/security/verifiedboot/verified-boot.jd b/src/devices/tech/security/verifiedboot/verified-boot.jd
index c96d930..19a95a4 100644
--- a/src/devices/tech/security/verifiedboot/verified-boot.jd
+++ b/src/devices/tech/security/verifiedboot/verified-boot.jd
@@ -41,6 +41,9 @@
 
 <h2 id=glossary>Glossary</h2>
 
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> Glossary of terms related to verified boot</p>
+
 <table>
  <tr>
     <td>
@@ -65,7 +68,7 @@
 </td>
     <td>
 <p>The device state indicates how freely software can be flashed to the device.
-Device states are LOCKED, UNLOCKED, or VERIFIED.</p>
+Device states are LOCKED and UNLOCKED.</p>
 </td>
  </tr>
  <tr>
@@ -94,38 +97,39 @@
 must be used to verify the boot image.</p>
 </td>
  </tr>
- <tr>
-    <td>
-<p>User provided keystore</p>
-</td>
-    <td>
-<p>The user keystore is a keystore flashed to the device via <code>fastboot 
-flash keystore &lt;path&gt;</code>.</p>
-</td>
- </tr>
 </table>
 
 <h2 id=overview>Overview</h2>
 
 <p>In addition to device state - which already exists in devices and controls
 whether the bootloader allows new software to be flashed - we introduce the
-concept of boot state that indicates the state of device integrity. We also
-add a third device state, which allows developers for example, to flash the
-software more frequently without a data wipe while still benefiting from
-verification.</p>
+concept of boot state that indicates the state of device integrity.</p>
+
+<h3 id=classes>Classes</h3>
+
+<p>We define two implementation classes for verified boot depending on how
+fully the device implements this specification, as follows:</p>
+
+<p><strong>Class A</strong>  implements verified boot with full chain of trust
+up to verified partitions. This implementation must support the LOCKED device
+state, and GREEN and RED boot states.</p>
+
+<p><strong>Class B</strong> implements Class A and additionally supports the
+UNLOCKED device state and the ORANGE boot state.</p>
 
 <h3 id=verification_keys>Verification keys</h3>
 
 <p>Bootloader integrity must be verified using a hardware root of trust. For
-verifying boot and recovery images, the bootloader must have a fixed OEM key
-available to it. It must always attempt to verify the boot image using the OEM
-key and only try other possible keys if this verification fails.</p>
+verifying boot and recovery partitions, the bootloader must have a fixed OEM key
+available to it. It must always attempt to verify the boot partition using the OEM
+key first and try other possible keys only if this verification fails.</p>
 
-<p>It must be possible for the user to flash alternative image verification keys
-to the device, and the bootloader must try verification using these keys if
-verification using the OEM key fails. However, using an image signed with the
-user-provided keystore must result in a notification to be shown, as described
-below.</p>
+<p>In Class B implementations, it must be possible for the user to flash
+software signed with other keys when the device is UNLOCKED. If the device is
+then LOCKED and verification using the OEM key fails, the bootloader must try
+verification using the certificate embedded in the partition signature.
+However, using a partition signed with anything other than the OEM key must
+result in a notification or a warning, as described below.</p>
 
 <h3 id=boot_state>Boot state</h3>
 
@@ -133,103 +137,62 @@
 attempt:</p>
 
 <ul>
-  <li> GREEN, indicating a full chain of trust extending from the bootloader to the
-system partition, including the bootloader, boot partition, and system
-partition.
+  <li>GREEN, indicating a full chain of trust extending from the bootloader to
+verified partitions, including the bootloader, boot partition, and all verified
+partitions.
+
+  <li>YELLOW, indicating the boot partition has been verified using the
+embedded certificate, and the signature is valid. The bootloader is required to
+display a notification and the fingerprint of the public key during boot.
+
+  <li>ORANGE, indicating a device may be freely modified. Device integrity is
+left to the user to verify out-of-band. The bootloader must display a warning
+to the user before allowing the boot process to continue.
+
+  <li>RED, indicating the device has failed verification. The bootloader must
+display a warning to the user before allowing the boot process to continue.
 </ul>
 
-<ul>
-  <li> YELLOW, indicating a chain of trust starting from a user-provided keystore
-and extending up. To enable users to acquire trust in their keystore,
-bootloaders are required to display a partial hash of the verifying keystore
-during boot.
-</ul>
+<p>The recovery partition must also be verified in the exact same way.</p>
 
-<ul>
-  <li> ORANGE, indicating a device may be freely modified. Device integrity is
-left to the user to verify out-of-band.
-</ul>
+<h3 id=device_state>Device state</h3>
 
-<ul>
-  <li> RED, indicating the device has failed verification. This must display a
-warning to the user before allowing the boot process to continue.
-</ul>
+<p>The device is required to be in one of two states at all times:</p>
 
-<p>The recovery partition must also be verified and should be verified in the
-exact same way.</p>
+<ol>
+  <li>LOCKED, indicating the device cannot be flashed. A LOCKED device must
+boot into the GREEN, YELLOW, or RED states during any attempted boot.
+
+  <li>UNLOCKED, indicating the device may be flashed freely and is not intended
+to be verified. An UNLOCKED device must always boot to the ORANGE boot state.
+</ol>
 
 <img src="../images/verified_boot.png" alt="Verified boot flow" id="figure1" />
 <p class="img-caption"><strong>Figure 1.</strong> Verified boot flow</p>
 
-<h3 id=device_state>Device state</h3>
-
-<p>The device is required to be in one of three states at all times:</p>
-
-<ol>
-  <li>LOCKED, indicating the device cannot currently be flashed. In the image
-above, a LOCKED device must boot into the GREEN state, YELLOW state, or RED
-state during any attempted boot. It must not be possible to alter the user
-keystore in the LOCKED state.
-
-  <li>VERIFIED, indicating someone in physical control of the device may perform
-limited actions intended to change the state of the device but may not break
-its current chain of trust. In the image above, a VERIFIED device must boot
-into the GREEN state, YELLOW state, or RED state during each attempted boot. It
-must not be possible to alter the user keystore in the VERIFIED state. It must
-be possible to:
-   <ol>
-    <li> Flash the following partitions:
-    <ol>
-      <li> bootloader
-      <li> boot partition
-      <li> system partition
-      <li> vendor partition
-      <li> recovery partition
-    </ol>
-    <li> Erase the following partitions:
-    <ol>
-      <li> userdata
-      <li> cache
-    </ol>
-   </ol>
-
-<p>Boot and recovery image signatures may be verified during the flashing process,
-and the bootloader may reject images that do not validate against the OEM key
-or the user-provided keystore at this point. However, signatures must also be
-verified again at every boot.
-
-  <li>UNLOCKED, indicating the device may be flashed freely and is not intended
-to be verified.
-</ol>
-
 <h2 id=detailed_design>Detailed design</h2>
 
 <p>Achieving full chain of trust requires support from both the bootloader and the
-software on the boot partition, specifically <code>init</code>, which is responsible for
-mounting additional partitions. Verification metadata must also be appended to the
-system partition and any additional partitions whose integrity should be
-verified.</p>
+software on the boot partition, which is responsible for mounting further
+partitions. Verification metadata must also be appended to the system partition
+and any additional partitions whose integrity should be verified.</p>
 
 <h3 id=bootloader_requirements>Bootloader requirements</h3>
 
-<p>The bootloader is the guardian of the device state, manages the user-provided
-keystore, and is responsible for initializing the TEE and binding its root of
-trust.</p>
+<p>The bootloader is the guardian of the device state and is responsible for
+initializing the TEE and binding its root of trust.</p>
 
 <p>Most importantly, the bootloader must verify the integrity of the boot and/or
 recovery partition before moving execution to the kernel and display the
-warnings or notifications in the section <a href="#boot_state">Boot state</a>.</p>
+warnings specified in the section <a href="#boot_state">Boot state</a>.</p>
 
-<h4 id=changing_device_state><strong>Changing device state</strong></h4>
+<h4 id=changing_device_state>Changing device state</h4>
 
 <p>State changes are performed using the <code>fastboot flashing [unlock |
-verified | lock]</code> command. And to protect user data, <strong>all</strong>
+lock]</code> command. And to protect user data, <strong>all</strong>
 state transitions require a data wipe. Note the user must be asked for
 confirmation before data is deleted.</p>
 
-<img src="../images/device_states.png" alt="Changing device states" id="figure2" />
-<p class="img-caption"><strong>Figure 2.</strong> Changing device states</p>
-
 <ol>
   <li>The UNLOCKED to LOCKED transition is anticipated when a user buys a used
 development device. As a result of locking the device, the user should have
@@ -237,20 +200,13 @@
 
   <li>The LOCKED to UNLOCKED transition is expected in the case where a developer
 wishes to disable verification on the device.
-
-  <li>The LOCKED to VERIFIED transition is expected in the case where a developer
-wishes to do development on the device and doesn’t want to wipe data frequently.
-
-  <li>The VERIFIED to LOCKED transition is idempotent with the above.
-
-  <li>The UNLOCKED to VERIFIED transition is anticipated when a user wishes to put a
-development device in a more secure state but may not want to prevent
-themselves from flashing new system images.
-
-  <li> The VERIFIED to UNLOCKED transition is idempotent with the above.
 </ol>
 
 <p>Requirements for <code>fastboot</code> commands that alter device state are listed in the table below:</p>
+
+<p class="table-caption" id="table2">
+  <strong>Table 2.</strong> <code>fastboot</code> commands</p>
+
 <table>
  <tr>
     <td>
@@ -266,9 +222,8 @@
 flashing lock</code></td>
     <td>
 <ul>
-  <li>Wipe data after asking the user for confirmation     
+  <li>Wipe data after asking the user for confirmation
   <li>Clear a write-protected bit indicating the device is unlocked
-  <li>Clear a write-protected bit indicating the device is verified
 </ul>
 </td>
  </tr>
@@ -278,21 +233,8 @@
 flashing unlock</code></td>
     <td>
 <ul>
-  <li>Wipe data after asking the user for confirmation     
+  <li>Wipe data after asking the user for confirmation
   <li>Set a write-protected bit indicating the device is unlocked
-  <li>Clear a write-protected bit indicating the device is verified
-</ul>
-</td>
- </tr>
- <tr>
-    <td>
-<code>
-flashing verified</code></td>
-    <td>
-<ul>
-  <li>Wipe data after asking the user for confirmation     
-  <li>Clear a write-protected bit indicating the device is unlocked
-  <li>Set a write-protected bit indicating the device is verified
 </ul>
 </td>
  </tr>
@@ -300,6 +242,10 @@
 
 <p>When altering partition contents, the bootloader must check the bits set by
 the above commands as described in the following table:</p>
+
+<p class="table-caption" id="table3">
+  <strong>Table 3.</strong> <code>fastboot</code> command requirements</p>
+
 <table>
  <tr>
     <td>
@@ -314,128 +260,110 @@
 <code>
 flash &lt;partition&gt;</code></td>
     <td>
-<ul>
-  <li>If the bit set by <code>flashing unlock</code> is set, flash the partition as normal    
-  <li>If this bit is not set, check the bit set by <code>flashing verified</code>
-    <ul>
-      <li>If this bit is not set, exit with an error
-      <li>If this bit is set and &lt;partition&gt; is on the list provided in
-          the section <a href="#device_state">Device state</a>, flash the partition as normal.
-   </ul>
-</ul>
+    <p>If the bit set by <code>flashing unlock</code> is set, flash the
+      partition. Otherwise, do not allow flashing.<p>
     </td>
  </tr>
 </table>
 
-<p>The same checks should be performed for any <code>fastboot</code> command that can be used to change the contents of partitions.</p>
+<p>The same checks should be performed for any <code>fastboot</code> command
+that can be used to change the contents of partitions.</p>
 
-<h4 id=managing_user_provided_keystore><strong>Managing user-provided keystore</strong></h4>
+<p class="note"><strong>Note</strong>: Class B implementations must support
+changing device state.</p>
 
-<p>Users can flash their own verification keys to the device, which must be
-used to verify the integrity of boot and recovery images if verification
-against the OEM key fails. This allows a developer to change the system
-software frequently, for example,  while still keeping verified boot enabled.</p>
+<h4 id=binding_tee_root_of_trust>Binding TEE root of trust</h4>
 
-<p>The bootloader is responsible for maintaining the integrity of the user
-keystore. It must not be possible to change the contents of the keystore unless
-the device is UNLOCKED. When the user flashes a new keystore to the device, the
-bootloader must sign it using the TEE and store the signed keystore. Before
-using keys from the keystore, the bootloader must use the TEE to verify the
-signature.</p>
-
-<p>Requirements for <code>fastboot</code> commands used to manage the user-provided keystore are listed in the table
-below:</p>
-<table>
- <tr>
-    <td>
-<p><strong><code>fastboot</code> command</strong></p>
-</td>
-    <td>
-<p>Requirements</p>
-</td>
- </tr>
- <tr>
-    <td>
-<code>
-flash keystore &lt;filename&gt;</code></td>
-    <td>
-<ul>
-  <li>Check the bit set by <code>flashing unlock</code>; if not set, exit with an error 
-  <li>Validate the given keystore against the format provided in section <a href="#keystore_format">Keystore format</a>
-  <li>Pass the keystore to the TEE for signing
-  <li>Write the signed keystore to the write-protected user keystore storage
-      area (location to be determined by the OEM)
-</ul>
-</td>
- </tr>
- <tr>
-    <td>
-<code>
-erase keystore</code></td>
-    <td>
-<ul>
-  <li>Check the bit set by <code>flashing unlock</code>; if not set, exit with an error
-  <li>Erase the keystore stored in the write-protected user keystore storage area
-</ul>
-    </td>
- </tr>
-</table>
-
-<h4 id=binding_tee_root_of_trust><strong>Binding TEE root of trust</strong></h4>
-
-<p>After the bootloader has initialized the TEE and performed boot image
-verification steps, it must pass the following information to the TEE Keymaster
-as the root of trust:</p>
+<p>If TEE is available, the bootloader should pass the following information to
+the TEE to bind the Keymaster root of trust, after partition verification and
+TEE initialization:</p>
 
 <ol>
-  <li>The public key that was used to sign the boot image
-  <li>The current device state (LOCKED, VERIFIED, or UNLOCKED)
+  <li>the public key that was used to sign the boot partition
+  <li>the current device state (LOCKED or UNLOCKED)
 </ol>
 
-<p>This changes the keys derived by the TEE. For disk encryption, for example,
-this prevents user data from being decrypted when the device is booted using a
-potentially untrusted image signed with a different key.</p>
+<p>This changes the keys derived by the TEE. Taking disk encryption as an example,
+this prevents user data from being decrypted when the device state changes.</p>
 
 <p class="note"><strong>Note:</strong> This means if the system software or the
 device state changes, encrypted user data will no longer be accessible as the
 TEE will attempt to use a different key to decrypt the data.</p>
 
-<h4 id=booting_into_recovery><strong>Booting into recovery</strong></h4>
+<h4 id=booting_into_recovery>Booting into recovery</h4>
 
-<p>The recovery image should be verified in exactly the same manner as the boot
-image.</p>
+<p>The recovery partition should be verified in exactly the same manner as the
+boot partition.</p>
+
+<h4 id=comm_boot_state>Communicating boot state</h4>
+
+<p>System software needs to be able to determine the verification status of
+previous stages. The bootloader must specify the current boot state as a
+parameter on the kernel command line (or through the device tree under
+<code>firmware/android/verifiedbootstate</code>) as described in the table
+below:</p>
+
+<p class="table-caption" id="table4">
+  <strong>Table 4.</strong> Kernel command line parameters</p>
+
+<table>
+  <tr>
+    <th>Kernel command line parameter</th>
+    <th>Description</th>
+  </tr>
+  <tr>
+    <td><code>androidboot.verifiedbootstate=green</code></td>
+    <td>Device has booted into GREEN boot state.<br>
+        Boot partition has been verified using the OEM key and it’s valid.</td>
+  </tr>
+  <tr>
+    <td><code>androidboot.verifiedbootstate=yellow</code></td>
+    <td>Device has booted into YELLOW boot state.<br>
+	Boot partition has been verified using the certificate embedded into
+        the signature and it’s valid.</td>
+  </tr>
+  <tr>
+    <td><code>androidboot.verifiedbootstate=orange</code></td>
+    <td>Device has booted into ORANGE boot state.<br>
+        The device is unlocked and no verification has been performed.</td>
+  </tr>
+  <tr>
+    <td><code>androidboot.verifiedbootstate=red</code></td>
+    <td>Device has booted into RED boot state.<br>
+        The device has failed verification.</td>
+  </tr>
+</table>
 
 <h3 id=boot_partition>Boot partition</h3>
 
-<p>Once execution has moved to the boot and/or recovery image, <code>init</code> is responsible
-for setting up verification for further partitions. Due to its large size, the
-system partition cannot be verified similarly to previous parts but must be
-verified in real time as it’s being accessed by using the dm-verity kernel
-driver.</p>
+<p>Once execution has moved to the boot partition, the software there is responsible
+for setting up verification of further partitions. Due to its large size, the
+system partition typically cannot be verified similarly to previous parts but must be
+verified as it’s being accessed instead using the dm-verity kernel driver or a
+similar solution.</p>
 
-<p>When <code>fs_mgr</code> flags in the device’s <code>fstab</code> indicate a partition should be
-verified, <code>init</code> will verify the signed verity metadata appended to the partition
-before mounting it and set up the dm-verity device for the partition.</p>
+<p>If dm-verity is used to verify large partitions, the signature of the verity
+metadata appended to each verified partition must be verified before the
+partition is mounted and dm-verity is set up for it.</p>
 
-<h4 id=managing_dm-verity><strong>Managing dm-verity</strong></h4>
+<h4 id=managing_dm-verity>Managing dm-verity</h4>
 
-<p>By default, dm-verity operates in verifying mode and verifies each block read
-from the device against a hash tree passed to it by <code>init</code> during set up. If it
+<p>By default, dm-verity operates in enforcing mode and verifies each block read
+from the partition against a hash tree passed to it during setup. If it
 comes across a block that fails to verify, it returns an I/O error and makes
 the block with unexpected contents inaccessible to user space. Depending on
 which block is corrupted, this may cause some of the programs that reside on
 the partition to malfunction.</p>
 
-<p>Using a persistent flag, dm-verity can also be configured to function in
-logging mode. This flag is read by <code>init</code> when setting up dm-verity. And if the
-mode flag is set to logging or verity metadata cannot be verified, a warning
-must be displayed to the user, similar to the warning the bootloader shows
-before booting into RED state.</p>
+<p>Using an optional verity table parameter, dm-verity can be configured to
+function in logging mode. If dm-verity is not started in enforcing mode for any
+reason, or verity metadata cannot be verified, a warning must be displayed to
+the user, similar to the one shown before booting into the RED state.</p>
 
-<img src="../images/dm-verity_mgmt.png" alt="dm-verity management" id="figure3" />
-<p class="img-caption"><strong>Figure 3.</strong> dm-verity management</p>
+<img src="../images/dm-verity_mgmt.png" alt="dm-verity management" id="figure2" />
+<p class="img-caption"><strong>Figure 2.</strong> dm-verity management</p>
 
-<h4 id=recovering_from_dm-verity_errors><strong>Recovering from dm-verity errors</strong></h4>
+<h4 id=recovering_from_dm-verity_errors>Recovering from dm-verity errors</h4>
 
 <p>Since the system partition is by far larger than the boot partition, the
 probability of verification errors is also higher. Specifically, there is a
@@ -445,31 +373,32 @@
 
 <p>It’s generally not possible to distinguish disk corruption from malicious
 changes, so any change to the system partition must result in the user being
-notified, and no unverified data must leak to user space until a warning has
+notified; and no unverified data must leak to user space until a warning has
 been shown. However, we must also assume most verification failures are
 not the result of malicious behavior; so the user must also have an option to
 continue using the device without verification.</p>
 
-<p>If dm-verity is in verifying mode and a block of a partition fails to verify,
-it will send a <code>uevent</code> to notify user space of the error. This event must be
-handled by software in the boot partition as potentially any program residing
-on the verified partition may not function anymore. When the event is received,
-the persistent dm-verity state must be updated to set the mode flag to logging
-mode, and the device must be rebooted. When the device restarts,
-<code>init</code> will warn the user of changes to the partition before mounting it.</p>
+<p>When a dm-verity error is detected, the device must be rebooted and
+dm-verity must be started in logging mode during all subsequent restarts until
+any of the verified partitions is reflashed or changed by an OTA update. This
+means dm-verity state should be stored in a persistent flag. When a verified
+partition has been changed, the flag must be cleared and dm-verity must again
+be started in enforcing mode. Anytime dm-verity is not started in enforcing
+mode, a warning must be shown to the user before any of the verified partitions
+are mounted.</p>
 
 <h3 id=verified_partition>Verified partition</h3>
 
 <p>In a verified device, the system partition must always be verified. But any
-other read-only partition can also be set to be verified, as well. Specifically,
-any read-only partition that contains executable code must be verified on a
-verified device. This include the vendor partition, if one exists, for example.</p>
+other read-only partition should also be set to be verified, as well. Any
+read-only partition that contains executable code must be verified on a
+verified device. This includes vendor and OEM partitions, if they exist, for example.</p>
 
 <p>In order for a partition to be verified, signed verity metadata must be
 appended to it. The metadata consists of a hash tree of the partition contents
 and a verity table containing signed parameters and the root of the hash tree.
-If this information is missing or invalid when <code>init</code> attempts to
-mount the device, the user must be warned.</p>
+If this information is missing or invalid when dm-verity is set up for the
+partition, the user must be warned.</p>
 
 <h2 id=implementation_details>Implementation details</h2>
 
@@ -481,7 +410,6 @@
 
 <h3 id=signature_format>Signature format</h3>
 
-
 <p>The signature on an Android verifiable boot image is an ASN.1 DER-encoded
 message, which can be parsed with a decoder similar to the one found at: <a
 href="https://android.googlesource.com/platform/bootable/recovery/+/f4a6ab27b335b69fbc419a9c1ef263004b561265/asn1_decoder.cpp">platform/bootable/recovery/asn1_decoder.cpp</a><br/>
@@ -508,9 +436,9 @@
 <p>The <code>Certificate</code> field is the full X.509 certificate containing
 the public key used for signing, as defined by <a
 href="http://tools.ietf.org/html/rfc5280#section-4.1.1.2">RFC5280</a> section
-4.1. The bootloader must ignore this field and must NOT use the key
-specified in the certificate to verify the signature. Signatures must always be
-verified against the OEM key or the user-provided keystore only.</p>
+4.1. When LOCKED, the bootloader must always use the OEM key for verification
+first, and only boot to YELLOW or RED states if the embedded certificate is
+used for verification instead.</p>
 
 <p>The remaining structure is similar to that defined by <a
 href="http://tools.ietf.org/html/rfc5280#section-4.1.1.2">RFC5280</a> sections
@@ -526,7 +454,8 @@
   <li>Generate the unsigned image.
   <li>0-pad the image to the next page size boundary (omit this step if already
 aligned).
-  <li>Populate the fields of the <code>AuthenticatedAttributes</code> section above based on the padded image and desired target partition.
+  <li>Populate the fields of the <code>AuthenticatedAttributes</code> section
+      above based on the padded image and desired target partition.
   <li>Append the <code>AuthenticatedAttributes</code> structure above to the image.
   <li>Sign the image.
 </ol>
@@ -537,55 +466,23 @@
 a header).
   <li>Read the signature located at the offset above.
   <li>Validate the contents of the <code>AuthenticatedAttributes</code> field.
-If these values do not validate, treat it as a signature validation error.
+      If these values do not validate, treat it as a signature validation error.
   <li>Verify the image and <code>AuthenticatedAttributes</code> sections.
 </ol>
 
-<h3 id=keystore_format>Keystore format</h3>
-
-<p>The Android verified boot keystore format is an ASN.1 DER-encoded document. Its
- specification follows:</p>
-
-<pre>
-AndroidVerifiedBootKeystore DEFINITIONS ::=
-     BEGIN
-          FormatVersion ::= INTEGER
-          KeyBag ::= SEQUENCE {
-               Key  ::= SEQUENCE {
-                    AlgorithmIdentifier  ::=  SEQUENCE {
-                         algorithm OBJECT IDENTIFIER,
-                         parameters ANY DEFINED BY algorithm
-                    OPTIONAL
-                    }
-                    KeyMaterial ::= RSAPublicKey
-               }
-          }
-          Signature ::= AndroidVerifiedBootSignature OPTIONAL
-     END
-</pre>
-
-<p>Where <code>RSAPublicKey</code>, <code>AlgorithmIdentifier</code>, and
-parameters are as specified in <a
-href="http://tools.ietf.org/html/rfc3279#section-2.3.1">RFC3279</a>. Other key
-types specified in RFC3279 section 2.3 may optionally be supported,
-in which case the appropriate type for <code>Key</code> must be used.</p>
-
-<h3 id=keystore_location>Keystore location</h3>
-
-<p>The location of the keystore is not specified here, but that location must be
-known to the bootloader and both readable and writable by it. Reading should
-happen as per the above; writing a new keystore should be accomplished through
-<code>fastboot flash keystore &lt;path&gt;</code>. Sufficient storage must be
-provided for at least one key, with storage for additional keys recommended.</p>
-
 <h3 id=user_experience>User experience</h3>
 
 <p>A user in the GREEN boot state should see no additional user interaction besides that
-required by normal device boot. In other boot states, the user should see a
+required by normal device boot. In other boot states, the user must see a
 warning for at least five seconds. Should the user interact with the device during
-this time, the warning should remain visible until the user agrees to continue.</p>
+this time, the warning must remain visible at least 30 seconds longer, or until
+the user dismisses the warning.</p>
 
 <p>Sample user interaction screens for other states are shown in the following table:</p>
+
+<p class="table-caption" id="table5">
+  <strong>Table 5.</strong> Sample user interaction screens</p>
+
 <table>
  <tr>
     <td>
@@ -601,11 +498,11 @@
 </td>
     <td>
 <img src="../images/boot_yellow1.png" alt="Yellow device state 1" id="figure4" />
-<p class="img-caption"><strong>Figure 4.</strong> Yellow state example 1 UI</p>
+<p class="img-caption"><strong>Figure 3.</strong> Yellow state example 1 UI</p>
 </td>
     <td>
 <img src="../images/boot_yellow2.png" alt="Yellow device state 2" id="figure5" />
-<p class="img-caption"><strong>Figure 5.</strong> Yellow state example 2 UI</p>
+<p class="img-caption"><strong>Figure 4.</strong> Yellow state example 2 UI</p>
 </td>
 
  </tr>
@@ -615,7 +512,7 @@
 </td>
     <td>
 <img src="../images/boot_orange.png" alt="Orange device state" id="figure6" />
-<p class="img-caption"><strong>Figure 6.</strong> Orange state example UI</p>
+<p class="img-caption"><strong>Figure 5.</strong> Orange state example UI</p>
 </td>
  </tr>
  <tr>
@@ -624,7 +521,7 @@
 </td>
     <td>
 <img src="../images/boot_red.png" alt="Red device state" id="figure7" />
-<p class="img-caption"><strong>Figure 7.</strong> Red state example UI</p>
+<p class="img-caption"><strong>Figure 6.</strong> Red state example UI</p>
 </td>
  </tr>
 </table>
diff --git a/src/devices/tech/test_infra/tradefed/full_example.jd b/src/devices/tech/test_infra/tradefed/full_example.jd
index 1be769f..34cd63a 100644
--- a/src/devices/tech/test_infra/tradefed/full_example.jd
+++ b/src/devices/tech/test_infra/tradefed/full_example.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,13 @@
     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>This tutorial guides you through the construction of a "hello world" Trade Federation test
 configuration, and gives you a hands-on introduction to the Trade Federation framework.  Starting
@@ -336,10 +343,10 @@
 <p>This is accomplished via the <code>@Option</code> annotation. To participate, a Configuration object class
 would apply the <code>@Option</code> annotation to a member field, and provide it a unique name. This would
 allow that member field's value to be populated via a command line option, and would also
-automatically add that option to the configuration help system (Note: not all field types are
-supported: see the
+automatically add that option to the configuration help system.</p>
+<p class="note"><strong>Note:</strong> Not all field types are supported. See the
 <a href="/reference/com/android/tradefed/config/OptionSetter.html">OptionSetter javadoc</a> for a
-description of supported types).</p>
+description of supported types.</p>
 
 <p>Let's add an <code>@Option</code> to the HelloWorldTest:</p>
 <pre><code>@Option(name="my_option",
@@ -435,6 +442,5 @@
 <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master"
 >Trade Federation source code</a> has a lot of useful information that isn't
 exposed in the documentation.  And if all else fails, try asking on the
-<a href="/source/community/index.html">android-platform</a> Google Group, with "Trade Federation"
-in the message subject.</p>
-
+<a href="{@docRoot}source/community.html">android-platform</a> Google Group, with "Trade Federation"
+in the message subject.</p>
\ No newline at end of file
diff --git a/src/devices/tech/test_infra/tradefed/fundamentals/index.jd b/src/devices/tech/test_infra/tradefed/fundamentals/index.jd
index 98ab260..68ff06d 100644
--- a/src/devices/tech/test_infra/tradefed/fundamentals/index.jd
+++ b/src/devices/tech/test_infra/tradefed/fundamentals/index.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -70,6 +70,6 @@
 <p>If you've gotten through everything here and still have unanswered questions, first try taking
 a look at the <a href="https://android.googlesource.com/platform/tools/tradefederation/+/master"
 >Trade Federation source code.</a>.  Beyond that, feel free to try asking on the
-<a href="/source/community/index.html">android-platform</a> Google Group.  For best results, make
+<a href="{@docRoot}source/community.html">android-platform</a> Google Group.  For best results, make
 sure to mention "Trade Federation" (or "tradefed", or "TF") in the message subject.</p>
 
diff --git a/src/devices/tech/test_infra/tradefed/fundamentals/options.jd b/src/devices/tech/test_infra/tradefed/fundamentals/options.jd
index 930be9e..568cd35 100644
--- a/src/devices/tech/test_infra/tradefed/fundamentals/options.jd
+++ b/src/devices/tech/test_infra/tradefed/fundamentals/options.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,13 @@
     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>Option handling lies at the heart of Trade Federation's modular approach.  In particular, options
 are the mechanism by which the Developer, Integrator, and Test Runner can work together without
@@ -25,7 +32,7 @@
 the Test Runner.  This mechanism works for all Java intrinsic types, as well as for any
 <code>Map</code>s or <code>Collection</code>s of intrinsic types.</p>
 
-<p><em>Note:</em> the option-handling mechanism only works for classes implementing one of the
+<p class="note"><strong>Note:</strong> The option-handling mechanism only works for classes implementing one of the
 interfaces included in the <a href="lifecycle.html">Test Lifecycle</a>, and only when that class is
 <em>instantiated</em> by the lifecycle machinery.</p>
 
diff --git a/src/devices/tech/test_infra/tradefed/index.jd b/src/devices/tech/test_infra/tradefed/index.jd
index dabe07f..64939b2 100644
--- a/src/devices/tech/test_infra/tradefed/index.jd
+++ b/src/devices/tech/test_infra/tradefed/index.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -16,6 +16,14 @@
     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>Trade Federation (tradefed or TF for short) is a continuous test framework designed for running tests
 on Android devices. It's a Java application which runs on a host computer, and communicates to one or
 more Android devices using ddmlib (the library behind DDMS) over adb.</p>
diff --git a/src/images/android_framework_details.png b/src/images/android_framework_details.png
index 618f027..ed83453 100644
--- a/src/images/android_framework_details.png
+++ b/src/images/android_framework_details.png
Binary files differ
diff --git a/src/images/android_framework_small.png b/src/images/android_framework_small.png
index 475f58d..6030881 100644
--- a/src/images/android_framework_small.png
+++ b/src/images/android_framework_small.png
Binary files differ
diff --git a/src/images/cts-0.png b/src/images/cts-0.png
deleted file mode 100644
index cca38c5..0000000
--- a/src/images/cts-0.png
+++ /dev/null
Binary files differ
diff --git a/src/index.jd b/src/index.jd
index 0aa6826..7c3a2d3 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -25,12 +25,13 @@
   <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. Here you can find the information and source code you need to learn more about the Android platform. From there you can
-      create custom variants of the Android software stack, port devices and accessories to the Android platform,
-      and ensure your devices are compatible with the Android compatibility definition.
-      </p>
+<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>
 
@@ -41,60 +42,58 @@
   <div class="landing-docs">
     <div class="col-8">
     <h3>What's New</h3>
-<a href="{@docRoot}devices/tech/debug/dumpsys.html">
-        <h4>Example Dumpsys Diagnostic Output</h4></a>
-        <p>In addition to the aforementioned <strong><a
-        href="{@docRoot}devices/input/diagnostics.html">Input
-        Diagnostics</a></strong>, you can now find Dumpsys examples of usage
-        data for <strong><a href="{@docRoot}devices/tech/ram/procstats.html">RAM
-        (procstats)</a></strong>, <strong><a
-        href="{@docRoot}devices/tech/netstats.html">network (netstats)</a></strong>,
-        and <strong><a
-        href="{@docRoot}devices/tech/power/batterystats.html">battery (batterystats)</a></strong>.</p>
+<a href="{@docRoot}devices/tech/admin/index.html">
+        <h4>Device Administration Introduction</h4></a>
+        <p>A new <strong><a
+        href="{@docRoot}devices/tech/admin/index.html">Device
+        Administration</a></strong> section summarizes use of Android in a corporate
+        environment, including <strong><a
+        href="{@docRoot}devices/tech/admin/implement.html">implementation</a></strong>, <strong><a 
+        href="{@docRoot}devices/tech/admin/provision.html">provisioning</a></strong>,
+        <strong><a
+        href="{@docRoot}devices/tech/admin/testing-setup.html">testing</a></strong>,
+        and more.</p>
 
-<a href="{@docRoot}devices/audio/latency_measurements.html">
-        <h4>Audio Latency Measurements</h4></a>
+<a href="{@docRoot}devices/audio/midi.html">
+        <h4>MIDI and Audio Latency for Developers</h4></a>
         <p>The Android audio team has published <strong><a
-        href="{@docRoot}devices/audio/latency_measurements.html">round-trip audio latency
-        measurements</a></strong> for select Nexus devices to help partners compare their
-        own devices and reduce latency further.</p>
+        href="{@docRoot}devices/audio/latency_app.html">advice to developers
+        for reducing latency</a></strong> and also instructions to partners on
+        implementing the new support for <strong><a
+        href="{@docRoot}devices/audio/midi.html">MIDI</a></strong> protocol now
+        available in AOSP.</p>
 
-<a href="{@docRoot}devices/tech/power/index.html">
-        <h4>Power Profile Details</h4></a>
+<a href="{@docRoot}compatibility/cts/development.html">
+        <h4>CTS Development Release Schedule</h4></a>
+        <p>Compatibility Test Suite (CTS) <strong><a
+        href="{@docRoot}compatibility/cts/development.html#release-schedule">release
+        schedule and branch information</a></strong> has been published,
+        including code freeze dates and auto-merge instructions.</p>
+
+<a href="{@docRoot}devices/tech/resources.html">
+        <h4>System Resources Section</h4></a>
+        <p>A new <strong><a href="{@docRoot}devices/tech/resources.html">System
+        Resources</a></strong> section has been added to contain documentation on the
+        <strong><a href="{@docRoot}devices/tech/kernel.html">kernel</a></strong>, <strong><a
+        href="{@docRoot}devices/tech/netstats.html">network</a></strong>, and
+        <strong><a href="{@docRoot}devices/tech/ram/index.html">RAM</a></strong>.</p>
+
+<a href="{@docRoot}devices/tech/security/verifiedboot/verified-boot.html">
+        <h4>Verified Boot Improvements</h4></a>
         <p><strong><a
-        href="{@docRoot}devices/tech/power/index.html">Power</a></strong>
-        information has been moved and expanded to include details on
-        <code>cpu.awake</code> and <code>cpu.active</code>. The need to create a
-        <code>power_profile.xml</code> file is also emphasized throughout.</p>
+        href="{@docRoot}devices/tech/security/verifiedboot/verified-boot.html#classes">Verifying
+        Boot</a></strong> has been rewritten to remove the VERIFIED state and Keystore
+        format and add details on implementation classes, communicating boot state, and
+        kernel command line parameters. And performance recommendations have been added
+        to <strong><a
+        href="{@docRoot}devices/tech/security/verifiedboot/dm-verity.html#optimize">Implementing
+        dm-verity</a></strong>.</p>
 
-<a href="{@docRoot}source/initializing.html">
-        <h4>Initializing Improvements</h4></a>
-        <p>Build environment <strong><a
-        href="{@docRoot}source/initializing.html#setting-up-a-mac-os-x-build-environment">Initializing</a></strong>
-        instructions now explain how to resize and unmount Mac OS sparse
-        images. And the ccache section has been moved to an optional <strong><a
-        href="{@docRoot}source/initializing.html#optimizing-a-build-environment">Optimizing
-        a build environment</a></strong> section.</p>
-
-<a href="{@docRoot}devices/tech/security/selinux/index.html">
-        <h4>SELinux Permissive Declarations</h4></a>
-        <p>SELinux <strong><a
-        href="{@docRoot}devices/tech/security/selinux/customize.html">Customizing</a></strong>
-        and <strong><a
-        href="{@docRoot}devices/tech/security/selinux/implement.html">Implementing</a></strong>
-        instructions have been updated to recommend using permissive declarations
-        directly as <code>permissive_or_unconfined()</code> has been deprecated.
-        Similarly, <code>BOARD_SEPOLICY_UNION</code> has been removed, so
-        <code>BOARD_SEPOLICY_*</code> variables are suggested insead.</p>
-
-<a href="{@docRoot}devices/bluetooth.html">
-        <h4>Android 5.0 Bluetooth HCI Requirements</h4></a>
-        <p><strong><a
-        href="{@docRoot}devices/Android-5.0-Bluetooth-HCI-Reqs.pdf">Bluetooth
-        Host Controller Interface (HCI) requirements</a></strong> to leverage
-        the Bluetooth Low Energy APIs in Android 5.0 have
-        been published and linked from the <strong><a
-        href="{@docRoot}devices/bluetooth.html">Bluetooth</a></strong> introduction.</p>
+<a href="{@docRoot}source/building.html">
+        <h4>Increased Disk Space Requirements</h4></a>
+        <p>The amount of available disk space required to build Android has
+        been increased to a minimum of 100GB in <strong><a
+        href="{@docRoot}source/building.html">Downloading and Building</a></strong>.</p>
     </div>
 
     <div class="col-8">
@@ -108,7 +107,7 @@
         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:left;margin:5px 10px"></a>
+<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
diff --git a/src/source/build-numbers.jd b/src/source/build-numbers.jd
index d116739..185006d 100644
--- a/src/source/build-numbers.jd
+++ b/src/source/build-numbers.jd
@@ -178,10 +178,28 @@
 <th>Supported devices</th>
 </tr>
 <tr>
+  <td>LMY47Z</td>
+  <td>android-5.1.1_r4</td>
+  <td>Lollipop</td>
+  <td>Nexus 6 (For Sprint, USC ONLY)</td>
+</tr>
+<tr>
+  <td>LMY48B</td>
+  <td>android-5.1.1_r3</td>
+  <td>Lollipop</td>
+  <td>Nexus 5</td>
+</tr>
+<tr>
+  <td>LMY47X</td>
+  <td>android-5.1.1_r2</td>
+  <td>Lollipop</td>
+  <td>Nexus 9 (volantis)</td>
+</tr>
+<tr>
   <td>LMY47V</td>
   <td>android-5.1.1_r1</td>
   <td>Lollipop</td>
-  <td>Nexus Player</td>
+  <td>Nexus 7 (flo/grouper), Nexus 10, Nexus Player</td>
 </tr>
 <tr>
   <td>LMY47O</td>
@@ -190,18 +208,36 @@
   <td>Nexus 4, Nexus 7 (flo/deb)</td>
 </tr>
 <tr>
+  <td>LMY47M</td>
+  <td>android-5.1.0_r4</td>
+  <td>Lollipop</td>
+  <td>Nexus 6 (For T-Mobile ONLY)</td>
+</tr>
+<tr>
   <td>LMY47I</td>
   <td>android-5.1.0_r3</td>
   <td>Lollipop</td>
   <td>Nexus 5, Nexus 6</td>
 </tr>
 <tr>
+  <td>LMY47E</td>
+  <td>android-5.1.0_r2</td>
+  <td>Lollipop</td>
+  <td>Nexus 6</td>
+</tr>
+<tr>
   <td>LMY47D</td>
   <td>android-5.1.0_r1</td>
   <td>Lollipop</td>
   <td>Nexus 5, Nexus 6, Nexus 7 (grouper/tilapia), Nexus 10, Nexus Player</td>
 </tr>
 <tr>
+  <td>LRX22L</td>
+  <td>android-5.0.2_r3</td>
+  <td>Lollipop</td>
+  <td>Nexus 9 (volantis/volantisg)</td>
+</tr>
+<tr>
   <td>LRX22G</td>
   <td>android-5.0.2_r1</td>
   <td>Lollipop</td>
diff --git a/src/source/building-devices.jd b/src/source/building-devices.jd
index 06b4352..f0d978e 100644
--- a/src/source/building-devices.jd
+++ b/src/source/building-devices.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -28,31 +28,24 @@
 <a href="building-running.html">Building and Running</a> with
 information that is specific to individual devices.</p>
 
-<p>With the current release, it is possible to build for
-Nexus 4, Nexus 7, and for some variants of Galaxy Nexus.
-The exact level of functionality for each device depends on the availability
-of the relevant proprietary hardware-specific binaries.</p>
-<p>For Nexus 4 and Nexus 7, all configurations can be used,
-and all the hardware is functional.
-Due to hardware differences, do not use 4.1.1 on a Nexus 7 that
+<h2 class="nexus-devices">Nexus devices</h2>
+<p>
+It is possible to build for Nexus devices using the AOSP
+builds and the relevant hardware-specific binaries.
+For a list of available Android builds and the Nexus devices
+they can be installed on, see <a
+href="build-numbers.html#source-code-tags-and-builds">Source
+Code, Tags, and Builds</a>.
+</p>
+
+<p class="note">
+<b>Note:</b> Due to hardware differences, do not use 4.1.1 on a Nexus 7 that
 was originally sold with 4.1.2 or newer.</p>
-<p>All configurations of Nexus 10 "manta" can be used with 4.2.2.
-On those devices, graphics, audio,
-Wi-Fi, Bluetooth, camera, NFC, GPS and orientation sensors are functional.</p>
-<p>The variants of Galaxy Nexus that can be used are the GSM/HSPA+ configuration
-"maguro" (only if it was originally sold with a "yakju" or "takju" operating
-system) and the VZW CDMA/LTE configuration "toro". On those devices, graphics
-and audio are functional, as well as Wi-Fi, Bluetooth, and access to the
-respective cellular networks. NFC and the orientation sensors are functional.</p>
-<p>The Sprint CDMA/LTE configuration "toroplus" of Galaxy Nexus is supported
-experimentally, in the jb-mr1-dev-plus-aosp branch. On that configuration,
-the cellular network is not functional,
-and the other peripherals work like they do on "toro".</p>
+
+<h2 class="other-devices">Other devices</h2>
 <p>The Motorola Xoom can be used in the Wi-Fi configuration "wingray"
 sold in the USA, with Android 4.1.2. Graphics and audio are functional
 as well as Wi-Fi and Bluetooth and the orientation sensors.</p>
-<p>All configurations of Nexus S and Nexus S 4G can be used with Android 4.1.2.
-On those devices all the hardware is functional.</p>
 <p>In addition, <a href="http://pandaboard.org">PandaBoard</a> a.k.a. "panda" can be used
 in the jb-mr1-dev-plus-aosp branch, but is considered experimental.
 The specific details to use a PandaBoard with the Android Open-Source Project
@@ -64,6 +57,7 @@
 <a href="building-running.html">Building and Running</a>, and replace the main <code>make</code> command with</p>
 <pre><code>$ make fastboot adb
 </code></pre>
+
 <h2 id="booting-into-fastboot-mode">Booting into fastboot mode</h2>
 <p>During a cold boot, the following key combinations can be used to boot into fastboot mode,
 which is a mode in the bootloader that can be used to flash the devices:</p>
@@ -181,7 +175,7 @@
 branches can be downloaded from <a
 href="https://developers.google.com/android/nexus/drivers">Google's Nexus
 driver page</a>. These add access to additional hardware capabilities with
-non-open-source code. To instead build the AOSP master branch, use the <a
+non-open source code. To instead build the AOSP master branch, use the <a
 href="https://developers.google.com/android/nexus/blobs-preview">Binaries
 Preview for Nexus Devices</a>.</p>
 <p>When building the master branch for a device, the binaries for the most
diff --git a/src/source/building-dream.jd b/src/source/building-dream.jd
index 1b6d9ac..13ec46a 100644
--- a/src/source/building-dream.jd
+++ b/src/source/building-dream.jd
@@ -58,5 +58,5 @@
 <p>from this point, the fastboot tool (which is put automatically in your path) can be used to flash a device: boot the device into the bootloader by holding the back key while pressing the power key, and run <code>fastboot -w flashall</code>.</p>
 </li>
 </ol>
-<p>Note: these instructions work for the sapphire (ADP2) build target, as
+<p class="note"><strong>Note:</strong> These instructions work for the sapphire (ADP2) build target, as
 well. Simply replace "dream" with "sapphire" above.</p>
diff --git a/src/source/building.jd b/src/source/building.jd
index 408ddb1..78401da 100644
--- a/src/source/building.jd
+++ b/src/source/building.jd
@@ -21,14 +21,15 @@
 build tools available. We welcome reports of successes or failures on other
 distributions.</p>
 
-<p>Before you download and build the Android source, ensure your system meets the following requirements:</p>
+<p>Before you download and build the Android source, ensure your system meets
+the following 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 50GB or more of disk space in order to
+  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>
 
@@ -36,8 +37,8 @@
   branch. You can compile older versions on 32-bit systems.
   </li>
 
-  <li>At least 50GB of free disk space for a checkout, 100GB for a single
-  build, and 150GB or more for multiple builds. If you employ ccache, you will
+  <li>At least 100GB of free disk space for a checkout, 150GB for a single
+  build, and 200GB or more for multiple builds. If you employ ccache, you will
   need even more space.</p>
   </li>
 
diff --git a/src/source/code-lines.jd b/src/source/code-lines.jd
index 2e82e7b..3ec8798 100644
--- a/src/source/code-lines.jd
+++ b/src/source/code-lines.jd
@@ -89,7 +89,7 @@
   </li>
   <li>
 	<p>
-	  An <em>upstream</em> project is an open-source project from which the Android stack is
+	  An <em>upstream</em> project is an open source project from which the Android stack is
 	  pulling code. These include obvious projects such as the Linux kernel and WebKit.
 	  Over time we are migrating some of the semi-autonomous Android projects (such as ART,
 	  the Android SDK tools, Bionic, and so on) to work as "upstream" projects. Generally,
@@ -173,7 +173,7 @@
   As a result, Google frequently has possession of confidential information from third parties.
   And we must refrain from revealing sensitive features until we've secured the appropriate
   protections. In addition, there are real risks to the platform arising from having too many
-  platform versions extant at once. For these reasons, we have structured the open-source
+  platform versions extant at once. For these reasons, we have structured the open source
   project -- including third-party contributions -- to focus on the currently-public stable
   version of Android. "Deep development" on the next version of the platform will happen in
   private until it's ready to become an official release.
diff --git a/src/source/community/index.jd b/src/source/community.jd
similarity index 98%
rename from src/source/community/index.jd
rename to src/source/community.jd
index 8845469..ea92fb7 100644
--- a/src/source/community/index.jd
+++ b/src/source/community.jd
@@ -27,7 +27,7 @@
 <ul>
 <li>
 <p><em>android-platform</em>:
-This list is for general discussion about the Android open-source project or
+This list is for general discussion about the Android Open Source Project or
 the platform technologies.</p>
 <ul>
 <li>Subscribe using Google Groups:
@@ -258,4 +258,4 @@
 <p><a href="irc://irc.freenode.net/android-root">#android-root</a> - for
 discussion related to off-label uses of hardware</p>
 </li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/src/source/developing.jd b/src/source/developing.jd
index 0bbafe2..7788f56 100644
--- a/src/source/developing.jd
+++ b/src/source/developing.jd
@@ -25,7 +25,7 @@
 </div>
 
 <p>To work with the Android code, you will need to use both Git and Repo.  In most situations, you can use Git instead of Repo, or mix Repo and Git commands to form complex commands. Using Repo for basic across-network operations will make your work much simpler, however.</p>
-<p><strong>Git</strong> is an open-source version-control system designed to handle very large projects that are distributed over multiple repositories. In the context of Android, we use Git for local operations such as local branching, commits, diffs, and edits.  One of the challenges in setting up the Android project was figuring out how to best support the outside community--from the hobbiest community to large OEMs building mass-market consumer devices. We wanted components to be replaceable, and we wanted interesting components to be able to grow a life of their own outside of Android. We first chose a distributed revision control system, then further narrowed it down to Git.</p>
+<p><strong>Git</strong> is an open source version-control system designed to handle very large projects that are distributed over multiple repositories. In the context of Android, we use Git for local operations such as local branching, commits, diffs, and edits.  One of the challenges in setting up the Android project was figuring out how to best support the outside community--from the hobbiest community to large OEMs building mass-market consumer devices. We wanted components to be replaceable, and we wanted interesting components to be able to grow a life of their own outside of Android. We first chose a distributed revision control system, then further narrowed it down to Git.</p>
 <p><strong>Repo</strong> is a repository management tool that we built on top of Git. Repo
 unifies the many Git repositories when necessary, does the uploads to our
 <a href="https://android-review.googlesource.com/">revision control system</a>, and
@@ -101,7 +101,8 @@
 <pre><code>$ repo branches
 </code></pre>
 <p>The name of the current branch will be preceded by an asterisk.</p>
-<p><em>Note: A bug might be causing <code>repo sync</code> to reset the local topic branch. If <code>git branch</code> shows * (no branch) after you run <code>repo sync</code>, then run <code>git checkout</code> again.</em></p>
+<p class="note"><strong>Note:</strong> A bug might be causing <code>repo sync</code> to reset the local topic branch. 
+If <code>git branch</code> shows * (no branch) after you run <code>repo sync</code>, then run <code>git checkout</code> again.</p>
 <h2 id="staging-files">Staging files</h2>
 <p>By default, Git notices but does not track the changes you make in a project. In order to tell git to preserve your changes, you must mark them for inclusion in a commit. This is also called "staging". </p>
 <p>You can stage your changes by running</p>
diff --git a/src/source/faqs.jd b/src/source/faqs.jd
index 346ad98..6c01017 100644
--- a/src/source/faqs.jd
+++ b/src/source/faqs.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -44,11 +44,11 @@
 their innovative ideas a reality. We also wanted to make sure there was no
 central point of failure, so no single industry player could restrict or control
 the innovations of any other.  The single most important goal of the Android
-Open Source Project (AOSP) is to make sure that the open-source Android
+Open Source Project (AOSP) is to make sure that the open source Android
 software is implemented as widely and compatibly as possible, to everyone's
 benefit.</p>
-<h3 id="what-kind-of-open-source-project-is-android">What kind of open-source project is Android?</h3>
-<p>Google oversees the development of the core Android open-source platform
+<h3 id="what-kind-of-open-source-project-is-android">What kind of open source project is Android?</h3>
+<p>Google oversees the development of the core Android open source platform
 and works to create robust developer and user communities. For the most part,
 the Android source code is licensed under the permissive Apache Software
 License 2.0, rather than a "copyleft" license. The main reason for this is
@@ -66,7 +66,7 @@
 operation and strikes the business deals necessary to make sure great
 devices running Android actually make it to market.</p>
 <p>By making sure Android is a success with users, we help ensure the
-vitality of Android as a platform and as an open-source project. After all,
+vitality of Android as a platform and as an open source project. After all,
 who wants the source code to an unsuccessful product?</p>
 <p>Google's goal is to ensure a successful ecosystem around Android. Of course, no
 one is required to participate. We opened the Android source code
@@ -84,7 +84,7 @@
 according to the actual needs of real-world devices.</p>
 <h3 id="how-is-the-android-software-developed">How is the Android software developed?</h3>
 <p>Each platform version of Android (such as 1.5, 1.6, and so on) has a
-corresponding branch in the open-source tree. At any given moment, the most
+corresponding branch in the open source tree. At any given moment, the most
 recent such branch will be considered the "current stable" branch version.
 This current stable branch is the one that manufacturers port to their
 devices. This branch is kept suitable for release at all times.</p>
@@ -148,7 +148,7 @@
 around the same time the devices reach users.</p>
 <h3 id="how-does-the-aosp-relate-to-the-android-compatibility-program">How does the AOSP relate to the Android Compatibility Program?</h3>
 <p>The Android Open Source Project maintains the Android software, and
-develops new versions. Since it's open-source, this software can be used for
+develops new versions. Since it's open source, this software can be used for
 any purpose, including to develop devices that are not compatible with other
 devices based on the same source.</p>
 <p>The function of the Android Compatibility Program is to define a baseline
@@ -172,7 +172,7 @@
 in the ART runtime. Similarly, we won't accept contributions such as GPL
 or LGPL libraries that are incompatible with our licensing goals.</p>
 <p>We encourage those interested in contributing source code to contact us
-via the channels listed on the <a href="{@docRoot}source/community/index.html">
+via the channels listed on the <a href="{@docRoot}source/community.html">
 Android Community</a> page prior to beginning any work. You can find more
 information on this topic from the <a href="{@docRoot}source/contributing.html">
 Contributing</a> page.</p>
@@ -187,7 +187,7 @@
 Approvers are typically Google employees, but the same approvers are
 responsible for all submissions, regardless of origin.</p>
 <p>You can find more information on this topic at the <a href="submit-patches.html">Submitting Patches</a> page.</p>
-<a href="#top">Back to top</a>  
+<a href="#top">Back to top</a>
 <h2 id="compatibility">Compatibility</h2>
 <h3 id="what-does-compatibility-mean">What does "compatibility" mean?</h3>
 <p>We define an "Android-compatible device" as one that can run any
@@ -250,7 +250,7 @@
 they must first demonstrate their devices are compatible.</p>
 <h3 id="how-much-does-compatibility-certification-cost">How much does compatibility certification cost?</h3>
 <p>There is no cost to obtain Android compatibility for a device. The
-Compatibility Test Suite is open-source and available to anyone for device testing.</p>
+Compatibility Test Suite is open source and available to anyone for device testing.</p>
 <h3 id="how-long-does-compatibility-take">How long does compatibility take?</h3>
 <p>The process is automated. The Compatibility Test Suite generates a report
 that can be provided to Google to verify compatibility. Eventually we intend
@@ -261,7 +261,7 @@
 for each release. We draft the CDD for a new Android version in consultation
 with various OEMs who provide input on its contents.</p>
 <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>
-<p>Since Android's code is open-source, we can't prevent someone from using an
+<p>Since Android's code is open source, we can't prevent someone from using an
 old version to launch a device. Instead, Google chooses not to license the
 Google Play client software for use on versions that are considered
 obsolete. This allows anyone to continue to ship old versions of Android,
diff --git a/src/source/index.jd b/src/source/index.jd
index 34531f0..1941ed6 100644
--- a/src/source/index.jd
+++ b/src/source/index.jd
@@ -17,7 +17,7 @@
     limitations under the License.
 -->
 <p>
-Android is an open-source software stack created for a wide array of devices
+Android is an open source software stack created for a wide array of devices
 with different form factors. The primary purposes of Android are to create an
 open software platform available for carriers, OEMs, and developers to make
 their innovative ideas a reality and to introduce a successful,
@@ -47,7 +47,7 @@
 </p>
 <p>The companies that have invested in Android have done so on its merits
 because we believe an open platform is necessary. Android is
-intentionally and explicitly an open-source -- as opposed to a free software --
+intentionally and explicitly an open source -- as opposed to a free software --
 effort; a group of organizations with shared needs has pooled
 resources to collaborate on a single implementation of a shared product.
 The Android philosophy is pragmatic, first and foremost. The objective is
diff --git a/src/source/initializing.jd b/src/source/initializing.jd
index f7863e6..1358081 100644
--- a/src/source/initializing.jd
+++ b/src/source/initializing.jd
@@ -47,7 +47,7 @@
 <p>For Gingerbread (2.3.x) and newer versions, including the <code>master</code>
 branch, a 64-bit environment is required. Older versions can be
 compiled on 32-bit systems.</p>
-<p><strong>Note</strong>: See the <a href="building.html">Downloading and
+<p class="note"><strong>Note:</strong> See the <a href="building.html">Downloading and
 Building</a> page for the list of hardware and software requirements. Then
 follow the detailed instructions for Ubuntu and Mac OS below.</p>
 
@@ -74,7 +74,7 @@
 Java 6: for Gingerbread through KitKat<br/>
 Java 5: for Cupcake through Froyo</p>
 
-<p><strong>Note</strong>: The <code>lunch</code> command in the build step will ensure that the Sun JDK is
+<p class="note"><strong>Note:</strong> The <code>lunch</code> command in the build step will ensure that the Sun JDK is
 used instead of any previously installed JDK.</p>
 
 <h3 id="installing-required-packages-ubuntu-1404">Installing required packages (Ubuntu 14.04)</h3>
@@ -212,7 +212,7 @@
 <pre><code># mount the android file image
 function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
 </code></pre>
-<p><strong>Note</strong>: If your system created a <code>.dmg.sparseimage</code> file, replace <code>~/android.dmg</code> with <code>~/android.dmg.sparseimage</code>.</p>
+<p class="note"><strong>Note:</strong> If your system created a <code>.dmg.sparseimage</code> file, replace <code>~/android.dmg</code> with <code>~/android.dmg.sparseimage</code>.</p>
 </li>
 <li>
 <p>To unmount it when you execute <code>umountAndroid</code>:</p>
@@ -266,13 +266,11 @@
 </li>
 <li>
 <p>Install MacPorts from <a href="http://www.macports.org/install.php">macports.org</a>.</p>
-<p><em>Note: Make sure that <code>/opt/local/bin</code> appears in your path BEFORE <code>/usr/bin</code>.  If not, add</em> </p>
-<pre><code>export PATH=/opt/local/bin:$PATH
-</code></pre>
-<p><em>to your <code>~/.bash_profile</code>.</em></p>
-
-<p><strong>Note</strong>: If you do not have a <code>.bash_profile</code> file in your home directory, create one.</p>
-
+<p class="note"><strong>Note:</strong> Make sure that <code>/opt/local/bin</code> appears in your path <strong>before</strong> <code>/usr/bin</code>. If not, please add the following to your <code>~/.bash_profile</code> file:</p>
+<pre>
+<code>export PATH=/opt/local/bin:$PATH</code>
+</pre>
+<p class="note"><strong>Note:</strong> If you do not have a <code>.bash_profile</code> file in your home directory, create one.</p>
 </li>
 <li>
 <p>Get make, git, and GPG packages from MacPorts: </p>
diff --git a/src/source/roles.jd b/src/source/roles.jd
index dccd402..34c9e46 100644
--- a/src/source/roles.jd
+++ b/src/source/roles.jd
@@ -51,8 +51,8 @@
 <h2 id="verifier">Verifier</h2>
 <p>"Verifiers" are responsible for testing change requests. After individuals
 have submitted a significant amount of high-quality code to the project, the
-project leads might invite them to become verifiers. <em>Note: at this
-time, verifiers act similarly to approvers.</em></p>
+project leads might invite them to become verifiers.</p>
+<p class="note"><strong>Note:</strong> At this time, verifiers act similarly to approvers.</p>
 <h2 id="approver">Approver</h2>
 <p>"Approvers" are experienced members of the project who have demonstrated their
 design skills and have made significant technical contributions to the
diff --git a/src/source/source_toc.cs b/src/source/source_toc.cs
index 84897f1..b707b43 100644
--- a/src/source/source_toc.cs
+++ b/src/source/source_toc.cs
@@ -1,5 +1,5 @@
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2015 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.
@@ -78,7 +78,7 @@
 
   <li class="nav-section">
     <div class="nav-section-header empty">
-      <a href="<?cs var:toroot ?>source/community/index.html">
+      <a href="<?cs var:toroot ?>source/community.html">
         <span class="en">Community</span>
       </a>
     </div>
diff --git a/src/source/submit-patches.jd b/src/source/submit-patches.jd
index d78aabc..0298ea9 100644
--- a/src/source/submit-patches.jd
+++ b/src/source/submit-patches.jd
@@ -179,7 +179,7 @@
 <p>To publish your comments so that others using Gerrit will be able to see them, click the Publish Comments button. Your comments will be emailed to all relevant parties for this change, including the change owner, the patch set uploader (if different from the owner), and all current reviewers.</p>
 <p><a name="upstream-projects"></a></p>
 <h1 id="upstream-projects">Upstream Projects</h1>
-<p>Android makes use of a number of other open-source projects, such as the Linux kernel and WebKit, as described in
+<p>Android makes use of a number of other open source projects, such as the Linux kernel and WebKit, as described in
 <a href="{@docRoot}source/code-lines.html">Codelines, Branches, and Releases</a>. For most projects under <code>external/</code>, changes should be made upstream and then the Android maintainers informed of the new upstream release containing these changes. It may also be useful to upload patches that move us to track a new upstream release, though these can be difficult changes to make if the project is widely used within Android like most of the larger ones mentioned below, where we tend to upgrade with every release.</p>
 <p>One interesting special case is bionic. Much of the code there is from BSD, so unless the change is to code that's new to bionic, we'd much rather see an upstream fix and then pull a whole new file from the appropriate BSD. (Sadly we have quite a mix of different BSDs at the moment, but we hope to address that in future, and get into a position where we track upstream much more closely.)</p>
 <h2 id="icu4c">ICU4C</h2>
diff --git a/src/source/using-eclipse.jd b/src/source/using-eclipse.jd
index 4d78c42..33ef381 100644
--- a/src/source/using-eclipse.jd
+++ b/src/source/using-eclipse.jd
@@ -24,10 +24,10 @@
   </div>
 </div>
 <p>This document will help you set up the Eclipse IDE for Android platform development.</p>
-<p><em>Note: if you are looking for information on how to use
+<p class="note"><strong>Note:</strong> If you are looking for information on how to use
 Eclipse to develop applications that run on Android, this is not the right
 page for you. You probably would find <a href="https://developer.android.com/sdk/eclipse-adt.html">the Eclipse page on 
-developer.android.com</a> more useful.</em></p>
+developer.android.com</a> more useful.</p>
 <h2 id="basic-setup">Basic setup</h2>
 <p>First, it's important to make sure the regular Android development system is set up.</p>
 <pre><code>cd /path/to/android/root 
@@ -81,7 +81,7 @@
 </li>
 </ol>
 <p>Once the project workspace is created, Eclipse should start building. In theory, it should build with no errors and you should be set to go. If necessary, uncheck and re-check Project Build Automatically to force a rebuild.</p>
-<p><em>Note:</em> Eclipse sometimes likes to add an <code>import android.R</code> statement at the top of your files that use resources, especially when you ask eclipse to sort or otherwise manage imports. This will cause your make to break. Look out for these erroneous import statements and delete them.</p>
+<p class="note"><strong>Note:</strong> Eclipse sometimes adds an <code>import android.R</code> statement at the top of your files that use resources, especially when you ask eclipse to sort or otherwise manage imports. This will cause your make to break. Look out for these erroneous import statements and delete them.</p>
 <h3 id="when-you-sync">When You Sync</h3>
 <p>Every time you repo sync, or otherwise change files outside of Eclipse (especially the .classpath), you need to refresh Eclipse's view of things:</p>
 <ol>
@@ -230,5 +230,5 @@
 </li>
 </ul>
 <p>If you're still having problems, please contact one of the <a
-href="{@docRoot}source/community/index.html">Android community mailing lists or
+href="{@docRoot}source/community.html">Android community mailing lists or
 IRC channels</a>.</p>
diff --git a/src/source/using-repo.jd b/src/source/using-repo.jd
index 57a93c9..61d40eb 100644
--- a/src/source/using-repo.jd
+++ b/src/source/using-repo.jd
@@ -58,7 +58,7 @@
 <p><code>-b</code>: specify a revision, i.e., a particular manifest-branch.</p>
 </li>
 </ul>
-<p><em>Note: For all remaining Repo commands, the current working directory must either be the parent directory of <code>.repo/</code> or a subdirectory of the parent directory.</em></p>
+<p class="note"><strong>Note:</strong> For all remaining Repo commands, the current working directory must either be the parent directory of <code>.repo/</code> or a subdirectory of the parent directory.</p>
 <h2 id="sync">sync</h2>
 <pre><code>repo sync [<em>&lt;PROJECT_LIST&gt;</em>]
 </code></pre>
@@ -134,7 +134,7 @@
 <pre><code>$ repo download platform/build 23823
 </code></pre>
 <p>A <code>repo sync</code> should effectively remove any commits retrieved via <code>repo download</code>. Or, you can check out the remote branch; e.g., <code>git checkout m/master</code>.</p>
-<p>*Note: There is a slight mirroring lag between when a change is visible on
+<p class="note"><strong>Note:</strong> There is a slight mirroring lag between when a change is visible on
 the web in <a href="https://android-review.googlesource.com/">Gerrit</a> and when
 <code>repo download</code> will be able to find it for all users, because of replication
 delays to all servers worldwide.</p>
@@ -181,7 +181,7 @@
 <p>Begins a new branch for development, starting from the revision specified in the manifest.</p>
 <p>The <code><em>&lt;BRANCH_NAME&gt;</em></code> argument should provide a short description of the change you are trying to make to the projects.If you don't know, consider using the name default.</p>
 <p>The <code><em>&lt;PROJECT_LIST&gt;</em></code> specifies which projects will participate in this topic branch. </p>
-<p><em>Note: "." is a useful shorthand for the project in the current working directory.</em></p>
+<p class="note"><strong>Note:</strong> "." is a useful shorthand for the project in the current working directory.</p>
 <h2 id="status">status</h2>
 <pre><code>repo status [<em>&lt;PROJECT_LIST&gt;</em>]
 </code></pre>
