Merge "Docs: NEW CHANGE#8 for Android automotive changes to cdd       Changing input to SHOUlD (all devices) and render to MUST (all devices)" into lmp-mr1-dev
diff --git a/src/compatibility/5.1/android-5.1-cdd.html b/src/compatibility/5.1/android-5.1-cdd.html
index 57daa4b..29b3f14 100644
--- a/src/compatibility/5.1/android-5.1-cdd.html
+++ b/src/compatibility/5.1/android-5.1-cdd.html
@@ -420,6 +420,7 @@
     <th>Handheld</th>
     <th>Television</th>
     <th>Watch</th>
+    <th>Automotive</th>
     <th>Other</th>
  </tr>
  <tr>
@@ -430,6 +431,7 @@
     <td>MUST</td>
     <td></td>
     <td></td>
+    <td></td>
  </tr>
  <tr>
     <td>Touchscreen </td>
@@ -437,6 +439,7 @@
     <td>MUST</td>
     <td></td>
     <td>MUST</td>
+    <td></td>
     <td>SHOULD</td>
  </tr>
  <tr>
@@ -445,6 +448,7 @@
     <td>MUST</td>
     <td>SHOULD </td>
     <td>MUST</td>
+    <td>MUST</td>
     <td>SHOULD</td>
  </tr>
  <tr>
@@ -454,6 +458,7 @@
     <td>SHOULD</td>
     <td></td>
     <td>SHOULD</td>
+    <td></td>
     <td>SHOULD</td>
  </tr>
  <tr>
@@ -462,6 +467,7 @@
     <td>SHOULD</td>
     <td></td>
     <td></td>
+    <td>SHOULD</td>
     <td></td>
  </tr>
  <tr>
@@ -472,6 +478,7 @@
     <td> MUST</td>
     <td></td>
     <td>SHOULD</td>
+    <td>SHOULD</td>
  </tr>
  <tr>
     <td>Wi-Fi Direct</td>
@@ -479,6 +486,7 @@
     <td>SHOULD</td>
     <td>SHOULD</td>
     <td></td>
+    <td></td>
     <td>SHOULD</td>
  </tr>
  <tr>
@@ -487,6 +495,7 @@
     <td>SHOULD</td>
     <td>MUST</td>
     <td>MUST</td>
+    <td>MUST</td>
     <td>SHOULD</td>
  </tr>
  <tr>
@@ -496,14 +505,16 @@
     <td>MUST</td>
     <td>SHOULD</td>
     <td>SHOULD</td>
+    <td>SHOULD</td>
  </tr>
  <tr>
-    <td>USB peripheral/ host mode</td>
+    <td>USB peripheral/host mode</td>
     <td><a href="#7_7_usb">7.7. USB</a></td>
     <td>SHOULD</td>
     <td></td>
     <td></td>
     <td>SHOULD</td>
+    <td>SHOULD</td>
  </tr>
  <tr>
     <td>Output</td>
@@ -513,6 +524,7 @@
     <td>MUST</td>
     <td></td>
     <td>MUST</td>
+    <td>MUST</td>
  </tr>
 </table>
 
@@ -973,9 +985,11 @@
 <h3 id="3_4_2_browser_compatibility">3.4.2. Browser Compatibility</h3>
 
 <div class="note">
-<p>Android Television and Watch Devices MAY omit a browser application, but MUST
-support the public intent patterns as described in <a href="#3_2_3_1_core_application_intents">section 3.2.3.1</a>. All other types of device implementations MUST include a standalone Browser
-application for general user web browsing.</p>
+<p>Android Television, Watch, and Android Automotive implementations MAY omit a
+browser application, but MUST support the public intent patterns as described in
+<a href="#3_2_3_1_core_application_intents">section 3.2.3.1</a>. All other types
+of device implementations MUST include a standalone Browser application for
+general user web browsing.</p>
 </div>
 
 <p>The standalone Browser MAY be based on a browser technology other than WebKit.
@@ -2705,7 +2719,7 @@
 
 <p>The Home, Recents, and Back functions (mapped to the key events KEYCODE_HOME,
 KEYCODE_APP_SWITCH, KEYCODE_BACK, respectively) are essential to the Android
-navigation paradigm and therefore;</p>
+navigation paradigm and therefore:</p>
 
 <ul>
   <li>Android Handheld device implementations MUST provide the Home, Recents, and
@@ -2714,6 +2728,8 @@
 functions.</li>
   <li>Android Watch device implementations MUST have the Home function available to
 the user, and the Back function except for when it is in UI_MODE_TYPE_WATCH.</li>
+  <li>Android Automotive implementations MUST provide the Home function and MAY
+provide Back and Recent functions.</li>
   <li>All other types of device implementations MUST provide the Home and Back
 functions.</li>
 </ul>
@@ -3782,11 +3798,12 @@
 expose content from both storage paths transparently through Android&rsquo;s media
 scanner service and android.provider.MediaStore.</p>
 
