Merge "Docs: Fixing link for cryptsetup, minor formatting"
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><this-folder></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">