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’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>