Merge "CDD: Allow display density to change, but require a fixed value for DENSITY_DEVICE_STABLE." into nougat-dev am: cdd069781b am: 93c0c1d0b9 am: d30eb71969 am: 182c86515a
am: ce50b8e447

Change-Id: I22c6ba3121ac673bb89f188b155a3a7b5b6d8738
diff --git a/2_device-types/2_1_device-configurations.md b/2_device-types/2_1_device-configurations.md
index 3bf6dc1..12ae2d5 100644
--- a/2_device-types/2_1_device-configurations.md
+++ b/2_device-types/2_1_device-configurations.md
@@ -110,6 +110,7 @@
     <td></td>
  </tr>
  <tr>
+    <td>USB</td>
     <td>USB peripheral/host mode</td>
     <td><a href="#7_7_usb">7.7. USB</a></td>
     <td>SHOULD</td>
diff --git a/3_software/3_12_tv-input-framework.md b/3_software/3_12_tv-input-framework.md
index 0c9ad6c..19dd848 100644
--- a/3_software/3_12_tv-input-framework.md
+++ b/3_software/3_12_tv-input-framework.md
@@ -19,13 +19,13 @@
 [TV Channels](http://developer.android.com/reference/android/media/tv/TvContract.Channels.html)
 and meet the following requirements:
 
-*   Device implementations MUST allow third-party TIF-based inputs
+*   Device implementations SHOULD allow third-party TIF-based inputs
     ([third-party inputs](https://source.android.com/devices/tv/index.html#third-party_input_example))
     to be installed and managed.
 *   Device implementations MAY provide visual separation between pre-installed
     [TIF-based inputs](https://source.android.com/devices/tv/index.html#tv_inputs)
     (installed inputs) and third-party inputs.
-*   Device implementations MUST NOT display the third-party inputs more than a
+*   Device implementations SHOULD 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).
 
@@ -37,12 +37,12 @@
 [TvContract.Programs](https://developer.android.com/reference/android/media/tv/TvContract.Programs.html)
 fields. The EPG MUST meet the following requirements:
 
-*   The EPG MUST display information from all installed inputs and third-party
+*   The EPG SHOULD display information from all installed inputs and third-party
     inputs.
 *   The EPG MAY provide visual separation between the installed inputs and
     third-party inputs.
 *   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 with equal prominence. The EPG SHOULD NOT display the third-party
     inputs more than a single navigation action away from the installed inputs
     on the EPG.
 *   On channel change, device implementations MUST display EPG data for the
@@ -71,8 +71,8 @@
 
 #### 3.12.1.4\. Time shifting
 
-Android Television device implementations MUST support time shifting, which
-allows the user to pause and resume live content. Device implementations MUST
+Android Television device implementations are STRONGLY RECOMMENDED to support time shifting, which
+allows the user to pause and resume live content. Device implementations SHOULD
 provide the user a way to pause and resume the currently playing program, if
 time shifting for that program
 [is available](https://developer.android.com/reference/android/media/tv/TvInputManager.html#TIME_SHIFT_STATUS_AVAILABLE). 
diff --git a/3_software/3_8_user-interface-compatibility.md b/3_software/3_8_user-interface-compatibility.md
index c74e432..c1ddecd 100644
--- a/3_software/3_8_user-interface-compatibility.md
+++ b/3_software/3_8_user-interface-compatibility.md
@@ -346,8 +346,8 @@
 *   Device implementations MUST NOT offer split-screen or freeform mode
     if both the screen height and width is less than 440 dp.
 *   Device implementations with screen size `xlarge` SHOULD support freeform mode.
-*   Android Television device implementations MUST support picture-in-picture (PIP) mode multi-window
-    and place the PIP multi-window in the top right corner when PIP is ON.
+*   Android Television device implementations SHOULD support picture-in-picture (PIP) mode multi-window
+    and place the PIP multi-window in the bottom right corner when PIP is ON.
 *   Device implementations with PIP mode multi-window support
     MUST allocate at least 240x135 dp for the PIP window.
 *   If the PIP multi-window mode is supported the [`KeyEvent.KEYCODE_WINDOW`](https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_WINDOW)
diff --git a/7_hardware-compatibility/7_4_data-connectivity.md b/7_hardware-compatibility/7_4_data-connectivity.md
index 4ddedb4..c4c82fb 100644
--- a/7_hardware-compatibility/7_4_data-connectivity.md
+++ b/7_hardware-compatibility/7_4_data-connectivity.md
@@ -59,6 +59,18 @@
     *   Even when the screen is not in an active state.
     *   For Android Television device implementations, even when in standby
 power states.
+*   SHOULD randomize the source MAC address and sequence number of probe
+request frames, once at the beginning of each scan, while STA is disconnected.
+    * Each group of probe request frames comprising one scan should use one consistent MAC address
+    (SHOULD NOT randomize MAC address halfway through a scan).
+    * Probe request sequence number should iterate as normal (sequentially)
+    between the probe requests in a scan
+    * Probe request sequence number should randomize between the last probe
+    request of a scan and the first probe request of the next scan
+*   SHOULD only allow the following information elements in probe request
+frames, while STA is disconnected:
+    * SSID Parameter Set (0)
+    * DS Parameter Set (3)
 
 #### 7.4.2.1\. Wi-Fi Direct
 
@@ -71,7 +83,7 @@
 
 *   MUST report the hardware feature android.hardware.wifi.direct.
 *   MUST support regular Wi-Fi operation.
-*   SHOULD support concurrent Wi-Fi and Wi-Fi Direct operation.
+*   SHOULD support Wi-Fi and Wi-Fi Direct operations concurrently.
 
 #### 7.4.2.2\. Wi-Fi Tunneled Direct Link Setup
 
@@ -83,7 +95,21 @@
 
 *   SHOULD use TDLS only when it is possible AND beneficial.
 *   SHOULD have some heuristic and NOT use TDLS when its performance might be
-worse than going through the Wi-Fi access point.
+    worse than going through the Wi-Fi access point.
+
+#### 7.4.2.3\. Wi-Fi Aware
+
+Device implementations SHOULD include support for [Wi-Fi
+Aware](http://www.wi-fi.org/discover-wi-fi/wi-fi-aware).
+If a device implementation includes support for Wi-Fi Aware
+and exposes the functionality to third-party apps, then it:
+
+*   MUST implement the `WifiAwareManager` APIs as described in the [SDK
+    documentation](http://developer.android.com/reference/android/net/wifi/aware/WifiAwareManager.html).
+*   MUST report the PackageManager hardware feature `android.hardware.wifi.aware`.
+*   MUST support Wi-Fi and Wi-Fi Aware operations concurrently.
+*   MUST randomize the Wi-Fi Aware management interface address at intervals
+    no longer then 30 minutes and whenever Wi-Fi Aware is enabled.
 
 ### 7.4.3\. Bluetooth
 
diff --git a/9_security-model/9_8_privacy.md b/9_security-model/9_8_privacy.md
index 6200327..095a6f2 100644
--- a/9_security-model/9_8_privacy.md
+++ b/9_security-model/9_8_privacy.md
@@ -25,4 +25,10 @@
 
 If a device implementation has a USB port with USB peripheral mode support, it
 MUST present a user interface asking for the user's consent before allowing
-access to the contents of the shared storage over the USB port.
\ No newline at end of file
+access to the contents of the shared storage over the USB port.
+
+Android stores the history of the user's choices and manages such history by
+[UsageStatsManager](https://developer.android.com/reference/android/app/usage/UsageStatsManager.html),
+device implementations MUST keep a reasonable retention length of such user
+history. It is STRONGLY RECOMMENDED to keep the 14 days retention length as
+configured by default in the AOSP implementation.
\ No newline at end of file