diff --git a/src/accessories/aoa.jd b/src/accessories/aoa.jd
index 7c728fe..8eb7723 100644
--- a/src/accessories/aoa.jd
+++ b/src/accessories/aoa.jd
@@ -20,17 +20,18 @@
 protocol, which defines how an accessory detects and sets up communication with
 an Android-powered device. Accessories should carry out the following steps:</p>
 
-<ul>
+<ol>
 <li>Wait for and detect a connected device.</li>
 <li>Determine the device's accessory mode support.</li>
 <li>Attempt to start the device in accessory mode (if needed).</li>
 <li>If the device supports AOA, establish communication with the device.</li>
-</ul>
+</ol>
 
 <p>The following sections explain how to implement these steps.</p>
 
-<p class="note">When developing a new accessory that connects to an Android
-device over USB, use <a href="{@docRoot}accessories/aoa2.html">AOAv2</a>.</p>
+<p class="note"><strong>Note:</strong> When developing a new accessory that
+connects to an Android device over USB, use
+<a href="{@docRoot}accessories/aoa2.html">AOAv2</a>.</p>
 
 <h2 id="wait-for-and-detect-connected-devices">Wait for and detect connected
 devices</h2>
@@ -79,14 +80,14 @@
 <p>If the vendor and product IDs do not correspond to an Android-powered device
 in accessory mode, the accessory cannot discern whether the device supports (but
 is not in) accessory mode or if the device does not support accessory mode. This
-can occur because devices that support accessory mode (but are not in that mode)
-initially report the <em>device</em> manufacturer vendor and product IDs instead
-of the <em>AOA</em> vendor and product IDs.</p>
+can occur because devices that support accessory mode (but are not in accessory
+mode) initially report the <em>device</em> manufacturer vendor and product IDs
+instead of the <em>AOA</em> vendor and product IDs.</p>
 
 <p>The accessory should try to start the device in accessory mode to determine
 if the device supports that mode:</p>
 
-<ul>
+<ol>
   <li>Send a 51 control request ("Get Protocol") to determine if the device
   supports the Android accessory protocol. If the device supports the protocol,
   it returns a non-zero number that represents the supported protocol version.
@@ -141,18 +142,23 @@
 data:           none
 </pre>
   </li>
-</ul>
+</ol>
 
 <p>After completing these steps, the accessory should wait for the connected USB
 device to re-introduce itself on the bus in accessory mode, then re-enumerate
-connected devices. The algorithm returns to
-<a href="#determine-accessory-mode-support">determine accessory mode support</a>
-to check the vendor and product IDs, which should be correct (e.g. correspond to
-Google's vendor and product IDs instead of the device manufacturer's IDs) if the
-device successfully switched to accessory mode. If IDs are correct, the
+connected devices. The algorithm
+<a href="#determine-accessory-mode-support">determines accessory mode support</a>
+by checking the vendor and product IDs, which should be correct (e.g. correspond
+to Google's vendor and product IDs instead of the device manufacturer's IDs) if
+the device successfully switched to accessory mode. If IDs are correct, the
 accessory moves to <a href="#establish-communication-with-the-device">establish
 communication with the device</a>.</p>
 
+<p class="note"><strong>Note:</strong> AOA does not currently support
+simultaneous AOA and MTP connections. To switch from AOA to MTP, the accessory
+must first disconnect the USB device (either physically or in an electrically
+equivalent way) then reconnect using MTP.</p>
+
 <p>If any step fails, the accessory determines the device does not support
 Android accessory mode and waits for the next device to connect.</p>
 
diff --git a/src/compatibility/downloads.jd b/src/compatibility/downloads.jd
index c6973be..e88a6ce 100644
--- a/src/compatibility/downloads.jd
+++ b/src/compatibility/downloads.jd
@@ -27,25 +27,44 @@
 <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-60">Android 6.0</h2>
