Merge "Standardize use of STRONGLY RECOMMENDED" into mnc-dev
diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index 487fabe..516a762 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>
@@ -281,7 +289,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>
 
@@ -313,6 +321,8 @@
 
 <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>
@@ -1737,11 +1747,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>
 
 
@@ -1758,13 +1829,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
@@ -2500,7 +2572,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>
@@ -2548,7 +2620,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>].
@@ -2577,7 +2649,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>
@@ -4818,6 +4890,16 @@
   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>
 
 
@@ -4921,7 +5003,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>
@@ -4944,6 +5026,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>
@@ -4976,7 +5062,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>
@@ -4984,6 +5070,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>
@@ -5000,10 +5102,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>
@@ -5016,6 +5122,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