Merge "CDD: Requirement updates for the assistant" into mnc-dev
diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index 384b10d..d8f7e6b 100644
--- a/src/compatibility/android-cdd.html
+++ b/src/compatibility/android-cdd.html
@@ -107,6 +107,14 @@
 
 <p class="toc_h2"><a href="#3_12_tv_input_framework">3.12. TV Input Framework</a></p>
 
+<p class="toc_h3"><a href="#3_12_1_tv_app">3.12.1. TV App</a></p>
+
+<p class="toc_h4"><a href="#3_12_1_1_electronic_program_guide">3.12.1.1. Electronic Program Guide</a></p>
+
+<p class="toc_h4"><a href="#3_12_1_2_navigation">3.12.1.2. Navigation</a></p>
+
+<p class="toc_h4"><a href="#3_12_1_3_tv_input_app_linking">3.12.1.3. TV input app linking</a></p>
+
 <p class="toc_h1"><a href="#4_application_packaging_compatibility">4. Application Packaging Compatibility</a></p>
 
 <p class="toc_h1"><a href="#5_multimedia_compatibility">5. Multimedia Compatibility</a></p>
@@ -225,6 +233,10 @@
 
 <p class="toc_h3"><a href="#7_3_8_proximity_sensor">7.3.8. Proximity Sensor</a></p>
 
+<p class="toc_h3"><a href="#7_3_9_hifi_sensors">7.3.9. High Fidelity Sensors</a></p>
+
+<p class="toc_h3"><a href="#7_3_10_fingerprint">7.3.10. Fingerprint Sensor</a></p>
+
 <p class="toc_h2"><a href="#7_4_data_connectivity">7.4. Data Connectivity</a></p>
 
 <p class="toc_h3"><a href="#7_4_1_telephony">7.4.1. Telephony</a></p>
@@ -261,6 +273,8 @@
 
 <p class="toc_h3"><a href="#7_6_2_application_shared_storage">7.6.2. Application Shared Storage</a></p>
 
+<p class="toc_h3"><a href="#7_6_3_adoptable_storage">7.6.3. Adoptable Storage</a></p>
+
 <p class="toc_h2"><a href="#7_7_usb">7.7. USB</a></p>
 
 <p class="toc_h2"><a href="#7_8_audio">7.8. Audio</a></p>
@@ -277,7 +291,7 @@
 
 <p class="toc_h2"><a href="#8_1_user_experience_consistency">8.1. User Experience Consistency</a></p>
 
-<p class="toc_h2"><a href="#8_2_memory_performance">8.2. Memory Performance</a></p>
+<p class="toc_h2"><a href="#8_2_file_i_o_access_performance">8.2. File I/O Access Performance</a></p>
 
 </div>
 
@@ -307,6 +321,10 @@
 
 <p class="toc_h2"><a href="#9_10_verified_boot">9.10. Verified Boot</a></p>
 
+<p class="toc_h2"><a href="#9_11_keys_and_credentials">9.11. Keys and Credentials</a></p>
+
+<p class="toc_h2"><a href="#9_12_data_deletion">9.12. Data Deletion</a></p>
+
 <p class="toc_h1"><a href="#10_software_compatibility_testing">10. Software Compatibility Testing</a></p>
 
 <p class="toc_h2"><a href="#10_1_compatibility_test_suite">10.1. Compatibility Test Suite</a></p>
@@ -335,7 +353,7 @@
 <p>This document enumerates the requirements that must be met in order for devices
 to be compatible with Android ANDROID_VERSION.</p>
 
-<p>The use of &ldquo;MUST&rdquo;, &ldquo;MUST NOT&rdquo;, &ldquo;REQUIRED&rdquo;, &ldquo;SHALL&rdquo;, &ldquo;SHALL NOT&rdquo;, &ldquo;SHOULD&rdquo;,&ldquo;SHOULD NOT&rdquo;, &ldquo;RECOMMENDED&rdquo;, &ldquo;MAY&rdquo;, and &ldquo;OPTIONAL&rdquo; is per the IETF standard
+<p>The use of &ldquo;MUST&rdquo;, &ldquo;MUST NOT&rdquo;, &ldquo;REQUIRED&rdquo;, &ldquo;SHALL&rdquo;, &ldquo;SHALL NOT&rdquo;, &ldquo;SHOULD&rdquo;, &ldquo;SHOULD NOT&rdquo;, &ldquo;RECOMMENDED&rdquo;, &ldquo;MAY&rdquo;, and &ldquo;OPTIONAL&rdquo; is per the IETF standard
 defined in RFC2119 [<a href="http://www.ietf.org/rfc/rfc2119.txt">Resources, 1</a>].</p>
 
 <p>As used in this document, a &ldquo;device implementer&rdquo; or &ldquo;implementer&rdquo; is a person
@@ -354,7 +372,7 @@
 implementers are STRONGLY RECOMMENDED to base their implementations to the
 greatest extent possible on the &ldquo;upstream&rdquo; source code available from the
 Android Open Source Project. While some components can hypothetically be
-replaced with alternate implementations this practice is strongly discouraged,
+replaced with alternate implementations, it is STRONGLY RECOMMENDED to not follow this practice,
 as passing the software tests will become substantially more difficult. It is
 the implementer&rsquo;s responsibility to ensure full behavioral compatibility with
 the standard Android implementation, including and beyond the Compatibility
@@ -409,8 +427,15 @@
 
 <p><strong>Android Automotive implementation</strong> refers to a vehicle head
 unit running Android as an operating system for part or all of the system and/or