+<p>Android 6.0 is the release of the development milestone code-named Marshmallow.
+The source code for the following tests can be synced with the
+'android-cts-6.0_r1' tag in the open-source tree.</p>
+<ul>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-6.0_r1-linux_x86-arm.zip">Android
+6.0 R1 Compatibility Test Suite (CTS) - ARM</a></li>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-6.0_r1-linux_x86-x86.zip">Android
+6.0 R1 Compatibility Test Suite (CTS) - x86</a></li>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-6.0_r1-linux_x86-arm.zip">Android
+6.0 R1 CTS Verifier - ARM</a></li>
+<li><a
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-6.0_r1-linux_x86-x86.zip">Android
+6.0 R1 CTS Verifier - x86</a></li>
+</ul>
+
 <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_r2' tag in the open source tree.</p>
+'android-cts-5.1_r3' tag in the open source tree.</p>
 <ul>
 <li><a href="5.1/android-5.1-cdd.pdf">Android 5.1 Compatibility Definition
 Document (CDD)</a></li>
 <li><a
-href="https://dl.google.com/dl/android/cts/android-cts-5.1_r2-linux_x86-arm.zip">Android
-5.1 R2 Compatibility Test Suite (CTS) - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-5.1_r3-linux_x86-arm.zip">Android
+5.1 R3 Compatibility Test Suite (CTS) - ARM</a></li>
 <li><a
-href="https://dl.google.com/dl/android/cts/android-cts-5.1_r2-linux_x86-x86.zip">Android
-5.1 R2 Compatibility Test Suite (CTS) - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-5.1_r3-linux_x86-x86.zip">Android
+5.1 R3 Compatibility Test Suite (CTS) - x86</a></li>
 <li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-5.1_r2-linux_x86-arm.zip">Android
-5.1 R2 CTS Verifier - ARM</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-5.1_r3-linux_x86-arm.zip">Android
+5.1 R3 CTS Verifier - ARM</a></li>
 <li><a
-href="https://dl.google.com/dl/android/cts/android-cts-verifier-5.1_r2-linux_x86-x86.zip">Android
-5.1 R2 CTS Verifier - x86</a></li>
+href="https://dl.google.com/dl/android/cts/android-cts-verifier-5.1_r3-linux_x86-x86.zip">Android
+5.1 R3 CTS Verifier - x86</a></li>
 </ul>
 
 <h2 id="android-50">Android 5.0</h2>
@@ -122,7 +141,7 @@
 </ul>
 <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
+Ice Cream Sandwich. Source code for
 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>
