Merge "CDD: Clarify the requirement for kernel stack buffer overflow protections." into oreo-dev
am: ab75ac73a1

Change-Id: I9e7a3349b07a45559129352cc14d397ced014266
diff --git a/2_device-types/2_1_device-configurations.md b/2_device-types/2_1_device-configurations.md
index 6b04ddd..883d049 100644
--- a/2_device-types/2_1_device-configurations.md
+++ b/2_device-types/2_1_device-configurations.md
@@ -1,4 +1,132 @@
 ## 2.1 Device Configurations
 
-For the major differences in hardware configuration by device
-type, see the device-specific requirements that follow in this section.
+This is a summary of major differences in hardware configuration by device
+type. (Empty cells denote a “MAY”). Not all configurations are covered in this
+table; see relevant hardware sections for more detail.
+
+<table>
+ <tr>
+    <th>Category</th>
+    <th>Feature</th>
+    <th>Section</th>
+    <th>Handheld</th>
+    <th>Television</th>
+    <th>Watch</th>
+    <th>Automotive</th>
+    <th>Other</th>
+ </tr>
+ <tr>
+    <td rowspan="3">Input</td>
+    <td>D-pad</td>
+    <td><a href="#7_2_2_non-touch-navigation">7.2.2. Non-touch Navigation</a></td>
+    <td></td>
+    <td>MUST</td>
+    <td></td>
+    <td></td>
+    <td></td>
+ </tr>
+ <tr>
+    <td>Touchscreen </td>
+    <td><a href="#7_2_4_touchscreen_input">7.2.4. Touchscreen input</a></td>
+    <td>MUST</td>
+    <td></td>
+    <td>MUST</td>
+    <td></td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Microphone </td>
+    <td><a href="#7_8_1_microphone">7.8.1. Microphone</a></td>
+    <td>MUST</td>
+    <td>SHOULD </td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td rowspan="2">Sensors</td>
+    <td>Accelerometer </td>
+    <td><a href="#7_3_1_accelerometer">7.3.1 Accelerometer</a></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>GPS</td>
+    <td><a href="#7_3_3_gps">7.3.3. GPS</a></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+    <td></td>
+ </tr>
+ <tr>
+    <td rowspan="5">Connectivity</td>
+    <td>Wi-Fi</td>
+    <td><a href="#7_4_2_ieee_802.11">7.4.2. IEEE 802.11</a></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+    <td></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Wi-Fi Direct</td>
+    <td><a href="#7_4_2_1_wi-fi-direct">7.4.2.1. Wi-Fi Direct</a></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Bluetooth</td>
+    <td><a href="#7_4_3_bluetooth">7.4.3. Bluetooth</a></td>
+    <td>SHOULD</td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Bluetooth Low Energy</td>
+    <td><a href="#7_4_3_bluetooth">7.4.3. Bluetooth</a></td>
+    <td>SHOULD</td>
+    <td>MUST</td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Cellular radio</td>
+    <td><a href="#7_4_5_minimum_network_capability">
+      7.4.5. Minimum Network Capability</a></td>
+    <td></td>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+    <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>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Output</td>
+    <td>Speaker and/or Audio output ports</td>
+    <td><a href="#7_8_2_audio_output">7.8.2. Audio Output</a></td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td></td>
+    <td>MUST</td>
+    <td>MUST</td>
+ </tr>
+</table>
diff --git a/2_device-types/2_3_television-reqs.md b/2_device-types/2_3_television-reqs.md
index 1ce2d6b..ddb7a9e 100644
--- a/2_device-types/2_3_television-reqs.md
+++ b/2_device-types/2_3_television-reqs.md
@@ -267,4 +267,4 @@
 *   [[8.4](#8_4_power-consumption-accounting)/T-0-4] MUST make this power usage
 available via the [`adb shell dumpsys batterystats`](
 http://source.android.com/devices/tech/power/batterystats.html)
-shell command to the app developer.
+shell command to the app developer.
\ No newline at end of file
diff --git a/2_device-types/2_4_watch-reqs.md b/2_device-types/2_4_watch-reqs.md
index 460c932..8c9b588 100644
--- a/2_device-types/2_4_watch-reqs.md
+++ b/2_device-types/2_4_watch-reqs.md
@@ -41,11 +41,11 @@
 
 ### 2.4.2\. Multimedia
 
-No additional requirements.
+To be added.
 
 ### 2.4.3\. Software
 
-Watch device implementations:
+Android Watch device implementations:
 
 *   [[3](#3_0_intro)/W-0-1] MUST declare the feature
 `android.hardware.type.watch`.
@@ -53,7 +53,6 @@
     [UI_MODE_TYPE_WATCH](
     http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH).
 
-
 Watch device implementations:
 
 *   [[3.8](#3_8_user-interface-compatibility).4/W-SR] Are STRONGLY RECOMMENDED
@@ -71,7 +70,7 @@
 Text-to-speech engine) accessibility services as provided in the
 [talkback open source project]( https://github.com/google/talkback).
 
-If Watch device implementations report the feature android.hardware.audio.output,
+If device implementations report the feature android.hardware.audio.output,
 they:
 
 *   [[3.11](#3_11_text-to-speech)/W-SR] Are STRONGLY RECOMMENDED to include a
diff --git a/3_software/3_12_tv-input-framework.md b/3_software/3_12_tv-input-framework.md
index 971e726..7fc167d 100644
--- a/3_software/3_12_tv-input-framework.md
+++ b/3_software/3_12_tv-input-framework.md
@@ -5,13 +5,15 @@
 content to Android Television devices. TIF provides a standard API to create
 input modules that control Android Television devices.
 
+*    [T-0-1] Android Television device implementations MUST support TV Input
+Framework.
+
 If device implementations support TIF, they:
 
 *    [C-1-1] MUST declare the platform feature `android.software.live_tv`.
 *    [C-1-2] MUST preload a TV application (TV App) and meet all requirements
      described in [section 3.12.1](#3_12_tv-input-framework).
 
-
 ### 3.12.1\. TV App
 
 If device implementations support TIF:
@@ -68,7 +70,7 @@
 
     *   Changing TV channels
     *   Opening EPG
-    *   Configuring and tuning to third-party TIF-based inputs
+    *   Configuring and tuning to third-party TIF-based inputs (if those inputs are supported)
     *   Opening Settings menu
 
 *    SHOULD pass key events to HDMI inputs through CEC.
@@ -81,8 +83,8 @@
 [TV input app linking](
 http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI),
 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).
-*    [C-1-2] The TV App MUST show TV input app linking when it is provided.
+another activity (i.e. a link from live programming to related content). The TV
+App SHOULD show TV input app linking when it is provided.
 
 #### 3.12.1.4\. Time shifting
 
diff --git a/3_software/3_2_soft-api-compatibility.md b/3_software/3_2_soft-api-compatibility.md
index 50c8fbe..fd0f1a2 100644
--- a/3_software/3_2_soft-api-compatibility.md
+++ b/3_software/3_2_soft-api-compatibility.md
@@ -252,15 +252,15 @@
 components, or at least a handler, for all the public intent filter patterns
 defined by the following core Android applications in AOSP:
 
-     *   Desk Clock
-     *   Browser
-     *   Calendar
-     *   Contacts
-     *   Gallery
-     *   GlobalSearch
-     *   Launcher
-     *   Music
-     *   Settings
+   *   Desk Clock
+   *   Browser
+   *   Calendar
+   *   Contacts
+   *   Gallery
+   *   GlobalSearch
+   *   Launcher
+   *   Music
+   *   Settings
 
 #### 3.2.3.2\. Intent Resolution
 
@@ -433,4 +433,4 @@
 *   [C-3-1] Only the owner of that display, system, and activities that are
     already on that display MUST be able to launch to it. Everyone can launch to
     a display that has [android.view.Display.FLAG_PUBLIC](https://developer.android.com/reference/android/view/Display.html#FLAG_PUBLIC)
-    flag.
+    flag.
\ No newline at end of file
diff --git a/5_multimedia/5_1_media-codecs.md b/5_multimedia/5_1_media-codecs.md
index 3b61db4..1ad3158 100644
--- a/5_multimedia/5_1_media-codecs.md
+++ b/5_multimedia/5_1_media-codecs.md
@@ -4,6 +4,27 @@
 
 See more details in [5.1.3. Audio Codecs Details](#5_1_3_audio_codecs_details).
 
+Handheld device implementations MUST support the following audio encoding:
+
+*    [H-0-1] AMR-NB
+*    [H-0-2] AMR-WB
+*    [H-0-3] MPEG-4 AAC Profile (AAC LC)
+*    [H-0-4] MPEG-4 HE AAC Profile (AAC+)
+*    [H-0-5] AAC ELD (enhanced low delay AAC)
+
+
+Television device implementations MUST support the following audio encoding:
+
+*    [T-0-1] MPEG-4 AAC Profile (AAC LC)
+*    [T-0-2] MPEG-4 HE AAC Profile (AAC+)
+*    [T-0-3] AAC ELD (enhanced low delay AAC)
+
+Automotive device implementations MUST support the following audio encoding:
+
+*    [A-1-1] MPEG-4 AAC Profile (AAC LC)
+*    [A-1-2] MPEG-4 HE AAC Profile (AAC+)
+*    [A-1-3] AAC ELD (enhanced low delay AAC)
+
 If device implementations declare `android.hardware.microphone`,
 they MUST support the following audio encoding:
 
@@ -14,6 +35,10 @@
 
 See more details in [5.1.3. Audio Codecs Details](#5_1_3_audio_codecs_details).
 
+Handheld device implementations MUST support the following decoding.
+
+*    [H-0-1] AMR-NB
+*    [H-0-2] AMR-WB
 
 If device implementations declare support for the
 `android.hardware.audio.output` feature, they must support the following audio
diff --git a/5_multimedia/5_2_video-encoding.md b/5_multimedia/5_2_video-encoding.md
index 3bc9d79..4f97c1e 100644
--- a/5_multimedia/5_2_video-encoding.md
+++ b/5_multimedia/5_2_video-encoding.md
@@ -1,5 +1,22 @@
 ## 5.2\. Video Encoding
 
+Handheld device implementations MUST support the following encoding and make it
+available to third-party applications.
+
+*    [H-0-1] H.264 AVC
+*    [H-0-2] VP8
+
+Television device implementations MUST support the following encoding.
+
+*    [T-0-1] H.264 AVC
+*    [T-0-2] VP8
+
+Automotive device implementations MUST support the following encoding:
+
+*    [A-0-1] H.264 AVC
+*    [A-0-2] VP8
+
+
 If device implementations support any video encoder and make it available
 to third-party apps, they:
 
@@ -43,6 +60,14 @@
 
 ### 5.2.2\. H-264
 
+Television device implementations are:
+
+*   [T-SR] STRONGLY RECOMMENDED to support H.264 encoding of 720p and 1080p
+resolution videos.
+*   [T-SR] STRONGLY RECOMMENDED to support H.264 encoding of 1080p resolution
+video at 30 frame-per-second (fps).
+
+
 If device implementations support H.264 codec, they:
 
 *   [C-1-1] MUST support Baseline Profile Level 3.
diff --git a/5_multimedia/5_3_video-decoding.md b/5_multimedia/5_3_video-decoding.md
index 30adfe2..b376275 100644
--- a/5_multimedia/5_3_video-decoding.md
+++ b/5_multimedia/5_3_video-decoding.md
@@ -1,5 +1,32 @@
 ## 5.3\. Video Decoding
 
+Handheld device implementations:
+
+*    [H-0-1] MUST support decoding of H.264 AVC.
+*    [H-0-2] MUST support decoding of H.265 HEVC.
+*    [H-0-3] MUST support decoding of MPEG-4 SP.
+*    [H-0-4] MUST support decoding of VP8.
+*    [H-0-5] MUST support decoding of VP9.
+
+Television device implementations:
+
+*    [T-0-1] MUST support decoding of H.264 AVC.
+*    [T-0-2] MUST support decoding of H.265 HEVC.
+*    [T-0-3] MUST support decoding of MPEG-4 SP.
+*    [T-0-4] MUST support decoding of VP8.
+*    [T-0-5] MUST support decoding of VP9.
+*    [T-SR] Are Strongly Recommended to support MPEG-2 decoding.
+
+
+Automotive device implementations:
+
+*    [A-0-1] MUST support decoding of H.264 AVC.
+*    [A-0-2] MUST support decoding of MPEG-4 SP.
+*    [A-0-3] MUST support decoding of VP8.
+*    [A-0-4] MUST support decoding of VP9.
+*    [A-SR] Are Strongly Recommended to support H.265 HEVC decoding.
+
+
 If device implementations support VP8, VP9, H.264, or H.265 codecs, they:
 
 *   [C-1-1] MUST support dynamic video resolution and frame rate switching
@@ -56,6 +83,13 @@
 *   [C-2-2] MUST support the HD 1080p video decoding profiles in the following
 table.
 
+If Television device implementations support H.264 decoders, they:
+
+*   [T-1-1] MUST support High Profile Level 4.2 and the HD 1080p (at 60 fps)
+decoding profile.
+*   [T-1-2] MUST be capable of decoding videos with both HD profiles as
+indicated in the following table and encoded with either the Baseline Profile,
+Main Profile, or the High Profile Level 4.2
 
 <table>
  <tr>
@@ -90,7 +124,6 @@
 
 ### 5.3.5\. H.265 (HEVC)
 
-
 If device implementations support H.265 codec, they:
 
 *   [C-1-1] MUST support the Main Profile Level 3 Main tier and the SD video
@@ -105,6 +138,18 @@
 *   [C-2-1] Device implementations MUST support at least one of H.265 or VP9
 decoding of 720, 1080 and UHD profiles.
 
+If Television device implementations support H.265 codec and the HD 1080p
+decoding profile, they:
+
+*   [T-1-1] MUST support the Main Profile Level 4.1 Main tier.
+*   [T-SR] STRONGLY RECOMMENDED to support 60 fps video frame rate
+for HD 1080p.
+
+If Television device implementations support H.265 codec and the UHD decoding
+profile, then:
+
+*   [T-2-1] The codec MUST support Main10 Level 5 Main Tier profile.
+
 <table>
  <tr>
     <th></th>
@@ -159,6 +204,15 @@
 *   [C-2-2] Device implementations MUST support 1080p profiles in the
 following table.
 
+If Television device implementations support VP8 codec, they:
+
+*   [T-1-1] MUST support the HD 1080p60 decoding profile.
+
+If Television device implementations support VP8 codec and support 720p, they:
+
+*   [T-2-1] MUST support the HD 720p60 decoding profile.
+
+
 
 <table>
  <tr>
@@ -211,6 +265,17 @@
 *   [C-3-1] Device implementations MUST support at least one of VP9 or H.265
 decoding of the 720, 1080 and UHD profiles.
 
+If Television device implementations support VP9 codec and the UHD video
+decoding, they:
+
+*   [T-1-1] MUST support 8-bit color depth and SHOULD support VP9 Profile 2
+(10-bit).
+
+If Television device implementations support VP9 codec, the 1080p profile and
+VP9 hardware decoding, they:
+
+*   [T-2-1] MUST support 60 fps for 1080p.
+
 <table>
  <tr>
     <th></th>
@@ -244,4 +309,4 @@
     <td>5 Mbps</td>
     <td>20 Mbps</td>
  </tr>
-</table>
+</table>
\ No newline at end of file
diff --git a/5_multimedia/5_5_audio-playback.md b/5_multimedia/5_5_audio-playback.md
index b0e6d45..363197e 100644
--- a/5_multimedia/5_5_audio-playback.md
+++ b/5_multimedia/5_5_audio-playback.md
@@ -10,14 +10,14 @@
 *   [C-1-1] MUST allow playback of raw audio content with the following
 characteristics:
 
-     *   **Format**: Linear PCM, 16-bit
-     *   **Sampling rates**: 8000, 11025, 16000, 22050, 32000, 44100
-     *   **Channels**: Mono, Stereo
+   *   **Format**: Linear PCM, 16-bit
+   *   **Sampling rates**: 8000, 11025, 16000, 22050, 32000, 44100
+   *   **Channels**: Mono, Stereo
 
 *   SHOULD allow playback of raw audio content with the following
 characteristics:
 
-     *   **Sampling rates**: 24000, 48000
+   *   **Sampling rates**: 24000, 48000
 
 ### 5.5.2\. Audio Effects
 
@@ -40,6 +40,13 @@
 
 ### 5.5.3\. Audio Output Volume
 
+Television device implementations:
+
+*   [T-0-1] MUST include support for system Master Volume and digital audio
+output volume attenuation on supported outputs,
+except for compressed audio passthrough output (where no audio decoding is done
+on the device).
+
 Automotive device implementations:
 
 *   SHOULD allow adjusting audio volume
diff --git a/5_multimedia/5_8_secure-media.md b/5_multimedia/5_8_secure-media.md
index e75a775..5df157e 100644
--- a/5_multimedia/5_8_secure-media.md
+++ b/5_multimedia/5_8_secure-media.md
@@ -17,3 +17,15 @@
 
 *    [C-3-1] MUST support HDCP 1.2 or higher for all wired external displays.
 
+If device implementations are Android Television devices and support 4K
+resolution, they:
+
+*    [T-1-1] MUST support HDCP 2.2 for all wired external displays.
+
+If Television device implementations don't support 4K resolution, they:
+
+*    [T-2-1] MUST support HDCP 1.4 for all wired external displays.
+
+*    [T-SR] Television device implementations are STRONGLY RECOMMENDED to
+support simulataneous decoding of secure streams. At minimum, simultaneous
+decoding of two steams is STRONGLY RECOMMENDED.
\ No newline at end of file
diff --git a/7_hardware-compatibility/7_1_display-and-graphics.md b/7_hardware-compatibility/7_1_display-and-graphics.md
index 853ba1b..13da399 100644
--- a/7_hardware-compatibility/7_1_display-and-graphics.md
+++ b/7_hardware-compatibility/7_1_display-and-graphics.md
@@ -23,6 +23,18 @@
 
 #### 7.1.1.1\. Screen Size
 
+*   [H-0-1] Handheld device implementations MUST have a screen at least 2.5
+    inches in physical diagonal size.
+
+*   [A-0-1] Android Automotive devices MUST have a screen at least 6 inches
+    in physical diagonal size.
+
+*   [A-0-2] Android Automotive devices MUST have a screen size layout of
+at least 750 dp x 480 dp.
+
+*   [W-0-1] Android Watch device implementations MUST have a screen with the
+    physical diagonal size in the range from 1.1 to 2.5 inches.
+
 The Android UI framework supports a variety of different logical screen layout
 sizes, and allows applications to query the current configuration's screen
 layout size via `Configuration.screenLayout` with the `SCREENLAYOUT_SIZE_MASK`
@@ -118,6 +130,8 @@
      supported compatible screen size (320 dp width), device implementations SHOULD
      report the next lowest standard Android framework density.
 
+*    [H-SR] Device implementations are STRONGLY RECOMMENDED to provide users an
+     affordance to change the display size.
 
 If there is an affordance to change the display size of the device:
 
@@ -343,6 +357,12 @@
 applications not developed for old versions of Android that pre-date
 screen-size independence.
 
+*   [H-0-1] Handheld device implementations MUST include support
+    for legacy application compatibility mode as implemented by the upstream
+    Android open source code. That is, device implementations MUST NOT alter the
+    triggers or thresholds at which compatibility mode is activated, and MUST
+    NOT alter the behavior of the compatibility mode itself.
+
 ### 7.1.6\. Screen Technology
 
 The Android platform includes APIs that allow applications to render rich
@@ -368,4 +388,4 @@
 
 *   [C-1-1] MUST implement the [`DisplayManager`](
     https://developer.android.com/reference/android/hardware/display/DisplayManager.html)
-    system service and API as described in the Android SDK documentation.
+    system service and API as described in the Android SDK documentation.
\ No newline at end of file
diff --git a/7_hardware-compatibility/7_2_input-devices.md b/7_hardware-compatibility/7_2_input-devices.md
index 993db39..66fda1d 100644
--- a/7_hardware-compatibility/7_2_input-devices.md
+++ b/7_hardware-compatibility/7_2_input-devices.md
@@ -8,6 +8,11 @@
 
 ### 7.2.1\. Keyboard
 
+*    [H-0-1]  Handheld device implementations MUST include support for
+third-party Input Method Editor (IME) applications.
+*    [T-0-1] Television device implementations  MUST include support for
+third-party Input Method Editor (IME) applications.
+
 If device implementations include support for third-party
 Input Method Editor (IME) applications, they:
 
@@ -29,6 +34,10 @@
 Android includes support for d-pad, trackball, and wheel as mechanisms for
 non-touch navigation.
 
+Television device implementations:
+
+*    [T-0-1] MUST support [D-pad](https://developer.android.com/reference/android/content/res/Configuration.html#NAVIGATION_DPAD).
+
 Device implementations:
 
 *   [C-0-1] MUST report the correct value for
@@ -52,6 +61,25 @@
 or a distinct portion of the touch screen, are essential to the Android
 navigation paradigm and therefore:
 
+*   [H-0-1] Android Handheld device implementations MUST provide the Home,
+    Recents, and Back functions.
+*   [H-0-2] Android Handheld device implementations MUST send both the normal
+    and long press event of the the Back function ([`KEYCODE_BACK`](http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK))
+    to the foreground application.
+*   [T-0-1] Android Television device implementations MUST provide the Home
+    and Back functions.
+*   [T-0-2] Android Television device implementations MUST send both the normal
+    and long press event of the the Back function ([`KEYCODE_BACK`](http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK))
+    to the foreground application.
+*   [W-0-1] 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`.
+*   [A-0-1] Automotive device implementations MUST provide the Home function
+    and MAY provide Back and Recent functions.
+*   [A-0-2] Automotive device implementations MUST send both the normal
+    and long press event of the the Back function ([`KEYCODE_BACK`](http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK))
+    to the foreground application.
+
 *   [C-0-1] MUST provide the Home function.
 *   SHOULD provide buttons for the Recents and Back function.
 
@@ -117,6 +145,9 @@
 the system does not require any additional affordances to indicate the objects
 being manipulated.
 
+*    [H-0-1] Handheld device implementations MUST support touchscreen input.
+*    [W-0-2] Watch device implementations MUST support touchscreen input.
+
 Device implementations:
 
 *    SHOULD have a pointer input system of some kind
@@ -205,6 +236,10 @@
 
 #### 7.2.6.1\. Button Mappings
 
+Television device implementations:
+*    [T-0-1] MUST include support for game controllers and declare the
+`android.hardware.gamepad` feature flag.
+
 If device implementations declare the `android.hardware.gamepad` feature flag,
 they:
 *    [C-1-1] MUST have embed a controller or ship with a separate controller
@@ -346,5 +381,8 @@
 
 ### 7.2.7\. Remote Control
 
-See [Section 2.3.1](#2_3_1_hardware) for device-specific requirements.
+Television device implementations:
 
+*    SHOULD provide a remote control from which users can access
+[non-touch navigation](#7_2_2_non-touch_navigation) and
+[core navigation keys](#7_2_3_navigation_keys) inputs.
\ No newline at end of file
diff --git a/7_hardware-compatibility/7_3_sensors.md b/7_hardware-compatibility/7_3_sensors.md
index f768af7..0553ac6 100644
--- a/7_hardware-compatibility/7_3_sensors.md
+++ b/7_hardware-compatibility/7_3_sensors.md
@@ -82,6 +82,25 @@
 ### 7.3.1\. Accelerometer
 
 *   Device implementations SHOULD include a 3-axis accelerometer.
+*   [H-SR] Handheld device implementations are STRONGLY RECOMMENDED to
+    include a 3-axis accelerometer.
+*   [A-SR] Automotive device implementations are STRONGLY RECOMMENDED to
+    include a 3-axis accelerometer.
+*   [W-SR] Watch device implementations are STRONGLY RECOMMENDED to
+    include a 3-axis accelerometer.
+
+
+
+If Handheld device implementations include a 3-axis accelerometer, they:
+
+*   [H-1-1] MUST be able to report events up to a frequency of at least 100 Hz.
+
+If Automotive device implementations include a 3-axis accelerometer, they:
+
+*   [A-1-1] MUST be able to report events up to a frequency of at least 100 Hz.
+*   [A-1-2] MUST comply with the Android
+    [car sensor coordinate system](
+    http://source.android.com/devices/sensors/sensor-types.html#auto_axes).
 
 If device implementations include a 3-axis accelerometer, they:
 
@@ -234,6 +253,12 @@
 additional mandatory requirements for devices reporting the year "2016" or
 "2017" through the Test API `LocationManager.getGnssYearOfHardware()`.
 
+If Automotive device implementations include a GPS/GNSS receiver and report
+the capability to applications through the `android.hardware.location.gps`
+feature flag:
+
+*   [A-1-1] GNSS technology generation MUST be the year "2017" or newer.
+
 If device implementations include a GPS/GNSS receiver and report the capability
 to applications through the `android.hardware.location.gps` feature flag and the
 `LocationManager.getGnssYearOfHardware()` Test API reports the year "2016" or
@@ -293,6 +318,19 @@
 when device is stationary at room temperature.
 *   SHOULD report events up to at least 200 Hz.
 
+If Handheld device implementations include a gyroscope, they:
+
+*   [H-1-1] MUST be able to report events up to a frequency of at least 100 Hz.
+
+If Automotive device implementations include a gyroscope, they:
+
+*   [A-1-1] MUST be able to report events up to a frequency of at least 100 Hz.
+
+If Television device implementations include a gyroscope, they:
+
+*   [T-1-1] MUST be able to report events up to a frequency of at least 100 Hz.
+
+
 If device implementations include a gyroscope, an accelerometer sensor and a
 magnetometer sensor, they:
 
@@ -347,6 +385,9 @@
 ### 7.3.8\. Proximity Sensor
 
 *   Device implementations MAY include a proximity sensor.
+*   Handheld device implementations that can make a voice call and indicate
+any value other than `PHONE_TYPE_NONE` in `getPhoneType`
+SHOULD include a proximity sensor.
 
 If device implementations include a proximity sensor, they:
 
@@ -542,22 +583,40 @@
 Automotive-specific sensors are defined in the
 `android.car.CarSensorManager API`.
 
+
 #### 7.3.11.1\. Current Gear
 
-See [Section 2.5.1](#2_5_1_hardware) for device-specific requirements.
+*    Android Automotive implementations SHOULD provide current gear as
+`SENSOR_TYPE_GEAR`.
 
 #### 7.3.11.2\. Day Night Mode
 
-See [Section 2.5.1](#2_5_1_hardware) for device-specific requirements.
+Automotive device implementations:
+
+*    [A-0-1] MUST support day/night mode
+defined as `SENSOR_TYPE_NIGHT`.
+*    [A-0-2] The value of the `SENSOR_TYPE_NIGHT` flag MUST be consistent with
+dashboard day/night mode and SHOULD be based on ambient light sensor input.
+
+*    The underlying ambient light sensor MAY be the same as
+[Photometer](#7_3_7_photometer).
 
 #### 7.3.11.3\. Driving Status
 
-See [Section 2.5.1](#2_5_1_hardware) for device-specific requirements.
+Automotive device implementations:
+
+*    [A-0-1] MUST support driving status
+defined as `SENSOR_TYPE_DRIVING_STATUS`, with a default value of
+`DRIVE_STATUS_UNRESTRICTED` when the vehicle is fully stopped and parked. It is
+the responsibility of device manufacturers to configure
+`SENSOR_TYPE_DRIVING_STATUS` in compliance with all
+laws and regulations that apply to markets where the product is shipping.
 
 #### 7.3.11.4\. Wheel Speed
 
-See [Section 2.5.1](#2_5_1_hardware) for device-specific requirements.
+Automotive device implementations:
 
+*    [A-0-1] MUST provide vehicle speed defined as `SENSOR_TYPE_CAR_SPEED`.
 
 ## 7.3.12\. Pose Sensor
 
@@ -565,6 +624,10 @@
 
 *   MAY support pose sensor with 6 degrees of freedom.
 
+Handheld device implementations are:
+
+*   RECOMMENDED to support this sensor.
+
 If device implementations support pose sensor with 6 degrees of freedom, they:
 
 *   [C-1-1] MUST implement and report [`TYPE_POSE_6DOF`](
diff --git a/7_hardware-compatibility/7_4_data-connectivity.md b/7_hardware-compatibility/7_4_data-connectivity.md
index 1ee8792..d85d0de 100644
--- a/7_hardware-compatibility/7_4_data-connectivity.md
+++ b/7_hardware-compatibility/7_4_data-connectivity.md
@@ -162,6 +162,10 @@
 
 ### 7.4.3\. Bluetooth
 
+*    [W-0-1] Watch device implementations MUST support Bluetooth.
+*    [T-0-1] Television device implementations MUST support Bluetooth and
+Bluetooth LE.
+
 If device implementations support Bluetooth Audio profile, they:
 
 *    SHOULD support Advanced Audio Codecs and Bluetooth Audio Codecs
@@ -184,6 +188,17 @@
 *    SHOULD implement relevant Bluetooth profiles such as
      A2DP, AVCP, OBEX, etc. as appropriate for the device.
 
+Automotive device implementations:
+*    [A-0-1] Automotive device implementations MUST support Bluetooth and
+SHOULD support Bluetooth LE.
+*    [A-0-2] Android Automotive implementations MUST support the following
+Bluetooth profiles:
+
+     * Phone calling over Hands-Free Profile (HFP).
+     * Media playback over Audio Distribution Profile (A2DP).
+     * Media playback control over Remote Control Profile (AVRCP).
+     * Contact sharing using the Phone Book Access Profile (PBAP).
+*    SHOULD support Message Access Profile (MAP).
 
 If device implementations include support for Bluetooth Low Energy, they:
 
@@ -398,6 +413,10 @@
 
 *   [SR] STRONGLY RECOMMENDED to provide the data saver mode.
 
+If Handheld device implementations include a metered connection, they:
+
+*   [H-1-1] MUST provide the data saver mode.
+
 If device implementations provide the data saver mode, they:
 
 *   [C-1-1] MUST support all the APIs in the `ConnectivityManager`
diff --git a/7_hardware-compatibility/7_5_cameras.md b/7_hardware-compatibility/7_5_cameras.md
index 112d6b2..570a8ae 100644
--- a/7_hardware-compatibility/7_5_cameras.md
+++ b/7_hardware-compatibility/7_5_cameras.md
@@ -138,7 +138,11 @@
 implementation MUST support conversion to YV12.)
 *   [C-0-4] MUST support the `android.hardware.ImageFormat.YUV_420_888` and
 `android.hardware.ImageFormat.JPEG` formats as outputs through the
-`android.media.ImageReader` API for `android.hardware.camera2`.
+`android.media.ImageReader` API for `android.hardware.camera2` devices that
+advertise [`REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE`](
+https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE)
+ capability in [`android.request.availableCapabilities`](
+ https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES).
 *   [C-0-5] MUST still implement the full [Camera API](
 http://developer.android.com/reference/android/hardware/Camera.html)
 included in the Android SDK documentation, regardless of whether the device
diff --git a/7_hardware-compatibility/7_6_memory-and-storage.md b/7_hardware-compatibility/7_6_memory-and-storage.md
index fa5998d..8af504f 100644
--- a/7_hardware-compatibility/7_6_memory-and-storage.md
+++ b/7_hardware-compatibility/7_6_memory-and-storage.md
@@ -10,6 +10,97 @@
     downloading individual files of at least 100MB in size to the default
     “cache” location.
 
+Television device implementations:
+
+*   [T-0-1] MUST have at least 4GB of non-volatile storage available for
+    application private data (a.k.a. "/data" partition)
+
+Automotive device implementations:
+
+*   [A-0-1] MUST have at least 4GB of non-volatile storage available for
+    application private data (a.k.a. "/data" partition)
+
+Watch device implementations:
+
+*   [W-0-1] MUST have at least 1GB of non-volatile storage available for
+    application private data (a.k.a. "/data" partition)
+*   [W-0-2] MUST have at least 416MB memory available to the kernel and
+    userspace.
+
+Handheld device implementations:
+
+*   [H-0-1] MUST have at least 4GB of non-volatile storage available for
+    application private data (a.k.a. "/data" partition)
+*   [H-0-2] MUST return “true” for `ActivityManager.isLowRamDevice()` when there
+    is less than 1GB of memory available to the kernel and userspace.
+
+
+If Handheld device implementations are 32-bit:
+
+*   [H-1-1] The memory available to the kernel and userspace MUST
+be at least: 512MB if any of the following densities are used:
+
+   *   280dpi or lower on small/normal screens
+   *   ldpi or lower on extra large screens
+   *   mdpi or lower on large screens
+
+*   [H-2-1] The memory available to the kernel and userspace MUST
+be at least: 608MB if any of the following densities are used:
+
+   *   xhdpi or higher on small/normal screens
+   *   hdpi or higher on large screens
+   *   mdpi or higher on extra large screens
+
+*   [H-3-1] The memory available to the kernel and userspace MUST
+be at least: 896MB if any of the following densities are used:
+
+   *   400dpi or higher on small/normal screens
+   *   xhdpi or higher on large screens
+   *   tvdpi or higher on extra large screens
+
+*    [H-4-1] The memory available to the kernel and userspace MUST
+be at least: 1344MB if any of the following densities are used:
+
+   *   560dpi or higher on small/normal screens
+   *   400dpi or higher on large screens
+   *   xhdpi or higher on extra large screens
+
+If Handheld device implementations are 64-bit:
+
+*   [H-5-1] The memory available to the kernel and userspace MUST
+be at least: 816MB if any of the following densities are used:
+
+   *   280dpi or lower on small/normal screens
+   *   ldpi or lower on extra large screens
+   *   mdpi or lower on large screens
+
+
+*   [H-6-1] The memory available to the kernel and userspace MUST
+be at least: 944MB if any of the following densities are used:
+
+   *   xhdpi or higher on small/normal screens
+   *   hdpi or higher on large screens
+   *   mdpi or higher on extra large screens
+
+*   [H-7-1] The memory available to the kernel and userspace MUST
+be at least: 1280MB if any of the following densities are used:
+
+   *  400dpi or higher on small/normal screens
+   *  xhdpi or higher on large screens
+   *  tvdpi or higher on extra large screens
+
+*    [H-8-1] The memory available to the kernel and userspace MUST
+be at least: 1824MB if any of the following densities are used:
+
+   *   560dpi or higher on small/normal screens
+   *   400dpi or higher on large screens
+   *   xhdpi or higher on extra large screens
+
+Note that the "memory available to the kernel and userspace" above refers to the
+memory space provided in addition to any memory already dedicated to hardware
+components such as radio, video, and so on that are not under the kernel’s
+control on device implementations.
+
 ### 7.6.2\. Application Shared Storage
 
 Device implementations:
diff --git a/7_hardware-compatibility/7_7_usb.md b/7_hardware-compatibility/7_7_usb.md
index 20c1be6..27d10ef 100644
--- a/7_hardware-compatibility/7_7_usb.md
+++ b/7_hardware-compatibility/7_7_usb.md
@@ -6,6 +6,11 @@
 
 ### 7.7.1\. USB peripheral mode
 
+If handheld device implementations include a USB port supporting peripheral
+mode, they:
+
+*    [H-1-1] MUST implement the Android Open Accessory (AOA) API.
+
 If device implementations include a USB port supporting peripheral mode:
 
 *    [C-1-1] The port MUST be connectable to a USB host that has a standard
@@ -63,12 +68,12 @@
 [`android.hardware.usb.host`](http://developer.android.com/guide/topics/connectivity/usb/host.html).
 *   [C-1-2] MUST implement support to connect standard USB peripherals,
 in other words, they MUST either:
-     *   Have an on-device type C port or ship with cable(s) adapting an on-device
-     proprietary port to a standard USB type-C port (USB Type-C device).
-     *   Have an on-device type A or ship with cable(s) adapting an on-device
-     proprietary port to a standard USB type-A port.
-     *   Have an on-device micro-AB port, which SHOULD ship with a cable adapting
-     to a standard type-A port.
+   *   Have an on-device type C port or ship with cable(s) adapting an on-device
+   proprietary port to a standard USB type-C port (USB Type-C device).
+   *   Have an on-device type A or ship with cable(s) adapting an on-device
+   proprietary port to a standard USB type-A port.
+   *   Have an on-device micro-AB port, which SHOULD ship with a cable adapting
+   to a standard type-A port.
 *   [C-1-3] MUST NOT ship with an adapter converting from USB type A or
 micro-AB ports to a type-C port (receptacle).
 *   [SR] STRONGLY RECOMMENDED to implement the [USB audio class](
@@ -94,10 +99,10 @@
 and the [Voice Command Usage Request](http://www.usb.org/developers/hidpage/Voice_Command_Usage.pdf)
 to the [`KeyEvent`](https://developer.android.com/reference/android/view/KeyEvent.html)
 constants as below:
-       *   Usage Page (0xC) Usage ID (0x0CD): `KEYCODE_MEDIA_PLAY_PAUSE`
-       *   Usage Page (0xC) Usage ID (0x0E9): `KEYCODE_VOLUME_UP`
-       *   Usage Page (0xC) Usage ID (0x0EA): `KEYCODE_VOLUME_DOWN`
-       *   Usage Page (0xC) Usage ID (0x0CF): `KEYCODE_VOICE_ASSIST`
+        *   Usage Page (0xC) Usage ID (0x0CD): `KEYCODE_MEDIA_PLAY_PAUSE`
+        *   Usage Page (0xC) Usage ID (0x0E9): `KEYCODE_VOLUME_UP`
+        *   Usage Page (0xC) Usage ID (0x0EA): `KEYCODE_VOLUME_DOWN`
+        *   Usage Page (0xC) Usage ID (0x0CF): `KEYCODE_VOICE_ASSIST`
 
 
 If device implementations include a USB port supporting host mode and
@@ -121,4 +126,4 @@
 http://www.usb.org/developers/docs/).
 *   SHOULD implement the Try.\* model that is most appropriate for the
 device form factor. For example a handheld device SHOULD implement the
-Try.SNK model.
+Try.SNK model.
\ No newline at end of file
diff --git a/7_hardware-compatibility/7_8_audio.md b/7_hardware-compatibility/7_8_audio.md
index 44b2e39..c9944f7 100644
--- a/7_hardware-compatibility/7_8_audio.md
+++ b/7_hardware-compatibility/7_8_audio.md
@@ -2,6 +2,11 @@
 
 ### 7.8.1\. Microphone
 
+
+*    [H-0-1] Handheld device implementations MUST include a microphone.
+*    [W-0-1] Watch device implementations MUST include a microphone.
+*    [A-0-1] Automotive device implementations MUST include a microphone.
+
 If device implementations include a microphone, they:
 
 *   [C-1-1] MUST report the `android.hardware.microphone` feature constant.
@@ -39,6 +44,13 @@
 *   [C-2-1] MUST NOT report the `android.hardware.audio output` feature.
 *   [C-2-2] MUST implement the Audio Output related APIs as no-ops at least.
 
+*   [H-0-1] Handheld device implementations MUST have an audio output and
+declare `android.hardware.audio.output`.
+*   [T-0-1] Television device implementations MUST have an audio output and
+declare `android.hardware.audio.output`.
+*   [A-0-1] Automotive device implementations MUST have an audio output and
+declare `android.hardware.audio.output`.
+*   Watch device implementations MAY but SHOULD NOT have audio output.
 
 For the purposes of this section, an "output port" is a
 [physical interface](https://en.wikipedia.org/wiki/Computer_port_%28hardware%29)
diff --git a/7_hardware-compatibility/7_9_virtual-reality.md b/7_hardware-compatibility/7_9_virtual-reality.md
index e51cdba..44df56a 100644
--- a/7_hardware-compatibility/7_9_virtual-reality.md
+++ b/7_hardware-compatibility/7_9_virtual-reality.md
@@ -12,8 +12,26 @@
 a feature which handles stereoscopic rendering of notifications and disables
 monocular system UI components while a VR application has user focus.
 
+If Handheld device implementations include support for the VR mode, they:
+
+*   [H-1-1] MUST declare the `android.software.vr.mode` feature.
+
+If device implementations declare `android.software.vr.mode` feature, they:
+
+*   [H-2-1] MUST include an application implementing
+`android.service.vr.VrListenerService`
+that can be enabled by VR applications via
+`android.app.Activity#setVrModeEnabled`.
+
 ### 7.9.2\. Virtual Reality High Performance
 
+
+If Handheld device implementations are capable of meeting all the requirements
+to declare the `android.hardware.vr.high_performance` feature flag, they:
+
+*   [H-1-1] MUST declare the `android.hardware.vr.high_performance`
+feature flag.
+
 If device implementations identify the support of high performance VR
 for longer user periods through the `android.hardware.vr.high_performance`
 feature flag, they:
diff --git a/8_performance-and-power/8_1_user-experience-consistency.md b/8_performance-and-power/8_1_user-experience-consistency.md
index 85f8a14..9728f44 100644
--- a/8_performance-and-power/8_1_user-experience-consistency.md
+++ b/8_performance-and-power/8_1_user-experience-consistency.md
@@ -6,3 +6,15 @@
 MAY have measurable requirements for the user interface latency and task
 switching as described in [section 2](#2_device-types).
 
+   *   [H-0-1] **Consistent frame latency**. Inconsistent frame latency or a
+delay to render frames MUST NOT happen more often than 5 frames in a second,
+and SHOULD be below 1 frames in a second.
+   *   [H-0-2] **User interface latency**. Device implementations MUST ensure
+low latency user experience by scrolling a list of 10K list entries as defined
+by the Android Compatibility Test Suite (CTS) in less than 36 secs.
+   *   [H-0-3] **Task switching**. When multiple applications have been
+launched, re-launching an already-running application after it has been
+launched MUST take less than 1 second.
+   *   [T-0-1] **Consistent frame latency**. Inconsistent frame latency or a
+delay to render frames MUST NOT happen more often than 5 frames in a second,
+and SHOULD be below 1 frames in a second.
diff --git a/8_performance-and-power/8_2_file-io-access-performance.md b/8_performance-and-power/8_2_file-io-access-performance.md
index c667ec5..7508aff 100644
--- a/8_performance-and-power/8_2_file-io-access-performance.md
+++ b/8_performance-and-power/8_2_file-io-access-performance.md
@@ -7,6 +7,7 @@
 described in [section 2](#2_device-type) for the following read
 and write operations:
 
+
 *    **Sequential write performance**. Measured by writing a 256MB file using
 10MB write buffer.
 *    **Random write performance**. Measured by writing a 256MB file using 4KB
@@ -16,3 +17,16 @@
 *    **Random read performance**. Measured by reading a 256MB file using 4KB
 write buffer.
 
+Handheld device implementations:
+
+   *   [H-0-1] MUST ensure a sequential write performance of at least 5MB/s.
+   *   [H-0-2] MUST ensure a random write performance of at least 0.5MB/s.
+   *   [H-0-3] MUST ensure a sequential read performance of at least 15MB/s.
+   *   [H-0-4] MUST ensure a random read performance of at least 3.5MB/s.
+
+Television device implementations:
+
+   *   [T-0-1] MUST ensure a sequential write performance of at least 5MB/s.
+   *   [T-0-2] MUST ensure a random write performance of at least 0.5MB/s.
+   *   [T-0-3] MUST ensure a sequential read performance of at least 15MB/s.
+   *   [T-0-4] MUST ensure a random read performance of at least 3.5MB/s.
\ No newline at end of file
diff --git a/8_performance-and-power/8_3_power-saving-modes.md b/8_performance-and-power/8_3_power-saving-modes.md
index 6268303..a6a5bf3 100644
--- a/8_performance-and-power/8_3_power-saving-modes.md
+++ b/8_performance-and-power/8_3_power-saving-modes.md
@@ -2,6 +2,25 @@
 
 Android includes App Standby and Doze power-saving modes to optimize battery
 usage.
+
+*   [H-0-1] All Apps exempted from App Standby and Doze power-saving modes
+MUST be made visible to the end user.
+*   [H-0-2] The triggering, maintenance, wakeup algorithms and the use of
+global system settings of App Standby and Doze power-saving modes MUST not
+deviate from the Android Open Source Project.
+
+*   [T-0-1] All Apps exempted from App Standby and Doze power-saving modes
+MUST be made visible to the end user.
+*   [T-0-2] The triggering, maintenance, wakeup algorithms and the use of
+global system settings of App Standby and Doze power-saving modes MUST not
+deviate from the Android Open Source Project.
+
+*   [A-0-1] All Apps exempted from App Standby and Doze power-saving modes
+MUST be made visible to the end user.
+*   [A-0-2] The triggering, maintenance, wakeup algorithms and the use of
+global system settings of App Standby and Doze power-saving modes MUST not
+deviate from the Android Open Source Project.
+
 *   [SR] All Apps exempted from these modes are STRONGLY RECOMMENDED to be made
 visible to the end user.
 *   [SR] The triggering, maintenance, wakeup algorithms and the use of
diff --git a/8_performance-and-power/8_4_power-consumption-accounting.md b/8_performance-and-power/8_4_power-consumption-accounting.md
index 0e688fe..0628b10 100644
--- a/8_performance-and-power/8_4_power-consumption-accounting.md
+++ b/8_performance-and-power/8_4_power-consumption-accounting.md
@@ -4,6 +4,62 @@
 app developer both the incentives and the tools to optimize the power usage
 pattern of the application.
 
+Handheld device implementations:
+
+*    [H-0-1] MUST provide a per-component power profile that defines the
+[current consumption value](
+http://source.android.com/devices/tech/power/values.html)
+for each hardware component and the approximate battery drain caused by the
+components over time as documented in the Android Open Source Project site.
+*    [H-0-2] MUST report all power consumption values in milliampere
+hours (mAh).
+*    [H-0-3] MUST report CPU power consumption per each process's UID.
+The Android Open Source Project meets the requirement through the
+`uid_cputime` kernel module implementation.
+*    SHOULD be attributed to the hardware component itself if unable to
+attribute hardware component power usage to an application.
+*   [H-0-4] MUST make this power usage available via the
+[`adb shell dumpsys batterystats`](
+http://source.android.com/devices/tech/power/batterystats.html)
+shell command to the app developer.
+
+Television device implementations:
+
+*    [T-0-1] MUST provide a per-component power profile that defines the
+[current consumption value](
+http://source.android.com/devices/tech/power/values.html)
+for each hardware component and the approximate battery drain caused by the
+components over time as documented in the Android Open Source Project site.
+*    [T-0-2] MUST report all power consumption values in milliampere
+hours (mAh).
+*    [T-0-3] MUST report CPU power consumption per each process's UID.
+The Android Open Source Project meets the requirement through the
+`uid_cputime` kernel module implementation.
+*    SHOULD be attributed to the hardware component itself if unable to
+attribute hardware component power usage to an application.
+*   [T-0-4] MUST make this power usage available via the
+[`adb shell dumpsys batterystats`](
+http://source.android.com/devices/tech/power/batterystats.html)
+shell command to the app developer.
+
+Automotive device implementations:
+
+*    [A-0-1] MUST provide a per-component power profile that defines the
+[current consumption value](
+http://source.android.com/devices/tech/power/values.html)
+for each hardware component and the approximate battery drain caused by the
+components over time as documented in the Android Open Source Project site.
+*    [A-0-2] MUST report all power consumption values in milliampere
+hours (mAh).
+*    [A-0-3] MUST report CPU power consumption per each process's UID.
+The Android Open Source Project meets the requirement through the
+`uid_cputime` kernel module implementation.
+*    SHOULD be attributed to the hardware component itself if unable to
+attribute hardware component power usage to an application.
+*   [A-0-4] MUST make this power usage available via the
+[`adb shell dumpsys batterystats`](
+http://source.android.com/devices/tech/power/batterystats.html)
+shell command to the app developer.
 
 Device implementations:
 
@@ -25,4 +81,9 @@
 attribute hardware component power usage to an application.
 
 
+If Handheld device implementations include a screen or video output, they:
+
+*   [H-1-1] MUST honor the [`android.intent.action.POWER_USAGE_SUMMARY`](
+http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY)
+intent and display a settings menu that shows this power usage.
 
diff --git a/9_security-model/9_14_automotive-system-isolation.md b/9_security-model/9_14_automotive-system-isolation.md
index 046ebd4..a1d5276 100644
--- a/9_security-model/9_14_automotive-system-isolation.md
+++ b/9_security-model/9_14_automotive-system-isolation.md
@@ -6,5 +6,11 @@
 
 The data exchange can be secured by implementing security features below the
 Android framework layers to prevent malicious or unintentional interaction with
-these subsystems.
+these subsystems. Automotive device implementations:
 
+*    [A-0-1] MUST gatekeep messages from Android framework vehicle subsystems,
+e.g., whitelisting permitted message types and message sources.
+*    [A-0-2] MUST watchdog against denial of service attacks from the Android
+framework or third-party apps. This guards against malicious software flooding
+the vehicle network with traffic, which may lead to malfunctioning vehicle
+subsystems.
\ No newline at end of file
diff --git a/9_security-model/9_1_permissions.md b/9_security-model/9_1_permissions.md
index 525e9d5..c46365b 100644
--- a/9_security-model/9_1_permissions.md
+++ b/9_security-model/9_1_permissions.md
@@ -38,6 +38,14 @@
    *   the runtime permissions are associated with an intent pattern
        for which the preinstalled application is set as the default handler
 
+Handheld device implementations:
+
+*   [H-0-1] MUST allow third-party apps to access the usage statistics via the
+    `android.permission.PACKAGE_USAGE_STATS` permission and provide a
+    user-accessible mechanism to grant or revoke access to such apps in response
+    to the [`android.settings.ACTION_USAGE_ACCESS_SETTINGS`](
+    https://developer.android.com/reference/android/provider/Settings.html#ACTION&lowbar;USAGE&lowbar;ACCESS&lowbar;SETTINGS)
+    intent.
 
 If device implementations include a pre-installed app or wish to allow
 third-party apps to access the usage statistics, they:
@@ -56,4 +64,4 @@
     [`android.settings.ACTION_USAGE_ACCESS_SETTINGS`](
     https://developer.android.com/reference/android/provider/Settings.html#ACTION&lowbar;USAGE&lowbar;ACCESS&lowbar;SETTINGS)
     intent pattern but MUST implement it as a no-op, that is to have an
-    equivalent behavior as when the user is declined for access.
+    equivalent behavior as when the user is declined for access.
\ No newline at end of file
diff --git a/9_security-model/9_5_multi-user-support.md b/9_security-model/9_5_multi-user-support.md
index d266b0c..4f201e5 100644
--- a/9_security-model/9_5_multi-user-support.md
+++ b/9_security-model/9_5_multi-user-support.md
@@ -9,6 +9,11 @@
 http://developer.android.com/reference/android/os/Environment.html)
 for primary external storage.
 
+If Automotive device implementations include multiple users, they:
+
+*   [A-1-1] MUST include a guest account that allows all functions provided
+by the vehicle system without requiring a user to log in.
+
 If device implementations include multiple users, they:
 
 *   [C-1-1] MUST meet the following requirements related to
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..751e37c
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,5 @@
+gdimino@google.com
+vikasmarwaha@google.com
+unsuk@google.com
+claym@google.com
+sachiyo@google.com
diff --git a/source/android-cdd-cover.html b/source/android-cdd-cover.html
index fbc7256..946cda0 100644
--- a/source/android-cdd-cover.html
+++ b/source/android-cdd-cover.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <head>
-<title>Android 7.0 Compatibility Definition</title>
+<title>Android 8.0 Compatibility Definition</title>
 <link rel="stylesheet" type="text/css" href="android-cdd-cover.css"/>
 </head>
 
@@ -27,7 +27,6 @@
 <p class="subtitle">Android 8.0</p>
 <p class="cover-text">Last updated: September 1, 2017</p>
 <p class="cover-text">Copyright &copy; 2017, Google Inc. All rights reserved.</p>
-<p class="cover-text"><a href="mailto:compatibility@android.com">compatibility@android.com</a></p>
 </td>
 </tr>