-<p>Regardless of the form of shared storage used, device implementations MUST
-provide some mechanism to access the contents of shared storage from a host
-computer, such as USB mass storage (UMS) or Media Transfer Protocol (MTP).
-Device implementations MAY use USB mass storage, but SHOULD use Media Transfer
-Protocol. If the device implementation supports Media Transfer Protocol, it:</p>
+<p>Regardless of the form of shared storage used, if the device implementation
+has a USB port with USB peripheral mode support, it MUST provide some mechanism
+to access the contents of shared storage from a host computer. Device
+implementations MAY use USB mass storage, but SHOULD use Media Transfer Protocol
+to satisfy this requirement. If the device implementation supports Media
+Transfer Protocol, it:</p>
 
 <ul>
   <li>SHOULD be compatible with the reference Android MTP host, Android File Transfer
@@ -3795,10 +3812,6 @@
   <li>SHOULD report a USB interface name of 'MTP'.</li>
 </ul>
 
-<p>If the device implementation lacks USB ports, it MUST provide a host computer
-with access to the contents of shared storage by some other means, such as a
-network file system.</p>
-
 <h2 id="7_7_usb">7.7. USB</h2>
 
 
@@ -3818,8 +3831,8 @@
 screen), so that the display draws correctly when the device is oriented with
 the port at bottom. Existing and new Android devices are <strong>very strongly encouraged to meet these requirements</strong> so they will be able to upgrade to future platform releases.</li>
   <li>It MUST allow a USB host connected with the Android device to access the
-contents of the shared storage volume using either USB mass storage or Media
-Transfer Protocol, if the device reports the android.hardware.feature.output
+contents of the shared storage volume using standard protocols such as USB mass
+storage or Media Transfer Protocol, if the device reports the android.hardware.feature.output
 feature or the android.hardware.camera feature.</li>
   <li>It SHOULD implement the Android Open Accessory (AOA) API and specification as
 documented in the Android SDK documentation, and if it is an Android Handheld
@@ -3858,7 +3871,8 @@
 <h3 id="7_8_1_microphone">7.8.1. Microphone</h3>
 
 <div class="note">
-<p>Android Handheld and Watch devices MUST include a microphone.</p>
+<p>Android Handheld, Watch, and Automotive implementations MUST include a
+microphone.</p>
 </div>
 
 
@@ -4277,14 +4291,20 @@
 approaches will satisfy this requirement:</p>
 
 <ul>
-  <li>Over-the-air (OTA) downloads with offline update via reboot</li>
+  <li>&ldquo;Over-the-air (OTA)&rdquo; downloads with offline update via reboot</li>
   <li>&ldquo;Tethered&rdquo; updates over USB from a host PC</li>
   <li>&ldquo;Offline&rdquo; updates via a reboot and update from a file on removable storage</li>
 </ul>
 
 <p>However, if the device implementation includes support for an unmetered data
-connection such as 802.11 or Bluetooth PAN (Personal Area Network) profile, the
-device MUST support Over-the-air download with offline update via reboot.</p>
+connection such as 802.11 or Bluetooth PAN (Personal Area Network) profile:</p>
+
+<ul>
+<li>Android Automotive implementations SHOULD support OTA downloads with offline
+update via reboot.</li>
+<li>All other device implementations MUST support OTA downloads with offline
+update via reboot.</li>
+</ul>
 
 <p>The update mechanism used MUST support updates without wiping user data. That
 is, the update mechanism MUST preserve application private data and application
@@ -4359,8 +4379,9 @@
  </tr>
  <tr>
     <td>3.4.2. Browser compatibility</td>
-    <td>Android Television and Watch Devices MAY omit a browser application, but all
-other types of device implementations MUST include one.</td>
+    <td>Android Television, Watch, and Android Automotive implementations MAY
+    omit a browser application, but all other types of device implementations
+    MUST include one.</td>
  </tr>
  <tr>
     <td>3.7. Runtime compatibility</td>
@@ -4499,11 +4520,12 @@
     <td>Android Television devices MUST support D-pad. </td>
  </tr>
  <tr>
-    <td>7.2.3. Navigation keys</td>
-    <td>Included language for support across different device types. </td>
+    <td>7.2.3. Navigation Keys</td>
+    <td>Included language for support across different device types. Added
+    Android Automotive requirements.</td>
  </tr>
  <tr>
-    <td>7.2.4. Touchscreen input</td>
+    <td>7.2.4. Touchscreen Input</td>
     <td>Android Watch devices MUST support touchscreen input. </td>
  </tr>
  <tr>
@@ -4593,9 +4615,13 @@
 micro-USB port. Updated requirements for Host and Peripheral mode. </td>
  </tr>
  <tr>
-    <td>7.8.1. Audio</td>
+    <td>7.8. Audio</td>
     <td>Moved microphone section here. Added requirements for Audio Output and Audio
-Analog ports. </td>
+Analog ports.</td>
+ </tr>
+ <tr>
+    <td>7.8.1. Microphone</td>
+    <td>Added Android Automotive requirements.</td>
  </tr>
  <tr>
     <td>8. Performance Compatibility</td>
@@ -4628,7 +4654,9 @@
  <tr>
     <td>11. Updatable Software</td>
     <td>If a device supports 802.11 or Bluetooth PAN (Personal Area Network) profile,
-then it MUST support Over-the-air download with offline update via reboot.</td>
+then it MUST support over-the-air (OTA) download with offline update via reboot. Clarified
+the OTA download requirement is allowed but not mandatory for Android Automotive
+implementations.</td>
  </tr>
  <tr>
     <td>14. Resources</td>