diff --git a/src/devices/audio/midi_test.jd b/src/devices/audio/midi_test.jd
new file mode 100644
index 0000000..fa80670
--- /dev/null
+++ b/src/devices/audio/midi_test.jd
@@ -0,0 +1,259 @@
+page.title=MIDI Test Procedure
+@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 tests may be used to validate the MIDI feature on Android devices.
+Successful execution of these tests is a prerequisite to
+<a href="midi.html#claim-feature">claim the MIDI feature</a>.
+</p>
+
+<h2 id="preparation">Preparation</h2>
+
+
+<h3 id="hardware">Hardware</h3>
+
+<p>
+The following hardware is needed for the tests.
+</p>
+
+<ul>
+  <li> MIDI keyboard with USB connector, e.g. the <a href="http://www.akaipro.com/product/lpk25">Akai LPK25</a></li>
+  <li> MIDI keyboard with Bluetooth Low Energy (BLE) support, e.g. the <a href="http://miselu.com/">Miselu C.24</a></li>
+  <li> USB cables</li>
+  <li> USB On-The-Go (OTG) adapter to convert a female USB-A to male micro-USB or USB-C</li>
+  <li> Android device running Android 6.0 Marshmallow or later release</li>
+  <li> Optional: desktop computer</li>
+</ul>
+
+<h3 id="apps">Apps</h3>
+
+
+<p>Several apps are used by this test procedure:</p>
+
+<table>
+<tr>
+  <th>App</th>
+  <th>Description</th>
+</tr>
+<tr>
+  <td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiScope">MidiScope</a> or
+    <a href="https://github.com/googlesamples/android-MidiScope">MidiScope</a></td>
+  <td>displays MIDI messages on-screen</td>
+</tr>
+<tr>
+  <td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiKeyboard">MidiKeyboard</a></td>
+  <td>sends MIDI messages by pressing an on-screen music keyboard</td>
+</tr>
+<tr>
+  <td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiSynthExample">MidiSynthExample</a> or
+    <br /><a href="https://github.com/googlesamples/android-MidiSynth">MidiSynth</a></td>
+  <td>simple MIDI synthesizer that uses sawtooth oscillators</td>
+</tr>
+<tr>
+  <td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiBtlePairing">MidiBtlePairing</a></td>
+  <td>pairs an Android device with a BLE peripheral</td>
+</tr>
+<tr>
+  <td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiTools">MidiTools</a></td>
+  <td>library dependency of the above apps</td>
+</tr>
+</table>
+
+<p>
+Most of these apps are part of the GitHub project
+<a href="https://github.com/philburk/android-midisuite">android-midisuite</a>.
+</p>
+
+<p>Each test has a list of apps that are used. After building each app, you can install the app using
+<a href="http://developer.android.com/tools/help/adb.html">Android Debug Bridge</a> (ADB).
+For example, to install the <em>MidiScope</em> app:</p>
+
+<ol>
+  <li> Use a workstation with ADB installed.</li>
+  <li> Connect a USB cable from the workstation to the Android device.</li>
+  <li> You may need to allow the USB connection on the Android device; see <a href="midi.html#usb-peripheral">USB peripheral mode</a></li>
+  <li> On the workstation, enter:</li>
+</ol>
+
+<pre>
+cd <em>&lt;this-folder&gt;</em>
+adb install -r MidiScope.apk
+</pre>
+
+
+<h2 id="virtual_synth_tests">Virtual synth tests</h2>
+
+
+<p>Note that a MIDI input port can have only one connection. So if another app is
+already using an input port, that port will not be available. If you cannot connect to
+an input port then try closing other apps.</p>
+
+<p>Hardware needed: Android device under test</p>
+
+<h3 id="simple_connection">Simple connection</h3>
+
+
+<p>Apps needed: <em>MidiKeyboard</em>, <em>MidiSynthExample</em></p>
+
+<p>This tests device enumeration, virtual devices, port connections, and message
+sending.</p>
+
+<ol>
+  <li> Adjust volume on Android device to about halfway.</li>
+  <li> Orient phone in landscape mode.</li>
+  <li> Launch <em>MidiKeyboard</em> app.</li>
+  <li> Select <strong>SynthExample</strong> from the spinner menu.</li>
+  <li> Play keys. You should hear notes being played in the <em>SynthExample</em> app.</li>
+  <li> Exit the application by pressing the <strong>Back</strong> button so that the port will be
+closed.</li>
+</ol>
+
+<h2 id="host_mode">USB test: host mode</h2>
+
+
+<p>Hardware needed: USB MIDI keyboard, USB cable, OTG adapter</p>
+
+<p>Repeat these tests several times. We have seen the USB stack crash hard on some
+prototype devices if devices were plugged in and unplugged a few times.</p>
+
+<h3 id="keyboard_already_plugged_in">Keyboard already plugged in</h3>
+
+
+<p>Apps needed: <em>MidiSynthExample</em> or <em>MidiScope</em></p>
+
+<p>This tests USB MIDI in host mode.</p>
+
+<ol>
+  <li> Adjust volume on Android device to about halfway.</li>
+  <li> Plug in USB keyboard using the OTG adapter.</li>
+  <li> Launch <em>SynthExample</em> app or the <em>MidiScope</em> app.</li>
+  <li> From the menu select  the USB keyboard. It will display the brand.</li>
+  <li> Play notes on the keyboard. If you ran <em>SynthExample</em> then you should hear notes
+being played on the phone. If you ran <em>MidiScope</em> then you should see <em>NoteOn</em> and
+<em>NoteOff</em> messages on-screen.</li>
+  <li> Unplug the keyboard. The <em>Sender for Synth</em> menu should display <em>- - - - -</em>.</li>
+  <li> Exit the application by pressing the <strong>Back</strong> button.</li>
+</ol>
+
+<h3 id="hot_plug_usb_keyboard">Hot-plug USB keyboard</h3>
+
+
+<p>Apps needed: <em>MidiSynthExample</em> or <em>MidiScope</em></p>
+
+<p>This tests USB MIDI in host mode.</p>
+
+<ol>
+  <li> Adjust volume on Android device to about halfway.</li>
+  <li> Make sure there is not a USB MIDI keyboard plugged in.</li>
+  <li> Launch <em>SynthExample</em> app.</li>
+  <li> At middle, next to <em>Sender for Synth</em>, look in menu. You should not see the USB
+keyboard listed.</li>
+  <li> Plug in USB keyboard using the OTG adapter.</li>
+  <li> At middle, next to <em>Sender for Synth</em>, select the USB keyboard. It will display
+the brand.</li>
+  <li> Play notes on the keyboard. You should hear notes being played on the phone.</li>
+  <li> At middle, next to <em>Sender for Synth</em>, select <strong>- - - - -</strong>.</li>
+  <li> Play notes on the keyboard. You should hear nothing.</li>
+  <li> At middle, next to <em>Sender for Synth</em>, select the USB keyboard. It will display
+the brand.</li>
+  <li> Play notes on the keyboard. You should hear notes being played on the phone.</li>
+  <li> Unplug the synthesizer. The <em>Sender for Synth</em> menu should display <em>- - - - -</em>.</li>
+  <li>  Exit the application by pressing the <strong>Back</strong> button.</li>
+</ol>
+
+<h2 id="peripheral_mode">USB test: peripheral mode</h2>
+
+
+<p>Hardware needed: USB cable, OTG adapter</p>
+
+<h3 id="android_to_android">Android-to-Android</h3>
+
+
+<p>Apps needed: <em>MidiKeyboard</em> on Android device under test, <em>MidiScope</em> on another
+Android device.</p>
+
+<p>Use Android devices as a peripheral controller for another Android device. To help test
+this mode, use another Android device running in host mode. Note that
+you could modify the test to work with a desktop computer running Digital Audio Workstation (DAW)
+software such as
+GarageBand.</p>
+
+<ol>
+  <li> Connect the USB cable to the Android device under test (Android device <strong>A</strong>).</li>
+  <li> Use an OTG adapter to connect the other end of the cable to a second Android
+device <strong>B</strong> that operates in host mode.</li>
+  <li> On Android device A:
+  <ol>
+    <li> Drag finger down from top of screen.</li>
+    <li> Select <strong>USB for Charging</strong> icon.</li>
+    <li> Select <strong>MIDI</strong>.</li>
+    <li> Launch <em>MidiKeyboard</em> app.</li>
+    <li> Select <strong>Android USB Peripheral Port</strong> from <em>Receiver for Keys</em> menu at top.</li>
+  </ol>
+  </li>
+  <li> On Android device B:
+  <ol>
+    <li> Launch <em>MidiScope</em> app.</li>
+    <li> Select the other Android device as the source.</li>
+  </ol>
+  </li>
+  <li> On Android device A:
+  <ol>
+    <li> Play notes on the keyboard and look for <em>NoteOn</em> and <em>NoteOff</em> on Android device B.</li>
+  </ol>
+  </li>
+  </ol>
+
+<h2 id="bluetooth_le_test">BLE test</h2>
+
+
+<p>Hardware needed: MIDI keyboard supporting BLE</p>
+
+<h3 id="basic_pairing_and_playing">Basic pairing and playing</h3>
+
+
+<p>Apps needed: <em>MidiBtlePairing</em>, <em>MidiSynthExample</em></p>
+
+<p>Test a keyboard connected to Android over BLE.</p>
+
+<ol>
+  <li> Reboot the Android device.</li>
+  <li> Power on the BLE keyboard.<br />
+       (The Miselu C.24 keyboard is powered on by pushing the button near the back so
+that it pops open. The power button on the C.24 pulses blue when in pairing
+mode.)</li>
+  <li> Launch the <em>MidiBtlePairing</em> app. It has a <em>MIDI+BTLE</em> icon.</li>
+  <li> Press the <strong>Bluetooth Scan</strong> button.</li>
+  <li> Select desired BLE peripheral.</li>
+  <li> The app should return to the main page, and you should see the peripheral listed. If
+you are using a C.24, then you will notice that the light should turn green on
+the C.24 to indicate paired mode.</li>
+  <li> Exit the app by pressing the <strong>Home</strong> button, not the <strong>Back</strong> button.</li>
+  <li> Launch the SynthExample app.</li>
+  <li> Select the BLE keyboard as the sender from the menu.</li>
+  <li> You should be able to press keys on the BLE keyboard and hear notes on
+Android.</li>
+</ol>
diff --git a/src/devices/devices_toc.cs b/src/devices/devices_toc.cs
index 7c73238..018930d 100644
--- a/src/devices/devices_toc.cs
+++ b/src/devices/devices_toc.cs
@@ -52,7 +52,15 @@
           <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 class="nav-section">