-infotainment functionality. Android Automotive implementations MUST support
-uiMode = UI_MODE_TYPE_CAR [<a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR">Resources, 111</a>].</p>
+infotainment functionality. Android Automotive implementations:</p>
+
+<ul>
+  <li>MUST declare the feature android.hardware.type.automotive.</li>
+  <li>MUST support
+uiMode = UI_MODE_TYPE_CAR [<a
+href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR">Resources,
+    111</a>].</li>
+<ul>
 
 <p>All Android device implementations that do not fit into any of the above device
 types still MUST meet all requirements in this document to be Android ANDROID_VERSION
@@ -662,7 +687,7 @@
  <tr>
     <td>FINGERPRINT</td>
     <td>A string that uniquely identifies this build. It SHOULD be reasonably
-human-readable. It MUST follow this template:</p>
+human-readable. It MUST follow this template:
 <p class="small">$(BRAND)/$(PRODUCT)/<br>
 	&nbsp;&nbsp;&nbsp;&nbsp;$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)</p>
 <p>For example:</p>
@@ -672,7 +697,7 @@
 included in the template above have whitespace characters, they MUST be
 replaced in the build fingerprint with another character, such as the
 underscore ("_") character. The value of this field MUST be encodable as 7-bit
-ASCII.</td>
+ASCII.</p></td>
  </tr>
  <tr>
     <td>HARDWARE</td>
@@ -744,6 +769,20 @@
 There are no requirements on the specific format of this field, except that it
 MUST NOT be null or the empty string ("").</td>
  </tr>
+ <tr>
+    <td>SECURITY_PATCH</td>
+    <td>An value indicating the security patch level of a build. It MUST signify that the
+build includes all security patches issued up through the designated Android Public
+Security Bulletin. It MUST be in the format, [YYYY-MM-DD], matching the Public Security
+Bulletin's broadcast date, for example [2015-10-01].</td>
+ </tr>
+ <tr>
+    <td>BASE_OS</td>
+    <td>An value representing the FINGERPRINT parameter of the build that is otherwise
+      identical to this build except for the patches provided in the Android Public
+      Security Bulletin. It MUST report the correct value and if such a build does not
+      exist, report an emtpy string ("").</td>
+ </tr>
 </table>
 
 
@@ -1131,7 +1170,52 @@
     <th>Minimum Application Memory</th>
  </tr>
  <tr>
-    <td rowspan="10">small/normal</td>
+    <td rowspan="12">Android Watch</td>
+    <td>120 dpi (ldpi)</td>
+    <td rowspan="3">32MB</td>
+ </tr>
+ <tr>
+    <td>160 dpi (mdpi)</td>
+ </tr>
+ <tr>
+    <td>213 dpi (tvdpi)</td>
+ </tr>
+ <tr>
+    <td>240 dpi (hdpi)</td>
+    <td rowspan="2">36MB</td>
+ </tr>
+ <tr>
+    <td>280 dpi (280dpi)</td>
+ </tr>
+ <tr>
+    <td>320 dpi (xhdpi)</td>
+    <td rowspan="2">48MB</td>
+ </tr>
+ <tr>
+    <td>360 dpi (360dpi)</td>
+ </tr>
+ <tr>
+    <td>400 dpi (400dpi)</td>
+    <td>56MB</td>
+ </tr>
+ <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>64MB</td>
+ </tr>
+ <tr>
+    <td>480 dpi (xxhdpi)</td>
+    <td>88MB</td>
+ </tr>
+ <tr>
+    <td>560 dpi (560dpi)</td>
+    <td>112MB</td>
+ </tr>
+ <tr>
+    <td>640 dpi (xxxhdpi)</td>
+    <td>154MB</td>
+ </tr>
+ <tr>
+    <td rowspan="12">small/normal</td>
     <td>120 dpi (ldpi)</td>
     <td rowspan="2">32MB</td>
  </tr>
@@ -1150,13 +1234,20 @@
  </tr>
  <tr>
     <td>320 dpi (xhdpi)</td>
-    <td>80MB</td>
+    <td rowspan="2">80MB</td>
+ </tr>
+ <tr>
+    <td>360 dpi (360dpi)</td>
  </tr>
  <tr>
     <td>400 dpi (400dpi)</td>
     <td>96MB</td>
  </tr>
  <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>112MB</td>
+ </tr>
+ <tr>
     <td>480 dpi (xxhdpi)</td>
     <td>128MB</td>
  </tr>
@@ -1169,7 +1260,7 @@
     <td>256MB</td>
  </tr>
  <tr>
-    <td rowspan="10">large</td>
+    <td rowspan="12">large</td>
     <td>120 dpi (ldpi)</td>
     <td>32MB</td>
  </tr>
@@ -1193,10 +1284,18 @@
     <td>128MB</td>
  </tr>
  <tr>
+    <td>360 dpi (360dpi)</td>
+    <td>160MB</td>
+ </tr>
+ <tr>
     <td>400 dpi (400dpi)</td>
     <td>192MB</td>
  </tr>
  <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>228MB</td>
+ </tr>
+ <tr>
     <td>480 dpi (xxhdpi)</td>
     <td>256MB</td>
  </tr>
@@ -1209,7 +1308,7 @@
     <td>512MB</td>
  </tr>
  <tr>
-    <td rowspan="10">xlarge</td>
+    <td rowspan="12">xlarge</td>
     <td>120 dpi (ldpi)</td>
     <td>48MB</td>
  </tr>
@@ -1233,10 +1332,18 @@
     <td>192MB</td>
  </tr>
  <tr>
+    <td>360 dpi (360dpi)</td>
+    <td>240MB</td>
+ </tr>
+ <tr>
     <td>400 dpi (400dpi)</td>
     <td>288MB</td>
  </tr>
  <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>336MB</td>
+ </tr>
+ <tr>
     <td>480 dpi (xxhdpi)</td>
     <td>384MB</td>
  </tr>
@@ -1271,7 +1378,7 @@
 
 
 <p>Android defines a component type and corresponding API and lifecycle that
-allows applications to expose an &ldquo;AppWidget&rdquo; to the end user [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 21</a>] a feature that is strongly RECOMMENDED to be supported on Handheld Device
+allows applications to expose an &ldquo;AppWidget&rdquo; to the end user [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 21</a>] a feature that is STRONGLY RECOMMENDED to be supported on Handheld Device
 implementations. Device implementations that support embedding widgets on the
 home screen MUST meet the following requirements and declare support for
 platform feature android.software.app_widgets.</p>
