Merge "Docs: NEW CHANGE#18 for Android automotive changes to cdd       Changing Home to MUST and Back and Recents to MAY." 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 aa3ec04..9bbd091 100644
--- a/src/compatibility/5.1/android-5.1-cdd.html
+++ b/src/compatibility/5.1/android-5.1-cdd.html
@@ -1103,27 +1103,24 @@
  <tr>
     <td rowspan="10">small/normal</td>
     <td>120 dpi (ldpi)</td>
-    <td>16MB</td>
+    <td rowspan="2">32MB</td>
  </tr>
  <tr>
     <td>160 dpi (mdpi)</td>
-    <td></td>
  </tr>
  <tr>
     <td>213 dpi (tvdpi)</td>
-    <td>32MB</td>
+    <td rowspan="3">48MB</td>
  </tr>
  <tr>
     <td>240 dpi (hdpi)</td>
-    <td></td>
  </tr>
  <tr>
     <td>280 dpi (280dpi)</td>
-    <td>48MB</td>
  </tr>
  <tr>
     <td>320 dpi (xhdpi)</td>
-    <td>64MB</td>
+    <td>80MB</td>
  </tr>
  <tr>
     <td>400 dpi (400dpi)</td>
@@ -1144,19 +1141,18 @@
  <tr>
     <td rowspan="10">large</td>
     <td>120 dpi (ldpi)</td>
-    <td>16MB</td>
- </tr>
- <tr>
-    <td>160 dpi (mdpi)</td>
     <td>32MB</td>
  </tr>
  <tr>
+    <td>160 dpi (mdpi)</td>
+    <td>48MB</td>
+ </tr>
+ <tr>
     <td>213 dpi (tvdpi)</td>
-    <td>64MB</td>
+    <td rowspan="2">80MB</td>
  </tr>
  <tr>
     <td>240 dpi (hdpi)</td>
-    <td></td>
  </tr>
  <tr>
     <td>280 dpi (280dpi)</td>
@@ -1183,17 +1179,20 @@
     <td>512MB</td>
  </tr>
  <tr>
-    <td rowspan="9">xlarge</td>
+    <td rowspan="10">xlarge</td>
+    <td>120 dpi (ldpi)</td>
+    <td>48MB</td>
+ </tr>
+ <tr>
     <td>160 dpi (mdpi)</td>
-    <td>64MB</td>
+    <td>80MB</td>
  </tr>
  <tr>
     <td>213 dpi (tvdpi)</td>
-    <td>96MB</td>
+    <td rowspan="2">96MB</td>
  </tr>
  <tr>
     <td>240 dpi (hdpi)</td>
-    <td></td>
  </tr>
  <tr>
     <td>280 dpi (280dpi)</td>
@@ -1462,10 +1461,14 @@
 <p>Android includes features that allow security-aware applications to perform
 device administration functions at the system level, such as enforcing password
 policies or performing remote wipe, through the Android Device Administration
-API [<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>]. Device implementations MUST provide an implementation of the
-DevicePolicyManager class [<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">Resources, 40</a>]. Device implementations that include support for lock screen MUST support the
-full range of device administration policies defined in the Android SDK
-documentation [<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>] and report the platform feature android.software.device_admin.</p>
+API [<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>].
+Device implementations MUST provide an implementation of the DevicePolicyManager class
+[<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">Resources, 40</a>].
+Device implementations that include support for PIN (numeric) or PASSWORD
+(alphanumeric) based lock screens MUST support the full range of device
+administration policies defined in the Android SDK documentation
+[<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>]
+and report the platform feature android.software.device_admin.</p>
 
 <p>Device implementations MAY have a preinstalled application performing device
 administration functions but this application MUST NOT be set out-of-the box as
@@ -2655,8 +2658,8 @@
 <h3 id="7_2_1_keyboard">7.2.1. Keyboard</h3>
 
 <div class="note">
-<p>Android Watch devices MAY but other type of device implementations MUST
-implement a soft keyboard.</p>
+<p>Android Watch and Android Automotive implementations MAY implement a soft
+keyboard. All other device implementations MUST implement a soft keyboard and:</p>
 </div>
 
 
@@ -3073,8 +3076,10 @@
 
 <ul>
   <li>MUST implement and report TYPE_ACCELEROMETER sensor [<a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">Resources, 78</a>].</li>
-  <li>MUST be able to report events up to a frequency of at least 100 Hz and SHOULD
-report events up to at least 200 Hz.</li>
+  <li>MUST be able to report events up to a frequency of at least 50 Hz for
+  Android Watch devices as such devices have a stricter power constraint and
+  100 Hz for all other device types.</li>
+  <li>SHOULD report events up to at least 200 Hz.</li>
   <li>MUST comply with the Android sensor coordinate system as detailed in the
 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
@@ -3157,8 +3162,10 @@
 TYPE_GYROSCOPE_UNCALIBRATED sensor. Existing and new Android devices are
 strongly encouraged to implement the SENSOR_TYPE_GYROSCOPE_UNCALIBRATED sensor.</li>
   <li>MUST be capable of measuring orientation changes up to 1,000 degrees per second.</li>
-  <li>MUST be able to report events up to a frequency of at least 100 Hz and SHOULD
-report events up to at least 200 Hz.</li>
+  <li>MUST be able to report events up to a frequency of at least 50 Hz for
+  Android Watch devices as such devices have a stricter power constraint and 
+  100 Hz for all other device types.</li>
+  <li>SHOULD report events up to at least 200 Hz.</li>
   <li>MUST have a resolution of 12-bits or more and SHOULD have a resolution of
 16-bits or more.</li>
   <li>MUST be temperature compensated.</li>
@@ -3778,11 +3785,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
@@ -3791,10 +3799,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>
 
 
@@ -3814,8 +3818,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
@@ -3854,7 +3858,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>
 
 
@@ -4180,8 +4185,9 @@
 </div>
 
 
-<p>If the device implementation has a lock screen, the device MUST support
-full-disk encryption of the application private data, (/data partition) as well
+<p>If the device implementation supports a lock screen with PIN (numeric) or
+PASSWORD (alphanumeric), the device MUST support full-disk encryption of the
+application private data (/data partition), as well
 as the SD card partition if it is a permanent, non-removable part of the device
 [<a href="http://source.android.com/devices/tech/security/encryption/index.html">Resources, 107</a>]. For devices supporting full-disk encryption, the full-disk encryption SHOULD
 be enabled all the time after the user has completed the out-of-box experience.
@@ -4481,6 +4487,10 @@
     <td>7.1.7. External Displays</td>
     <td>Moved part of section to section 5.8. Secure Media.</td>
  </tr>
+ <tr>
+    <td>7.2.1. Keyboard</td>
+    <td>Added Android Automotive requirements.</td>
+ </tr>
   <tr>
     <td>7.2 Input Devices</td>
     <td>Added general intro statement.</td>
@@ -4585,9 +4595,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>