+            <div class="nav-section-header">
+              <a href="<?cs var:toroot ?>devices/audio/midi.html">
+                <span class="em">MIDI</span>
+              </a>
+            </div>
+            <ul>
+              <li><a href="<?cs var:toroot ?>devices/audio/midi_test.html">MIDI Test Procedure</a></li>
+            </ul>
           <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>
@@ -310,6 +318,7 @@
                   </a>
                 </div>
                 <ul>
+                  <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements60.html">Android 6.0</a></li>
                   <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements50.html">Android 5.0</a></li>
                   <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements44.html">Android 4.4</a></li>
                   <li><a href="<?cs var:toroot ?>devices/tech/security/enhancements/enhancements43.html">Android 4.3</a></li>
diff --git a/src/devices/graphics/implement.jd b/src/devices/graphics/implement.jd
index 59aca16..3f3654a 100644
--- a/src/devices/graphics/implement.jd
+++ b/src/devices/graphics/implement.jd
@@ -203,9 +203,9 @@
 synchronization allows producers and consumers of graphics buffers to signal
 when they are done with a buffer. This allows the Android system to
 asynchronously queue buffers to be read or written with the certainty that
-another consumer or producer does not currently need them. See the <a
-href="#synchronization_framework">Synchronization framework</a> section for an overview of
-this mechanism.</p>
+another consumer or producer does not currently need them. See the
+<a href="{@docRoot}devices/graphics/index.html#synchronization_framework">Synchronization
+framework</a> section for an overview of this mechanism.</p>
 
 <p>The benefits of explicit synchronization include less behavior variation
 between devices, better debugging support, and improved testing metrics. For