@@ -1601,7 +1708,7 @@
   <li>Ensure the default dialer can look up caller information from the managed
 profile (if one exists) alongside those from the primary profile</li>
   <li>Ensure that all the security requirements for multi user (see
-<a href="#9_5_multi-user_support">section 9.5<a/>) apply to
+<a href="#9_5_multi-user_support">section 9.5</a>) apply to
 managed profiles.</li>
 </ul>
 
@@ -1677,11 +1784,72 @@
 <p>The Android Television Input Framework (TIF) simplifies the delivery of live
 content to Android Television devices. TIF provides a standard API to create
 input modules that control Android Television devices. Android Television
-device implementations MUST support Television Input Framework [<a href="http://source.android.com/devices/tv/index.html">Resources, 46</a>].</p>
+device implementations MUST support TV Input Framework
+[<a href="http://source.android.com/devices/tv/index.html">Resources, 46</a>].</p>
 
 <p>Device implementations that support TIF MUST declare the platform feature
 android.software.live_tv.</p>
 
+<h3 id="3_12_1_tv_app">3.12.1. TV App</h3>
+
+<p>Any device implementation that declares support for Live TV MUST have an
+installed TV application (TV App). The Android Open Source Project provides an implementation of the TV
+App.</p>
+
+<p>The TV App MUST provide facilities to install and use TV Channels
+[<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html">Resources, XX</a>]
+ and meet the following requirements:</p>
+
+<ul>
+  <li>Device implementations MUST allow third-party TIF-based inputs (third-party inputs)
+[<a href="https://source.android.com/devices/tv/index.html#third-party_input_example">Resources, XX</a>]
+ to be installed and managed.
+  <li>Device implementations MAY provide visual separation between pre-installed
+ TIF-based inputs (installed inputs)
+[<a href="https://source.android.com/devices/tv/index.html#tv_inputs">Resources, XX</a>]
+ and third-party inputs.
+  <li>The device implementations MUST NOT display the third-party inputs more than a
+single navigation action away from the TV App (i.e. expanding a list of
+third-party inputs from the TV App).
+</ul>
+
+<h4 id="3_12_1_1_electronic_program_guide">3.12.1.1. Electronic Program Guide</h4>
+
+<p>Android Television device implementations MUST show an informational and
+interactive overlay, which MUST include an electronic program guide (EPG)
+generated from the values in the TvContract.Programs fields
+[<a href="https://developer.android.com/reference/android/media/tv/TvContract.Programs.html">Resources, XX</a>].
+ The EPG MUST meet the following requirements:</p>
+
+<ul>
+  <li>The EPG MUST display information from all installed inputs and third-party
+inputs.
+  <li>The EPG MAY provide visual separation between the installed inputs and
+third-party inputs.
+  <li>The EPG is STRONGLY RECOMMENDED to display installed inputs and third-party
+inputs with equal prominence. The EPG MUST NOT display the third-party inputs
+more than a single navigation action away from the installed inputs on the EPG.
+  <li>On channel change, device implementations MUST display EPG data for the
+currently playing program.
+</ul>
+
+<h4 id="3_12_1_2_navigation">3.12.1.2. Navigation</h4>
+
+<p>Android Television device input devices (i.e. remote control, remote control
+application, or game controller) MUST allow navigation to all actionable
+sections of the screen via the D-pad. D-pad up and down MUST be used to change
+live TV channels when there is no actionable section on the screen.</p>
+
+<p>The TV App SHOULD pass key events to HDMI inputs through CEC.</p>
+
+<h4 id="3_12_1_3_tv_input_app_linking">3.12.1.3. TV input app linking</h4>
+
+<p>Android Television device implementations MUST support TV input app linking,
+which allows all inputs to provide activity links from the current activity to
+another activity (i.e. a link from live programming to related content)
+[<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI">Resources, XX</a>].
+ The TV App MUST show TV input app linking when it is provided.</p>
+
 <h1 id="4_application_packaging_compatibility">4. Application Packaging Compatibility</h1>
 
 
@@ -1698,13 +1866,14 @@
 
 
 <p>Device implementations MUST support the core media formats specified in the
-Android SDK documentation [<a href="http://developer.android.com/guide/appendix/media-formats.html">Resources, 50</a>] except where explicitly permitted in this document. Specifically, device
+Android SDK documentation [<a href="http://developer.android.com/guide/appendix/media-formats.html">Resources, 50</a>]
+except where explicitly permitted in this document. Specifically, device
 implementations MUST support the media formats, encoders, decoders, file types,
 and container formats defined in the tables below and reported via MediaCodecList
 [<a href="http://developer.android.com/reference/android/media/MediaCodecList.html">Resources,112</a>].
 Device implementations MUST also be able to decode all profiles reported in its CamcorderProfile
 [<a href="http://developer.android.com/reference/android/media/CamcorderProfile.html">Resources,
-113</a>].
+113</a>] and MUST be able to decode all formats it can encode.
 
 All of these codecs are
 provided as software implementations in the preferred Android implementation
@@ -1727,9 +1896,9 @@
     <th>Supported File Types/Container Formats</th>
  </tr>
  <tr>
-    <td>MPEG-4 AAC Profile</p>
+    <td>MPEG-4 AAC Profile<br />
 
-<p>(AAC LC)</td>
+(AAC LC)</td>
     <td>REQUIRED<sup>1</sup></td>
     <td>REQUIRED</td>
     <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard sampling rates from 8 to
@@ -1751,9 +1920,9 @@
     <td></td>
  </tr>
  <tr>
-    <td>MPEG-4 HE AACv2</p>
+    <td>MPEG-4 HE AACv2<br />
 
-<p>Profile (enhanced AAC+)</td>
+Profile (enhanced AAC+)</td>
     <td> </td>
     <td>REQUIRED</td>
     <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard sampling rates from 16
@@ -1762,12 +1931,12 @@
  </tr>
  <tr>
     <td>AAC ELD (enhanced low delay AAC)</td>
-    <td>REQUIRED<sup>1</sup> </p>
+    <td>REQUIRED<sup>1</sup> <br />
 
-<p>(Android 4.1+)</td>
-    <td>REQUIRED</p>
+(Android 4.1+)</td>
+    <td>REQUIRED<br />
 
-<p>(Android 4.1+)</td>
+(Android 4.1+)</td>
     <td>Support for mono/stereo content with standard sampling rates from 16 to 48 kHz.</td>
     <td></td>
  </tr>
@@ -1953,12 +2122,12 @@
  </tr>
  <tr>
     <td>VP8<sup>3</sup></td>
-    <td>REQUIRED<sup>2</sup></p>
+    <td>REQUIRED<sup>2</sup><br />
 
-<p>(Android 4.3+)</td>
-    <td>REQUIRED<sup>2</sup></p>
+(Android 4.3+)</td>
+    <td>REQUIRED<sup>2</sup><br />
 
-<p>(Android 2.3.3+)</td>
+(Android 2.3.3+)</td>
     <td>See <a href="#5_2_video_encoding">section 5.2</a> and <a href="#5_3_video_decoding">5.3</a> for details</td>
     <td><ul>
     <li class="table_list">WebM (.webm) [<a href="http://www.webmproject.org/">Resources, 110</a></li>
@@ -2002,8 +2171,8 @@
 <p>Android device implementations with H.264 codec support, MUST support Baseline
 Profile Level 3 and the following SD (Standard Definition) video encoding
 profiles and SHOULD support Main Profile Level 4 and the following HD (High
-Definition) video encoding profiles. Android Television devices are STRONGLY
-RECOMMENDED to encode HD 1080p video at 30 fps.</p>
+Definition) video encoding profiles. Android Television devices are STRONGLY RECOMMENDED
+to encode HD 1080p video at 30 fps.</p>
 <table>
  <tr>
     <th></th>
@@ -2229,9 +2398,9 @@
     <th></th>
     <th>SD (Low quality)</th>
     <th>SD (High quality)</th>
-    <th>HD 720p<sup>1</sup></td>
-    <th>HD 1080p<sup>1</sup></td>
-    <th>UHD<sup>2</sup></td>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>1</sup></th>
+    <th>UHD<sup>2</sup></th>
  </tr>
  <tr>
     <th>Video resolution</th>
@@ -2271,7 +2440,7 @@
 
 <p>While some of the requirements outlined in this section are stated as SHOULD
 since Android 4.3, the Compatibility Definition for a future version is planned
-to change these to MUST. Existing and new Android devices are <strong>STRONGLY ENCOURAGED</strong>
+to change these to MUST. Existing and new Android devices are <strong>STRONGLY RECOMMENDED</strong>
 to meet these requirements, or they will not be able to attain Android compatibility when upgraded
 to the future version.</p>
 
@@ -2440,7 +2609,7 @@
 <p>If a device implementation meets the requirements of this section after any
 initial calibration when using the OpenSL ES PCM buffer queue API, for
 continuous output latency and cold output latency over at least one supported
-audio output device, it MAY report support for low-latency audio, by reporting
+audio output device, it is STRONGLY RECOMMENDED to report support for low-latency audio, by reporting
 the feature android.hardware.audio.low_latency via the
 android.content.pm.PackageManager class [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53</a>]. Conversely, if the device implementation does not meet these requirements it
 MUST NOT report support for low-latency audio.</p>
@@ -2488,7 +2657,7 @@
 If a device implementation supports the inter-app MIDI software transport
 (virtual MIDI devices), and it supports MIDI over
 <em>all</em> of the following MIDI-capable hardware transports
-for which it provides generic non-MIDI connectivity, it MAY report
+for which it provides generic non-MIDI connectivity, it is STRONGLY RECOMMENDED to report
 support for feature android.software.midi via the
 android.content.pm.PackageManager class
 [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53</a>].
@@ -2517,7 +2686,7 @@
 
 <p>
 If a device implementation meets <em>all</em> of the following requirements,
-it MAY report support for feature android.hardware.audio.pro via the
+it is STRONGLY RECOMMENDED to report support for feature android.hardware.audio.pro via the
 android.content.pm.PackageManager class
 [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53</a>].
 </p>
@@ -2762,7 +2931,9 @@
   <li>240 dpi (hdpi)</li>
   <li>280 dpi (280dpi)</li>
   <li>320 dpi (xhdpi)</li>
+  <li>360 dpi (360dpi)</li>
   <li>400 dpi (400dpi)</li>
+  <li>420 dpi (420dpi)</li>
   <li>480 dpi (xxhdpi)</li>
   <li>560 dpi (560dpi)</li>
   <li>640 dpi (xxxhdpi)</li>
@@ -3136,7 +3307,7 @@
 <table>
  <tr>
     <th>Button</th>
-    <th>HID Usage</strong><sup>2</sup></td>
+    <th>HID Usage<sup>2</sup></th>
     <th>Android Button</th>
  </tr>
  <tr>
@@ -3160,16 +3331,16 @@
     <td>KEYCODE_BUTTON_Y (100)</td>
  </tr>
  <tr>
-    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_UP">D-pad up</a><sup>1</sup></p>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_UP">D-pad up</a><sup>1</sup><br />
 
-<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_DOWN">D-pad down</a><sup>1</sup></td>
+<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_DOWN">D-pad down</a><sup>1</sup></td>
     <td>0x01 0x0039<sup>3</sup></td>
     <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_Y">AXIS_HAT_Y</a><sup>4</sup></td>
  </tr>
  <tr>
-    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_LEFT">D-pad left</a>1</p>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_LEFT">D-pad left</a>1<br />
 
-<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_RIGHT">D-pad right</a><sup>1</sup></td>
+<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_RIGHT">D-pad right</a><sup>1</sup></td>
     <td>0x01 0x0039<sup>3</sup></td>
     <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_X">AXIS_HAT_X</a><sup>4</sup></td>
  </tr>
@@ -3221,7 +3392,7 @@
 
 <table>
  <tr>
-    <th>Analog Controls</strong><sup>1</sup></td>
+    <th>Analog Controls<sup>1</sup></th>
     <th>HID Usage</th>
     <th>Android Button</th>
  </tr>
@@ -3237,21 +3408,21 @@
  </tr>
  <tr>
     <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Y">Left Joystick</a></td>
-    <td>0x01 0x0030</p>
+    <td>0x01 0x0030<br />
 
-<p>0x01 0x0031</td>
-    <td>AXIS_X</p>
+0x01 0x0031</td>
+    <td>AXIS_X<br />
 
-<p>AXIS_Y</td>
+AXIS_Y</td>
  </tr>
  <tr>
     <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Z">Right Joystick</a></td>
-    <td>0x01 0x0032</p>
+    <td>0x01 0x0032<br />
 
-<p>0x01 0x0035</td>
-    <td>AXIS_Z</p>
+0x01 0x0035</td>
+    <td>AXIS_Z<br />
 
-<p>AXIS_RZ</td>
+AXIS_RZ</td>
  </tr>
 </table>
 
@@ -3300,6 +3471,9 @@
 are <strong>STRONGLY RECOMMENDED</strong> to meet these requirement so they will be able to upgrade to the future
 platform releases where this might become a REQUIRED component. The
 synchronization error SHOULD be below 100 milliseconds [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">Resources, 75</a>].</li>
+  <li>MUST report sensor data with a maximum latency of 100 milliseconds + 2 * sample_time for the case of a sensor streamed
+    with a minimum required latency of 5 ms + 2 * sample_time when the application processor is active. This delay does not include any filtering delays.</li>
+  <li>MUST report the first sensor sample within 400 milliseconds + 2 * sample_time of the sensor being activated. It is acceptable for this sample to have an accuracy of 0.</li>
 </ul>
 
 <p>The list above is not comprehensive; the documented behavior of the Android SDK
@@ -3345,7 +3519,7 @@
 Android APIs [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Resources, 74</a>].</li>
   <li>MUST be capable of measuring from freefall up to four times the gravity (4g) or
 more on any axis.</li>
-  <li>MUST have a resolution of at least 8-bits and SHOULD have a resolution of at
+  <li>MUST have a resolution of at least 12-bits and SHOULD have a resolution of at
 least 16-bits.</li>
   <li>SHOULD be calibrated while in use if the characteristics changes over the life
 cycle and compensated, and preserve the compensation parameters between device
@@ -3364,7 +3538,7 @@
 TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
 TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
 are STRONGLY RECOMMENDED to implement the TYPE_GAME_ROTATION_VECTOR sensor.</li>
-  <li>SHOULD implement a TYPE_ROTATION_VECTOR composite sensor, if a gyroscope sensor
+  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if a gyroscope sensor
 and a magnetometer sensor is also included.</li>
 </ul>
 
@@ -3397,7 +3571,7 @@
   <li>SHOULD have a standard deviation, calculated on a per axis basis on samples
 collected over a period of at least 3 seconds at the fastest sampling rate, no
 greater than 0.5 &micro;T.</li>
-  <li>SHOULD implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
+  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
 sensor and a gyroscope sensor is also included.</li>
   <li>MAY implement the TYPE_GEOMAGNETIC_ROTATION_VECTOR sensor if an accelerometer
 sensor is also implemented. However if implemented, it MUST consume less than
@@ -3436,7 +3610,7 @@
 or rad^2 / s). The variance is allowed to vary with the sampling rate, but must
 be constrained by this value. In other words, if you measure the variance of
 the gyro at 1 Hz sampling rate it should be no greater than 1e-7 rad^2/s^2.</li>
-  <li>SHOULD implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
+  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
 sensor and a magnetometer sensor is also included.</li>
   <li>If an accelerometer sensor is included, MUST implement the TYPE_GRAVITY and
 TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
@@ -3491,6 +3665,169 @@
   <li>MUST have 1-bit of accuracy or more.</li>
 </ul>
 
+
+<h3 id="7_3_9_hifi_sensors">7.3.9. High Fidelity Sensors</h3>
+
+<p>Device implementations supporting a set of higher quality sensors that can meet all
+the requirements listed in this section MUST identify the support through the
+<code>android.hardware.sensor.hifi_sensors</code> feature flag.</p>
+
+<p>A device declaring android.hardware.sensor.hifi_sensors MUST support all of the following
+sensor types meeting the quality requirements as below:</p>
+
+<ul>
+  <li>SENSOR_TYPE_ACCELEROMETER
+  <ul>
+    <li>MUST have a measurement range between at least -8g and +8g</li>
+    <li>MUST have a measurement resolution of at least 1024 LSB/G</li>
+    <li>MUST have a minimum measurement frequency of 12.5 Hz or lower</li>
+    <li>MUST have a maxmium measurement frequency of 200 Hz or higher</li>
+    <li>MUST have a measurement noise not above 400uG/√Hz</li>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 3000 sensor events</li>
+    <li>MUST have a batching power consumption not worse than 3 mW</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_GYROSCOPE
+  <ul>
+    <li>MUST have a measurement range between at least -1000 and +1000 dps</li>
+    <li>MUST have a measurement resolution of at least 16 LSB/dps</li>
+    <li>MUST have a minimum measurement frequency of 12.5 Hz or lower</li>
+    <li>MUST have a maxmium measurement frequency of 200 Hz or higher</li>
+    <li>MUST have a measurement noise not above 0.014°/s/√Hz</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_GYROSCOPE_UNCALIBRATED with the same quality requirements as
+    SENSOR_TYPE_GYROSCOPE</li>
+  <li>SENSOR_TYPE_GEOMAGNETIC_FIELD
+  <ul>
+    <li>MUST have a measurement range between at least -900 and +900 uT</li>
+    <li>MUST have a measurement resolution of at least 5 LSB/uT</li>
+    <li>MUST have a minimum measurement frequency of 5 Hz or lower</li>
+    <li>MUST have a maxmium measurement frequency of 50 Hz or higher</li>
+    <li>MUST have a measurement noise not above 0.5 uT</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED with the same quality requirements as
+    SENSOR_TYPE_GEOMAGNETIC_FIELD and in addition:
+  <ul>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 600 sensor events</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_PRESSURE
+  <ul>
+    <li>MUST have a measurement range between at least 300 and 1100 hPa</li>
+    <li>MUST have a measurement resolution of at least 80 LSB/hPa</li>
+    <li>MUST have a minimum measurement frequency of 1 Hz or lower</li>
+    <li>MUST have a maximum measurement frequency of 10 Hz or higher</li>
+    <li>MUST have a measurement noise not above 2 Pa/√Hz</li>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 300 sensor events</li>
+    <li>MUST have a batching power consumption not worse than 2 mW</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_ROTATION_VECTOR
+  <ul>
+    <li>MUST have a batching power consumption not worse than 4 mW</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_GAME_ROTATION_VECTOR MUST implement a non-wake-up form of this sensor with a buffering capability of at least 300 sensor events</li>
+  <li>SENSOR_TYPE_SIGNIFICANT_MOTION
+  <ul>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is static
+      and 1.5 mW when device is moving</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_STEP_DETECTOR
+  <ul>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 100 sensor events</li>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is static
+      and 1.5 mW when device is moving</li>
+    <li>MUST have a batching power consumption not worse than 4 mW</li>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_STEP_COUNTER
+  <ul>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is static
+      and 1.5 mW when device is moving</li>
+  </ul>
+  </li>
+  <li>SENSOR_TILT_DETECTOR
+  <ul>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is static
+      and 1.5 mW when device is moving</li>
+  </ul>
+  </li>
+</ul>
+
+<p>Also such a device MUST meet the following sensor subsystem requirements:</p>
+
+<ul>
+  <li>The event timestamp of the same physical event reported by the Accelerometer, Gyroscope
+    sensor and Magnetometer MUST be within 2.5 milliseconds of each other.</li>
+  <li>The Gyroscope sensor event timestamps MUST be on the same time base as the camera
+    subsystem and within 1 millisconds of error.</li>
+  <li>The latency of delivery of samples to the HAL SHOULD be below 5 milliseconds from
+    the instant the data is available on the physical sensor hardware.</li>
+  <li>The power consumption MUST not be higher than 0.5 mW when device is static and 2.0 mW
+    when device is moving when any combination of the following sensors are enabled:
+  <ul>
+    <li>SENSOR_TYPE_SIGNIFICANT_MOTION</li>
+    <li>SENSOR_TYPE_STEP_DETECTOR</li>
+    <li>SENSOR_TYPE_STEP_COUNTER</li>
+    <li>SENSOR_TILT_DETECTORS</li>
+  </ul>
+  </li>
+</ul>
+
+<p>Note that all power consumption requirements in this section do not include the power
+  consumption of the Application Processor. It is inclusive of the power drawn by the entire
+  sensor chain - the sensor, any supporting circuitry, any dedicated sensor processing system,
+  etc.</p>
+
+<p>The following sensor types MAY also be supported on a device implementation declaring
+  android.hardware.sensor.hifi_sensors, but if these sensor types are present they MUST meet the
+  following minimum buffering capability requirement:</p>
+
+<ul>
+  <li>SENSOR_TYPE_PROXIMITY: 100 sensor events</li>
+</ul>
+
+<h3 id="7_3_10_fingeprint">7.3.10. Fingerprint Sensor</h3>
+
+<p>Device implementations with a secure lock screen SHOULD include a fingerprint sensor.
+If a device implementation includes a fingerprint sensor and has a corresponding API for
+third-party developers, it:</p>
+
+<ul>
+  <li>MUST declare support for the android.hardware.fingerprint feature.</li>
+  <li>MUST fully implement the corresponding API as described in the Android SDK documentation
+[<a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">Resources, XX</a>].
+  </li>
+  <li>MUST have a false acceptance rate not higher than 0.002%.</li>
+  <li>Is STRONGLY RECOMMENDED to have a false rejection rate not higher than 10%, and a
+    latency from when the fingerprint sensor is touched until the screen is unlocked below
+    1 second, for 1 enrolled finger.</li>
+  <li>MUST rate limit attempts for at least 30 seconds after 5 false trials for fingerprint
+    verification.</li>
+  <li>MUST have a hardware-backed keystore implementation, and perform the fingerprint matching
+    in a Trusted Execution Environment (TEE) or on a chip with a secure channel to the TEE.
+  </li>
+  <li>MUST have all identifiable fingerprint data encrypted and cryptographically
+    authenticated such that they cannot be acquired, read or altered outside of the
+    Trusted Execution Environment (TEE) as documented in the implementation guidelines
+    on the Android Open Source Project site
+    [<a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">Resources, XX</a>].
+  </li>
+  <li>MUST prevent adding a fingerprint without first establishing a chain of trust by
+    having the user confirm existing or add a new device credential (PIN/pattern/password)
+    using the TEE as implemented in the Android Open Source project.</li>
+  <li>MUST NOT enable 3rd-party applications to distinguish between individual fingerprints.
+  </li>
+  <li>MUST honor the DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT flag.</li>
+  <li>MUST, when upgraded from a version earlier than Android 6.0, have the fingerprint
+    data securely migrated to meet the above requirements or removed.</li>
+  <li>SHOULD use the Android Fingerprint icon provided in the Android Open Source Project.</li>
+</ul>
+
 <h2 id="7_4_data_connectivity">7.4. Data Connectivity</h2>
 
 
@@ -3628,7 +3965,7 @@
       <li>NFC Forum Tag Types 1, 2, 3, 4 (defined by the NFC Forum)</li>
     </ul>
   <li>MUST be capable of reading and writing NDEF messages as well as raw
-      data via the following NFC standards:</li>
+      data via the following NFC standards:
   <ul>
     <li>NfcV (ISO 15693)</li>
   </ul></li>
@@ -4063,6 +4400,21 @@
   <li>SHOULD report a USB interface name of 'MTP'.</li>
 </ul>
 
+<h3 id="7_6_3_adoptable_storage">7.6.3. Adoptable Storage</h3>
+
+<p>Device implementations are STRONGLY RECOMMENDED to implement adoptable
+storage if the removable storage device port is in a long-term stable location,
+such as within the battery compartment or other protective cover
+[<a
+href="http://source.android.com/devices/storage/adoptable.html">Resources,
+XX</a>].</p>
+
+<p>Device implementations such as a television, MAY enable adoption through USB
+ports as the device is expected to be static and not mobile. But for other
+device implementations that are mobile in nature, it is STRONGLY RECOMMENDED to
+implement the adoptable storage in a long-term stable location, since accidentally
+disconnecting them can cause data loss/corruption.</p>
+
 <h2 id="7_7_usb">7.7. USB</h2>
 
 
@@ -4111,7 +4463,7 @@
 cables adapting the port to a standard type-A or type-C USB port.</li>
   <li>MAY use a micro-AB USB port, but if so SHOULD ship with a cable or cables
 adapting the port to a standard type-A or type-C USB port.</li>
-  <li>is <strong>very strongly RECOMMENDED</strong> to implement the USB audio class as documented in the Android SDK
+  <li>is <strong>STRONGLY RECOMMENDED</strong> to implement the USB audio class as documented in the Android SDK
 documentation [<a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">Resources, 98</a>].</li>
   <li>MUST implement the Android USB host API as documented in the Android SDK, and
 MUST declare support for the hardware feature android.hardware.usb.host [<a href="http://developer.android.com/guide/topics/connectivity/usb/host.html">Resources, 100</a>].</li>
@@ -4431,9 +4783,9 @@
 <h2 id="9_7_kernel_security_features">9.7. Kernel Security Features</h2>
 
 
-<p>The Android Sandbox includes features that can use the Security-Enhanced Linux
+<p>The Android Sandbox includes features that use the Security-Enhanced Linux
 (SELinux) mandatory access control (MAC) system and other security features in
-the Linux kernel. SELinux or any other security features, if implemented below
+the Linux kernel. SELinux or any other security features implemented below
 the Android framework:</p>
 
 <ul>
@@ -4448,31 +4800,28 @@
 affect another application (such as a Device Administration API), the API MUST
 NOT allow configurations that break compatibility.</p>
 
-<p>Devices MUST implement SELinux or an equivalent mandatory access control system
-if using a kernel other than Linux and meet the following requirements, which
-are satisfied by the reference implementation in the upstream Android Open
-Source Project.</p>
+<p>Devices MUST implement SELinux or, if using a kernel other than Linux, an
+equivalent mandatory access control system. Devices MUST also meet the
+following requirements, which are satisfied by the reference implementation
+in the upstream Android Open Source Project.</p>
 
 <p>Device implementations:</p>
 
 <ul>
-  <li>MUST support a SELinux policy that allows the SELinux mode to be set on a
-per-domain basis, and MUST configure all domains in enforcing mode. No
-permissive mode domains are allowed, including domains specific to a
-device/vendor.</li>
-  <li>SHOULD load policy from /sepolicy file on the device.</li>
+  <li>MUST set SELinux to global enforcing mode.</li>
+  <li>MUST configure all domains in enforcing mode. No permissive mode domains
+are allowed, including domains specific to a device/vendor.</li>
   <li>MUST NOT modify, omit, or replace the neverallow rules present within the
-sepolicy file provided in the upstream Android Open Source Project (AOSP) and
-the policy MUST compile with all neverallow present, for both AOSP SELinux
+external/sepolicy folder provided in the upstream Android Open Source Project (AOSP) and
+the policy MUST compile with all neverallow rules present, for both AOSP SELinux
 domains as well as device/vendor specific domains.</li>
-  <li>MUST support dynamic updates of the SELinux policy file without requiring a
-system image update.</li>
 </ul>
 
 <p>Device implementations SHOULD retain the default SELinux policy provided in the
-upstream Android Open Source Project, until they have first audited their
-additions to the SELinux policy. Device implementations MUST be compatible with
-the upstream Android Open Source Project.</p>
+external/sepolicy folder of the upstream Android Open Source Project and only
+further add to this policy for their own device-specific configuration. Device
+implementations MUST be compatible with the upstream Android Open Source Project.
+</p>
 
 <h2 id="9_8_privacy">9.8. Privacy</h2>
 
@@ -4553,6 +4902,54 @@
 version of Android, such a device can not add support for this feature with a system software
 update and thus are exempted from the requirement.</p>
 
+<h2 id="9_11_keys_and_credentials">9.11. Keys and Credentials</h2>
+
+<p>The Android Keystore System
+[<a href="https://developer.android.com/training/articles/keystore.html">Resources, XX</a>]
+allows app developers to store cryptographic keys in a container and use them in cryptographic
+operations through the KeyChain API
+[<a href="https://developer.android.com/reference/android/security/KeyChain.html">Resources, XX</a>]
+or the Keystore API
+  [<a href="https://developer.android.com/reference/java/security/KeyStore.html">Resources, XX</a>].
+</p>
+
+<p>All Android device implementations MUST meet the following requirements:</p>
+
+<ul>
+<li>SHOULD not limit the number of keys that can be generated, and MUST at least allow more
+than 8,192 keys to be imported.</li>
+<li>The lock screen authentication MUST rate limit attempts and SHOULD have an exponential
+  backoff algorithm as implemented in the Android Open Source Project.</li>
+<li>When the device implementation supports a secure lock screen and has a secure hardware
+  such as a Secure Element (SE) where a Trusted Execution Environment (TEE) can be implemented,
+  then it:
+  <ul>
+  <li>MUST back up the keystore implementation with the secure hardware. The upstream Android
+    Open Source Project provides the Keymaster Hardware Abstraction Layer (HAL) implementation
+    that can be used to satisfy this requirement.</li>
+  <li>MUST perform the lock screen authentication in the secure hardware and only when successful
+    allow the authentication-bound keys to be used. The upstream Android Open Source Project
+    provides the Gatekeeper Hardware Abstraction Layer (HAL) that can be used to satisfy this
+    requirement
+    [<a href="http://source.android.com/devices/tech/security/authentication/gatekeeper.html">Resources, XX</a>].</li>
+  </ul>
+</li>
+</ul>
+
+<p>Note that if a device implementation is already launched on an earlier Android version and has
+  not implemented a trusted operating system on the secure hardware, such a device cannot meet
+  the above TEE-related requirements through a system software update and thus is exempted from these TEE-related requirements.</p>
+
+<h2 id="9_12_data_deletion">9.12. Data Deletion</h2>
+
+<p>Devices MUST provide users with a mechanism to perform a "Factory Data Reset"
+that allows logical and physical deletion of all data. This MUST satisfy relevant
+industry standards for data deletion such as NIST SP800-88. This MUST be used for
+the implementation of the wipeData() API (part of the Android Device Administration API)
+described in <a href="#3_9_device_administration">section 3.9 Device Administration.</p>
+
+<p>Devices MAY provide a fast data wipe that conducts a logical data erase.</p>
+
 <h1 id="10_software_compatibility_testing">10. Software Compatibility Testing</h1>
 
 
@@ -4656,7 +5053,7 @@
 <h1 id="12_document_changelog">12. Document Changelog</h1>
 
 <p>The following table contains a summary of the changes to the Compatibility
-Definition in this release. </p>
+Definition in this release.</p>
 <table>
  <tr>
     <th>Section</th>
@@ -4679,6 +5076,10 @@
     <td>Change for the user agent string reported by the WebView</td>
  </tr>
  <tr>
+    <td>3.7. Runtime Compatibility</td>
+    <td>Updates to memory allocation table</td>
+ </tr>
+ <tr>
     <td>3.8.6. Themes</td>
     <td>Added requirement to support black system icons when requested by the SYSTEM_UI_FLAG_LIGHT_STATUS_BAR flag</td>
  </tr>
@@ -4711,7 +5112,7 @@
     <td>General updates for professional audio support; updates for mobile device (jack) specifications, USB audio host mode, and other updates</td>
  </tr>
  <tr>
-    <td>5.9 Musical Instrument Digital Interface (MIDI)</td>
+    <td>5.9. Musical Instrument Digital Interface (MIDI)</td>
     <td>Added new section on optional Musical Instrument Digital Interface (MIDI) support</td>
  </tr>
 <tr>
@@ -4719,6 +5120,22 @@
     <td>Update for drivers supporting Windows 10</td>
  </tr>
  <tr>
+    <td>7.1.1.3. Screen Density</td>
+    <td>Updates for screen density, for example related to an Android watch</td>
+ </tr>
+ <tr>
+    <td>7.3. Sensors (and subsections)</td>
+    <td>New requirements for some sensor types</td>
+ </tr>
+ <tr>
+    <td>7.3.9. High Fidelity Sensors</td>
+    <td>New section with requirements for devices supporting high fidelity sensors</td>
+ </tr>
+ <tr>
+    <td>7.3.10. Fingerprint Sensor</td>
+    <td>New section on requirements related to fingerprint sensors</td>
+ </tr>
+ <tr>
     <td>7.4.3. Bluetooth</td>
     <td>Addition related to Resolvable Private Address (RPA) for Bluetooth Low Energy (BLE)</td>
  </tr>
@@ -4735,10 +5152,14 @@
     <td>Additions related to near-ultrasound recording, playback, and audio</td>
  </tr>
  <tr>
-    <td>9.1 Permissions</td>
+    <td>9.1. Permissions</td>
     <td>Addition to Permissions requirements</td>
  </tr>
 <tr>
+    <td>9.7. Kernel Security Features</td>
+    <td>SE Linux updates</td>
+ </tr>
+<tr>
     <td>9.8. Privacy</td>
     <td>Addition regarding user's consent for access to shared storage over a USB port</td>
  </tr>
@@ -4751,6 +5172,10 @@
     <td>Additional requirement for verified boot</td>
  </tr>
  <tr>
+    <td>9.11. Keys and Credentials</td>
+    <td>New section of requirements related to keys and credentials</td>
+ </tr>
+ <tr>
     <td>11. Updatable Software</td>
     <td>Requirement related to the system update policy set by the device owner</td>
  </tr>
diff --git a/src/compatibility/source/android-cdd-cover.html b/src/compatibility/source/android-cdd-cover.html
index eccca0c..ee76ef8 100644
--- a/src/compatibility/source/android-cdd-cover.html
+++ b/src/compatibility/source/android-cdd-cover.html
@@ -17,14 +17,14 @@
 
 <tr>
 <td>
-<img src="images/android-marshmallow.png" alt="Marshmallow logo" style="border-top: 5px solid orange; border-bottom: 5px solid orange"/>
+<img src="images/android-marshmallow-1.png" alt="Marshmallow logo" style="border-top: 5px solid orange; border-bottom: 5px solid orange"/>
 </td>
 </tr>
 
 <tr>
 <td>
 <p class="subtitle">Android 6.0</p>
-<p class="cover-text">Last updated: August 20th, 2015</p>
+<p class="cover-text">Last updated: October 7th, 2015</p>
 <p class="cover-text">Copyright &copy; 2015, Google Inc. All rights reserved.</p>
 <p class="cover-text"><a href="mailto:compatibility@android.com">compatibility@android.com</a></p>
 </td>
diff --git a/src/compatibility/source/images/android-marshmallow-1.png b/src/compatibility/source/images/android-marshmallow-1.png
new file mode 100644
index 0000000..4d51b87
--- /dev/null
+++ b/src/compatibility/source/images/android-marshmallow-1.png
Binary files differ