diff --git a/src/devices/graphics/index.jd b/src/devices/graphics/index.jd
index 3bba9dd..1c5b025 100644
--- a/src/devices/graphics/index.jd
+++ b/src/devices/graphics/index.jd
@@ -209,8 +209,9 @@
 <p>Since Android graphics offer no explicit parallelism, vendors have long
 implemented their own implicit synchronization within their own drivers. This
 is no longer required with the Android graphics synchronization framework. See
-the <a href="#explicit_synchronization">Explicit synchronization</a> section
-for implementation instructions.</p>
+the
+<a href="{@docRoot}devices/graphics/implement.html#explicit_synchronization">Explicit
+synchronization</a> section for implementation instructions.</p>
 
 <p>The synchronization framework explicitly describes dependencies between
 different asynchronous operations in the system. The framework provides a
diff --git a/src/devices/tech/admin/managed-profiles.jd b/src/devices/tech/admin/managed-profiles.jd
index c36510e..483fbe4 100644
--- a/src/devices/tech/admin/managed-profiles.jd
+++ b/src/devices/tech/admin/managed-profiles.jd
@@ -167,4 +167,6 @@
   <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)
+  <li>Set <code>DISALLOW_MOUNT_PHYSICAL_MEDIA</code> (<code>FALSE</code> by default.
+When <code>TRUE</code>, physical media, both portable and adoptable, cannot be mounted.)
 </ul>
diff --git a/src/devices/tech/security/enhancements/enhancements60.jd b/src/devices/tech/security/enhancements/enhancements60.jd
new file mode 100644
index 0000000..7cc786e
--- /dev/null
+++ b/src/devices/tech/security/enhancements/enhancements60.jd
@@ -0,0 +1,38 @@
+page.title=Security Enhancements in Android 6.0
+@jd:body
+
+<p>Every Android release includes dozens of security enhancements to protect
+users. Here are some of the major security enhancements available in Android
+6.0:</p>
+<ul>
+  <li><strong>Runtime Permissions</strong>. Applications request permissions at
+    runtime instead of being granted at App
+    install time. Users can toggle permissions on and off for both M and pre-M
+    applications.</li>
+  <li><strong>Verified Boot</strong>. A set of cryptographic checks of system
+    software are conducted prior to
+    execution to ensure the phone is healthy from the bootloader all the way up to
+    the operating system.</li>
+  <li><strong>Hardware-Isolated Security</strong>. New Hardware Abstraction
+    Layer (HAL) used by Fingerprint API, Lockscreen,
+    Device Encryption, and Client Certificates to protect keys against kernel
+    compromise and/or local physical attacks</li>
+  <li><strong>Fingerprints</strong>. Devices can now be unlocked with just a
+    touch. Developers can also take
+    advantage of new APIs to use fingerprints to lock and unlock encryption keys.</li>
+  <li><strong>SD Card Adoption</strong>. Removable media can be
+    <em>adopted</em> to a device and expand available storage for
+    app local data, photos, videos, etc., but still be protected by block-level
+    encryption.</li>
+  <li><strong>Clear Text Traffic</strong>. Developers can use a new StrictMode
+    to make sure their application doesn't use
+    cleartext.</li>
+  <li><strong>System Hardening</strong>. Hardening of the system via policies
+    enforced by SELinux. This offers better
+    isolation between users, IOCTL filtering, reduce threat of exposed services,
+    further tightening of SELinux domains, and extremely limited /proc access.</li>
+  <li><strong>USB Access Control:</strong> Users must confirm to allow USB
+    access to files, storage, or other
+    functionality on the phone. Default is now <em>charge only</em> with access
+    to storage requiring explicit approval from the user.</li>
+</ul>
diff --git a/src/index.jd b/src/index.jd
index 199b14a..b77ab6e 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -42,53 +42,75 @@
   <div class="landing-docs">
     <div class="col-8">
     <h3>What's New</h3>
-<a href="{@docRoot}devices/tech/config/uicc.html">
-        <h4>UICC Carrier Privileges</h4></a>
-        <p>Carriers now have a mechanism to grant special privileges for APIs
-        relevant to the <strong><a
-        href="{@docRoot}devices/tech/config/uicc.html">Universal Integrated
-        Circuit Card (UICC)</a></strong> owner’s apps. This mechanism provides a
-        secure and flexible way to manage apps from the Mobile Network Operator
-        (MNO).</p>
-
-<a href="{@docRoot}devices/audio/midi.html">
-        <h4>Audio MIDI Updates</h4></a>
-        <p><strong><a
-        href="{@docRoot}devices/audio/midi.html#usb-host">Audio MIDI</a></strong>
-        replaces former Tegra examples with generic changelists. And <strong><a
-        href="{@docRoot}devices/tech/config/kernel.html">Kernel
-        Configuration</a></strong> now contains the setting for USB host mode MIDI.</p>
-
-<a href="{@docRoot}source/downloading.html">
-        <h4>Repo Version 1.22 Checksum</h4></a>
-        <p>The <strong><a
-        href="{@docRoot}source/downloading.html#installing-repo">SHA-1 checksum
-        for Repo 1.22</a></strong> has been posted to enable verification and use of the latest
-        version of the tool.</p>
-
 <a href="{@docRoot}source/build-numbers.html">
-        <h4>Build Numbers for Nexus Devices</h4></a>
-        <p>New <strong><a
-        href="{@docRoot}source/build-numbers.html#source-code-tags-and-builds">build
-        tags and branches</a></strong> have been published for Nexus 4, Nexus 5, Nexus 6,
-        Nexus 7 (flo/deb), Nexus 9 (volantis/volantisg), Nexus 10, and Nexus Player.</p>
+        <h4>Android 6.0 and 5.1 Build Numbers and CTS Packages</h4></a>
+        <p>You can now find <strong><a
+        href="{@docRoot}source/build-numbers.html#source-code-tags-and-builds">Build
+        Numbers</a></strong> and CTS packages for <strong><a
+        href="{@docRoot}compatibility/downloads.html#android-60">Android
+        6.0</a></strong> and <strong><a
+        href="{@docRoot}compatibility/downloads.html#android-51">Android
+        5.1</a></strong>.</p>
+
+<a href="{@docRoot}devices/halref/index.html">
+        <h4>HAL and Trad Fed Reference Files</h4></a>
+        <p>Both the <strong><a
+        href="{@docRoot}devices/halref/index.html">Hardware Abstraction Layer
+        (HAL)</a></strong> and <strong><a
+        href="{@docRoot}reference/packages.html">Trade Federation Testing
+        Suite</a></strong> reference files have been updated for Android 6.0.</p>
+
+<a href="{@docRoot}devices/tech/security/enhancements/index.html">
+        <h4>Android 6.0 Security Enhancements</h4></a>
+        <p>The Android security team lists the latest measures undertaken to
+        strengthen the operating system in the new <strong><a
+        href="{@docRoot}devices/tech/security/enhancements/enhancements60.html">Security
+        Enhancements in Android 6.0</a></strong>.</p>
 
 <a href="{@docRoot}devices/tech/power/index.html">
-        <h4>Power Reorganization and Additions</h4></a>
-        <p>The previously singular Power page has been reorganized into a
-        <strong><a href="{@docRoot}devices/tech/power/index.html">Power
-        </a></strong> section that has gained <strong><a
-        href="{@docRoot}devices/tech/power/values.html#values">example values</a></strong> for
-        <code>camera.avg</code> and <code>camera.flashlight</code>.</p>
+        <h4>Doze and App Standby</h4></a>
+        <p>New battery-saving features <em>Doze</em> and <em>App Standby</em>
+        are described in <strong><a href="{@docRoot}devices/tech/power/mgmt.html">Power
+        Management</a></strong> while the remaining <strong><a
+        href="{@docRoot}devices/tech/power/index.html">Power</a></strong> section has
+        been revised.</p>
 
-<a href="{@docRoot}devices/tech/debug/asan.html">
-        <h4>AddressSanitizer and Native Debugging Instructions</h4></a>
+<a href="{@docRoot}devices/tech/security/authentication/index.html">
+        <h4>Authentication</h4></a>
+        <p>An entirely new <strong><a
+        href="{@docRoot}devices/tech/security/authentication/index.html">Authentication</a></strong>
+        section describes the <strong><a
+        href="{@docRoot}devices/tech/security/authentication/fingerprint-hal.html">Fingerprint</a></strong>,
+        <strong><a
+        href="{@docRoot}devices/tech/security/authentication/gatekeeper.html">Gatekeeper</a></strong>,
+        and <strong><a
+        href="{@docRoot}devices/tech/security/authentication/keymaster.html">Keymaster</a></strong>
+        interfaces in detail, including a list of <strong><a
+        href="{@docRoot}devices/tech/security/authentication/km-features.html">Keymaster
+        features</a></strong> and an <strong><a
+        href="{@docRoot}devices/tech/security/authentication/km-implementer-ref.html">implementer's
+        reference</a></strong>.</p>
+
+<a href="{@docRoot}devices/storage/index.html">
+        <h4>Adoptable Storage</h4></a>
         <p>The <strong><a
-        href="{@docRoot}devices/tech/debug/asan.html">AddressSanitizer</a></strong>
-        tool for detecting memory bugs in native Android code is documented for the
-        first time in a dedicated page. Similarly, the main <strong><a
-        href="{@docRoot}devices/tech/debug/index.html">Debugging</a></strong> page now contains
-        instructions for debuggerd, GDB, and Valgrind.</p>
+        href="{@docRoot}devices/storage/index.html">Storage</a></strong>
+        section has been revised to introduce <strong><a
+        href="{@docRoot}devices/storage/adoptable.html">adoptable
+        storage</a></strong> that can hold app data and distinguish between it and <strong><a
+        href="{@docRoot}devices/storage/traditional.html">traditional
+        storage</a></strong>.</p>
+
+<a href="{@docRoot}devices/tech/config/index.html">
+        <h4>Configuration</h4></a>
+        <p>Instructions now exist for configuring <strong><a
+        href="{@docRoot}devices/tech/config/runtime_perms.html">runtime permissions</a></strong>,
+        <strong><a href="{@docRoot}devices/tech/config/voicemail.html">visual
+        voicemail</a></strong>, and Android's new <strong><a
+        href="{@docRoot}devices/tech/config/filesystem.html">file
+        system</a></strong>. And carriers get <strong><a
+        href="{@docRoot}devices/tech/config/carrier.html">custom
+        configuration</a></strong>.</p>
     </div>
 
     <div class="col-8">
