diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index 51970c9..ad7b7d4 100644
--- a/src/compatibility/android-cdd.html
+++ b/src/compatibility/android-cdd.html
@@ -342,8 +342,6 @@
 
 <p class="toc_h1"><a href="#13_contact_us">13. Contact Us</a></p>
 
-<p class="toc_h1"><a href="#14_resources">14. Resources</a></p>
-
 </div>
 
 </div>
@@ -355,79 +353,92 @@
 <h1 id="1_introduction">1. Introduction</h1>
 
 
-<p>This document enumerates the requirements that must be met in order for devices
-to be compatible with Android ANDROID_VERSION.</p>
+<p>This document enumerates the requirements that must be met in order for
+devices to be compatible with Android ANDROID_VERSION.</p>
 
-<p>The use of &ldquo;MUST&rdquo;, &ldquo;MUST NOT&rdquo;, &ldquo;REQUIRED&rdquo;, &ldquo;SHALL&rdquo;, &ldquo;SHALL NOT&rdquo;, &ldquo;SHOULD&rdquo;, &ldquo;SHOULD NOT&rdquo;, &ldquo;RECOMMENDED&rdquo;, &ldquo;MAY&rdquo;, and &ldquo;OPTIONAL&rdquo; is per the IETF standard
-defined in RFC2119 [<a href="http://www.ietf.org/rfc/rfc2119.txt">Resources, 1</a>].</p>
+<p>The use of &ldquo;MUST&rdquo;, &ldquo;MUST NOT&rdquo;,
+&ldquo;REQUIRED&rdquo;, &ldquo;SHALL&rdquo;, &ldquo;SHALL NOT&rdquo;,
+&ldquo;SHOULD&rdquo;, &ldquo;SHOULD NOT&rdquo;, &ldquo;RECOMMENDED&rdquo;,
+&ldquo;MAY&rdquo;, and &ldquo;OPTIONAL&rdquo; is per the IETF standard
+defined in <a href="http://www.ietf.org/rfc/rfc2119.txt">RFC2119</a>.</p>
 
-<p>As used in this document, a &ldquo;device implementer&rdquo; or &ldquo;implementer&rdquo; is a person
-or organization developing a hardware/software solution running Android ANDROID_VERSION. A
-&ldquo;device implementation&rdquo; or &ldquo;implementation is the hardware/software solution
+<p>As used in this document, a &ldquo;device implementer&rdquo; or
+&ldquo;implementer&rdquo; is a person or organization developing a
+hardware/software solution running Android ANDROID_VERSION. A &ldquo;device
+implementation&rdquo; or &ldquo;implementation is the hardware/software solution
 so developed.</p>
 
-<p>To be considered compatible with Android ANDROID_VERSION, device implementations MUST meet
-the requirements presented in this Compatibility Definition, including any
-documents incorporated via reference.</p>
+<p>To be considered compatible with Android ANDROID_VERSION, device
+implementations MUST meet the requirements presented in this Compatibility
+Definition, including any documents incorporated via reference.</p>
 
-<p>Where this definition or the software tests described in <a href="#10_software_compatibility_testing">section 10</a> is silent, ambiguous, or incomplete, it is the responsibility of the device
+<p>Where this definition or the software tests described in
+<a href="#10_software_compatibility_testing">section 10</a> is silent,
+ambiguous, or incomplete, it is the responsibility of the device
 implementer to ensure compatibility with existing implementations.</p>
 
-<p>For this reason, the Android Open Source Project [<a href="http://source.android.com/">Resources, 2</a>] is both the reference and preferred implementation of Android. Device
-implementers are STRONGLY RECOMMENDED to base their implementations to the
-greatest extent possible on the &ldquo;upstream&rdquo; source code available from the
-Android Open Source Project. While some components can hypothetically be
-replaced with alternate implementations, it is STRONGLY RECOMMENDED to not follow this practice,
-as passing the software tests will become substantially more difficult. It is
-the implementer&rsquo;s responsibility to ensure full behavioral compatibility with
-the standard Android implementation, including and beyond the Compatibility
-Test Suite. Finally, note that certain component substitutions and
-modifications are explicitly forbidden by this document.</p>
+<p>For this reason, the <a href="http://source.android.com/">Android Open Source
+Project</a> is both the reference and preferred implementation of Android.
+Device implementers are STRONGLY RECOMMENDED to base their implementations to
+the greatest extent possible on the &ldquo;upstream&rdquo; source code available
+from the Android Open Source Project. While some components can hypothetically
+be replaced with alternate implementations, it is STRONGLY RECOMMENDED to not
+follow this practice, as passing the software tests will become substantially
+more difficult. It is the implementer&rsquo;s responsibility to ensure full
+behavioral compatibility with the standard Android implementation, including and
+beyond the Compatibility Test Suite. Finally, note that certain component
+substitutions and modifications are explicitly forbidden by this document.</p>
 
-<p>Many of the resources listed in <a href="#14_resources">section 14</a> are derived directly or indirectly from the Android SDK, and will be
-functionally identical to the information in that SDK&rsquo;s documentation. For any
-case where this Compatibility Definition or the Compatibility Test Suite
-disagrees with the SDK documentation, the SDK documentation is considered
-authoritative. Any technical details provided in the references included in <a href="#14_resources">section 14</a> are considered by inclusion to be part of this Compatibility Definition. </p>
+<p>Many of the resources linked to in this document are derived directly or
+indirectly from the Android SDK and will be functionally identical to the
+information in that SDK&rsquo;s documentation. In any cases where this
+Compatibility Definition or the Compatibility Test Suite disagrees with the
+SDK documentation, the SDK documentation is considered authoritative. Any
+technical details provided in the linked resources throughout this document are
+considered by inclusion to be part of this Compatibility Definition.</p>
 
 <h1 id="2_device_types">2. Device Types</h1>
 
 
-<p>While the Android Open Source Project has been used in the implementation of a
-variety of device types and form factors, many aspects of the architecture and
+<p>While the Android Open Source Project has been used in the implementation of
+a variety of device types and form factors, many aspects of the architecture and
 compatibility requirements were optimized for handheld devices. Starting from
 Android 5.0, the Android Open Source Project aims to embrace a wider variety of
 device types as described in this section.</p>
 
-<p><strong>Android Handheld device</strong> refers to an Android device implementation that is typically used by holding
-it in the hand, such as mp3 players, phones, and tablets. Android Handheld
-device implementations:</p>
+<p><strong>Android Handheld device</strong> refers to an Android device
+implementation that is typically used by holding it in the hand, such as mp3
+players, phones, and tablets. Android Handheld device implementations:</p>
 
 <ul>
   <li>MUST have a touchscreen embedded in the device.</li>
   <li>MUST have a power source that provides mobility, such as a battery.</li>
 </ul>
 
-<p><strong>Android Television device</strong> refers to an Android device implementation that is an entertainment interface
-for consuming digital media, movies, games, apps, and/or live TV for users
-sitting about ten feet away (a &ldquo;lean back&rdquo; or &ldquo;10-foot user interface&rdquo;).
-Android Television devices:</p>
+<p><strong>Android Television device</strong> refers to an Android device
+implementation that is an entertainment interface for consuming digital media,
+movies, games, apps, and/or live TV for users sitting about ten feet away (a
+&ldquo;lean back&rdquo; or &ldquo;10-foot user interface&rdquo;). Android
+Television devices:</p>
 
 <ul>
-  <li>MUST have an embedded screen OR include a video output port, such as VGA, HDMI,
-or a wireless port for display.</li>
-  <li>MUST declare the features android.software.leanback and
-android.hardware.type.television [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK">Resources, 3</a>].</li>
+  <li>MUST have an embedded screen OR include a video output port, such as VGA,
+  HDMI, or a wireless port for display.</li>
+  <li>MUST declare the features
+  <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK">android.software.leanback</a>
+  and android.hardware.type.television.</li>
 </ul>
 
-<p><strong>Android Watch device</strong> refers to an Android device implementation intended to be worn on the body,
-perhaps on the wrist, and:</p>
+<p><strong>Android Watch device</strong> refers to an Android device
+implementation intended to be worn on the body, perhaps on the wrist, and:</p>
 
 <ul>
-  <li>MUST have a screen with the physical diagonal length in the range from 1.1 to
-2.5 inches.</li>
+  <li>MUST have a screen with the physical diagonal length in the range from
+  1.1 to 2.5 inches.</li>
   <li>MUST declare the feature android.hardware.type.watch.</li>
-  <li>MUST support uiMode = UI_MODE_TYPE_WATCH [<a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH">Resources, 4</a>].</li>
+  <li>MUST support uiMode =
+  <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH">UI_MODE_TYPE_WATCH</a>.
+  </li>
 </ul>
 
 <p><strong>Android Automotive implementation</strong> refers to a vehicle head
@@ -436,23 +447,22 @@
 
 <ul>
   <li>MUST declare the feature android.hardware.type.automotive.</li>
-  <li>MUST support
-uiMode = UI_MODE_TYPE_CAR [<a
-href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR">Resources,
-    5</a>].</li>
+  <li>MUST support uiMode =
+  <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR">UI_MODE_TYPE_CAR</a>.
+  </li>
 </ul>
 
-<p>All Android device implementations that do not fit into any of the above device
-types still MUST meet all requirements in this document to be Android ANDROID_VERSION
-compatible, unless the requirement is explicitly described to be only
-applicable to a specific Android device type from above.</p>
+<p>All Android device implementations that do not fit into any of the above
+device types still MUST meet all requirements in this document to be Android
+ANDROID_VERSION compatible, unless the requirement is explicitly described to be
+only applicable to a specific Android device type from above.</p>
 
 <h2 id="2_1_device_configurations">2.1 Device Configurations</h2>
 
 
 <p>This is a summary of major differences in hardware configuration by device
-type. (Empty cells denote a &ldquo;MAY&rdquo;). Not all configurations are covered in this
-table; see relevant hardware sections for more detail.</p>
+type. (Empty cells denote a &ldquo;MAY&rdquo;). Not all configurations are
+covered in this table; see relevant hardware sections for more detail.</p>
 <table>
  <tr>
     <th>Category</th>
@@ -581,36 +591,47 @@
 the set of Android platform interfaces exposed to applications running in the
 managed runtime environment. Device implementations MUST provide complete
 implementations, including all documented behaviors, of any documented API
-exposed by the Android SDK [<a href="http://developer.android.com/reference/packages.html">Resources, 6</a>] or any API decorated with the &ldquo;@SystemApi&rdquo; marker in the upstream Android
-source code. </p>
+exposed by the
+<a href="http://developer.android.com/reference/packages.html">Android SDK</a>
+or any API decorated with the &ldquo;@SystemApi&rdquo; marker in the upstream
+Android source code.</p>
 
-<p>Device implementations MUST NOT omit any managed APIs, alter API interfaces or
-signatures, deviate from the documented behavior, or include no-ops, except
+<p>Device implementations MUST NOT omit any managed APIs, alter API interfaces
+or signatures, deviate from the documented behavior, or include no-ops, except
 where specifically allowed by this Compatibility Definition.</p>
 
-<p>This Compatibility Definition permits some types of hardware for which Android
-includes APIs to be omitted by device implementations. In such cases, the APIs
-MUST still be present and behave in a reasonable way. See <a href="#7_hardware_compatibility">section 7</a> for specific requirements for this scenario.</p>
+<p>This Compatibility Definition permits some types of hardware for which
+Android includes APIs to be omitted by device implementations. In such cases,
+the APIs MUST still be present and behave in a reasonable way. See
+<a href="#7_hardware_compatibility">section 7</a> for specific requirements for
+this scenario.</p>
 
 <h2 id="3_2_soft_api_compatibility">3.2. Soft API Compatibility</h2>
 
 
-<p>In addition to the managed APIs from <a href="#3_1_managed_api_compatibility">section 3.1</a>, Android also includes a significant runtime-only &ldquo;soft&rdquo; API, in the form of
-such things as intents, permissions, and similar aspects of Android
-applications that cannot be enforced at application compile time.</p>
+<p>In addition to the managed APIs from
+<a href="#3_1_managed_api_compatibility">section 3.1</a>, Android also includes
+a significant runtime-only &ldquo;soft&rdquo; API, in the form of such things as
+intents, permissions, and similar aspects of Android applications that cannot be
+enforced at application compile time.</p>
 
 <h3 id="3_2_1_permissions">3.2.1. Permissions</h3>
 
 
 <p>Device implementers MUST support and enforce all permission constants as
-documented by the Permission reference page [<a href="http://developer.android.com/reference/android/Manifest.permission.html">Resources, 7</a>]. Note that <a href="#9_security_model_compatibility">section 9</a> lists additional requirements related to the Android security model.</p>
+documented by the
+<a href="http://developer.android.com/reference/android/Manifest.permission.html">Permission
+reference page</a>. Note that <a href="#9_security_model_compatibility">section
+9</a> lists additional requirements related to the Android security model.</p>
 
 <h3 id="3_2_2_build_parameters">3.2.2. Build Parameters</h3>
 
 
-<p>The Android APIs include a number of constants on the android.os.Build class [<a href="http://developer.android.com/reference/android/os/Build.html">Resources, 8</a>] that are intended to describe the current device. To provide consistent,
-meaningful values across device implementations, the table below includes
-additional restrictions on the formats of these values to which device
+<p>The Android APIs include a number of constants on the
+<a href="http://developer.android.com/reference/android/os/Build.html">android.os.Build
+class</a> that are intended to describe the current device. To provide
+consistent, meaningful values across device implementations, the table below
+includes additional restrictions on the formats of these values to which device
 implementations MUST conform.</p>
 <table>
  <tr>
@@ -620,143 +641,157 @@
  <tr>
     <td>VERSION.RELEASE</td>
     <td>The version of the currently-executing Android system, in human-readable
-format. This field MUST have one of the string values defined in [<a href="http://source.android.com/compatibility/ANDROID_VERSION/versions.html">Resources, 9</a>].</td>
+    format. This field MUST have one of the string values defined in
+    <a href="http://source.android.com/compatibility/ANDROID_VERSION/versions.html">ANDROID_VERSION</a>.</td>
  </tr>
  <tr>
     <td>VERSION.SDK</td>
-    <td>The version of the currently-executing Android system, in a format accessible
-to third-party application code. For Android ANDROID_VERSION, this field MUST have the
-integer value ANDROID_VERSION_INT.</td>
+    <td>The version of the currently-executing Android system, in a format
+    accessible to third-party application code. For Android ANDROID_VERSION,
+    this field MUST have the integer value ANDROID_VERSION_INT.</td>
  </tr>
  <tr>
     <td>VERSION.SDK_INT</td>
-    <td>The version of the currently-executing Android system, in a format accessible
-to third-party application code. For Android ANDROID_VERSION, this field MUST have the
-integer value ANDROID_VERSION_INT.</td>
+    <td>The version of the currently-executing Android system, in a format
+    accessible to third-party application code. For Android ANDROID_VERSION,
+    this field MUST have the integer value ANDROID_VERSION_INT.</td>
  </tr>
  <tr>
     <td>VERSION.INCREMENTAL</td>
-    <td>A value chosen by the device implementer designating the specific build of the
-currently-executing Android system, in human-readable format. This value MUST
-NOT be reused for different builds made available to end users. A typical use
-of this field is to indicate which build number or source-control change
-identifier was used to generate the build. There are no requirements on the
-specific format of this field, except that it MUST NOT be null or the empty
-string ("").</td>
+    <td>A value chosen by the device implementer designating the specific build
+    of the currently-executing Android system, in human-readable format. This
+    value MUST NOT be reused for different builds made available to end users. A
+    typical use of this field is to indicate which build number or
+    source-control change identifier was used to generate the build. There are
+    no requirements on the specific format of this field, except that it MUST
+    NOT be null or the empty string ("").</td>
  </tr>
  <tr>
     <td>BOARD</td>
-    <td>A value chosen by the device implementer identifying the specific internal
-hardware used by the device, in human-readable format. A possible use of this
-field is to indicate the specific revision of the board powering the device.
-The value of this field MUST be encodable as 7-bit ASCII and match the regular
-expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
+    <td>A value chosen by the device implementer identifying the specific
+    internal hardware used by the device, in human-readable format. A possible
+    use of this field is to indicate the specific revision of the board powering
+    the device. The value of this field MUST be encodable as 7-bit ASCII and
+    match the regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
  </tr>
  <tr>
     <td>BRAND</td>
-    <td>A value reflecting the brand name associated with the device as known to the
-end users. MUST be in human-readable format and SHOULD represent the
-manufacturer of the device or the company brand under which the device is
-marketed. The value of this field MUST be encodable as 7-bit ASCII and match
-the regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
+    <td>A value reflecting the brand name associated with the device as known to
+    the end users. MUST be in human-readable format and SHOULD represent the
+    manufacturer of the device or the company brand under which the device is
+    marketed. The value of this field MUST be encodable as 7-bit ASCII and match
+    the regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
  </tr>
  <tr>
     <td>SUPPORTED_ABIS</td>
-    <td>The name of the instruction set (CPU type + ABI convention) of native code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API Compatibility</a>.</td>
+    <td>The name of the instruction set (CPU type + ABI convention) of native
+    code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API
+    Compatibility</a>.</td>
  </tr>
  <tr>
     <td>SUPPORTED_32_BIT_ABIS</td>
-    <td>The name of the instruction set (CPU type + ABI convention) of native code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API Compatibility</a>.</td>
+    <td>The name of the instruction set (CPU type + ABI convention) of native
+    code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API
+    Compatibility</a>.</td>
  </tr>
  <tr>
     <td>SUPPORTED_64_BIT_ABIS</td>
-    <td>The name of the second instruction set (CPU type + ABI convention) of native
-code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API Compatibility</a>.</td>
+    <td>The name of the second instruction set (CPU type + ABI convention) of
+    native code. See <a href="#3_3_native_api_compatibility">section 3.3. Native
+    API Compatibility</a>.</td>
  </tr>
  <tr>
     <td>CPU_ABI</td>
-    <td>The name of the instruction set (CPU type + ABI convention) of native code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API Compatibility</a>.</td>
+    <td>The name of the instruction set (CPU type + ABI convention) of native
+    code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API
+    Compatibility</a>.</td>
  </tr>
  <tr>
     <td>CPU_ABI2</td>
-    <td>The name of the second instruction set (CPU type + ABI convention) of native
-code. See <a href="#3_3_native_api_compatibility">section 3.3. Native API Compatibility</a>.</td>
+    <td>The name of the second instruction set (CPU type + ABI convention) of
+    native code. See <a href="#3_3_native_api_compatibility">section 3.3. Native
+    API Compatibility</a>.</td>
  </tr>
  <tr>
     <td>DEVICE</td>
-    <td>A value chosen by the device implementer containing the development name or
-code name identifying the configuration of the hardware features and industrial
-design of the device. The value of this field MUST be encodable as 7-bit ASCII
-and match the regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
+    <td>A value chosen by the device implementer containing the development name
+    or code name identifying the configuration of the hardware features and
+    industrial design of the device. The value of this field MUST be encodable
+    as 7-bit ASCII and match the regular expression
+    &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
  </tr>
  <tr>
     <td>FINGERPRINT</td>
     <td>A string that uniquely identifies this build. It SHOULD be reasonably
-human-readable. It MUST follow this template:
-<p class="small">$(BRAND)/$(PRODUCT)/<br>
+    human-readable. It MUST follow this template:
+    <p class="small">$(BRAND)/$(PRODUCT)/<br>
 	&nbsp;&nbsp;&nbsp;&nbsp;$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)</p>
-<p>For example:</p>
-<p class="small">acme/myproduct/<br>
+	<p>For example:</p>
+	<p class="small">acme/myproduct/<br>
 	&nbsp;&nbsp;&nbsp;&nbsp;mydevice:ANDROID_VERSION/LMYXX/3359:userdebug/test-keys</p>
-<p>The fingerprint MUST NOT include whitespace characters. If other fields
-included in the template above have whitespace characters, they MUST be
-replaced in the build fingerprint with another character, such as the
-underscore ("_") character. The value of this field MUST be encodable as 7-bit
-ASCII.</p></td>
+	<p>The fingerprint MUST NOT include whitespace characters. If other fields
+	included in the template above have whitespace characters, they MUST be
+	replaced in the build fingerprint with another character, such as the
+	underscore ("_") character. The value of this field MUST be encodable as
+	7-bit ASCII.</p></td>
  </tr>
  <tr>
     <td>HARDWARE</td>
-    <td>The name of the hardware (from the kernel command line or /proc). It SHOULD be
-reasonably human-readable. The value of this field MUST be encodable as 7-bit
-ASCII and match the regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;. </td>
+    <td>The name of the hardware (from the kernel command line or /proc). It
+    SHOULD be reasonably human-readable. The value of this field MUST be
+    encodable as 7-bit ASCII and match the regular expression
+    &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
  </tr>
  <tr>
     <td>HOST</td>
     <td>A string that uniquely identifies the host the build was built on, in
-human-readable format. There are no requirements on the specific format of this
-field, except that it MUST NOT be null or the empty string ("").</td>
+    human-readable format. There are no requirements on the specific format of
+    this field, except that it MUST NOT be null or the empty string ("").</td>
  </tr>
  <tr>
     <td>ID</td>
-    <td>An identifier chosen by the device implementer to refer to a specific release,
-in human-readable format. This field can be the same as
-android.os.Build.VERSION.INCREMENTAL, but SHOULD be a value sufficiently
-meaningful for end users to distinguish between software builds. The value of
-this field MUST be encodable as 7-bit ASCII and match the regular expression &ldquo;^[a-zA-Z0-9._-]+$&rdquo;.</td>
+    <td>An identifier chosen by the device implementer to refer to a specific
+    release, in human-readable format. This field can be the same as
+    android.os.Build.VERSION.INCREMENTAL, but SHOULD be a value sufficiently
+    meaningful for end users to distinguish between software builds. The value
+    of this field MUST be encodable as 7-bit ASCII and match the regular
+    expression &ldquo;^[a-zA-Z0-9._-]+$&rdquo;.</td>
  </tr>
  <tr>
     <td>MANUFACTURER</td>
-    <td>The trade name of the Original Equipment Manufacturer (OEM) of the product.
-There are no requirements on the specific format of this field, except that it
-MUST NOT be null or the empty string ("").</td>
+    <td>The trade name of the Original Equipment Manufacturer (OEM) of the
+    product. There are no requirements on the specific format of this field,
+    except that it MUST NOT be null or the empty string ("").</td>
  </tr>
  <tr>
     <td>MODEL</td>
-    <td>A value chosen by the device implementer containing the name of the device as
-known to the end user. This SHOULD be the same name under which the device is
-marketed and sold to end users. There are no requirements on the specific
-format of this field, except that it MUST NOT be null or the empty string ("").</td>
+    <td>A value chosen by the device implementer containing the name of the
+    device as known to the end user. This SHOULD be the same name under which
+    the device is marketed and sold to end users. There are no requirements on
+    the specific format of this field, except that it MUST NOT be null or the
+    empty string ("").</td>
  </tr>
  <tr>
     <td>PRODUCT</td>
-    <td>A value chosen by the device implementer containing the development name or
-code name of the specific product (SKU) that MUST be unique within the same
-brand. MUST be human-readable, but is not necessarily intended for view by end
-users. The value of this field MUST be encodable as 7-bit ASCII and match the
-regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
+    <td>A value chosen by the device implementer containing the development name
+    or code name of the specific product (SKU) that MUST be unique within the
+    same brand. MUST be human-readable, but is not necessarily intended for view
+    by end users. The value of this field MUST be encodable as 7-bit ASCII and
+    match the regular expression &ldquo;^[a-zA-Z0-9_-]+$&rdquo;.</td>
  </tr>
  <tr>
     <td>SERIAL</td>
     <td>A hardware serial number, which MUST be available and unique across
-devices with the same MODEL and MANUFACTURER. The value of this field MUST
-be encodable as 7-bit ASCII and match the regular expression &ldquo;^([a-zA-Z0-9]{6,20})$&rdquo;.</td>
+    devices with the same MODEL and MANUFACTURER. The value of this field MUST
+    be encodable as 7-bit ASCII and match the regular expression
+    &ldquo;^([a-zA-Z0-9]{6,20})$&rdquo;.</td>
  </tr>
  <tr>
     <td>TAGS</td>
-    <td>A comma-separated list of tags chosen by the device implementer that further
-distinguishes the build. This field MUST have one of the values corresponding
-to the three typical Android platform signing configurations: release-keys,
-dev-keys, test-keys. </td>
+    <td>A comma-separated list of tags chosen by the device implementer that
+    further distinguishes the build. This field MUST have one of the values
+    corresponding to the three typical Android platform signing configurations:
+    release-keys, dev-keys, test-keys.</td>
  </tr>
  <tr>
     <td>TIME</td>
@@ -764,29 +799,31 @@
  </tr>
  <tr>
     <td>TYPE</td>
-    <td>A value chosen by the device implementer specifying the runtime configuration
-of the build. This field MUST have one of the values corresponding to the three
-typical Android runtime configurations: user, userdebug, or eng.</td>
+    <td>A value chosen by the device implementer specifying the runtime
+    configuration of the build. This field MUST have one of the values
+    corresponding to the three typical Android runtime configurations: user,
+    userdebug, or eng.</td>
  </tr>
  <tr>
     <td>USER</td>
-    <td>A name or user ID of the user (or automated user) that generated the build.
-There are no requirements on the specific format of this field, except that it
-MUST NOT be null or the empty string ("").</td>
+    <td>A name or user ID of the user (or automated user) that generated the
+    build. There are no requirements on the specific format of this field,
+    except that it MUST NOT be null or the empty string ("").</td>
  </tr>
  <tr>
     <td>SECURITY_PATCH</td>
-    <td>An value indicating the security patch level of a build. It MUST signify that the
-build includes all security patches issued up through the designated Android Public
-Security Bulletin. It MUST be in the format, [YYYY-MM-DD], matching the Public Security
-Bulletin's broadcast date, for example [2015-10-01].</td>
+    <td>An value indicating the security patch level of a build. It MUST signify
+    that the build includes all security patches issued up through the
+    designated Android Public Security Bulletin. It MUST be in the format
+    [YYYY-MM-DD], matching the Public Security Bulletin's broadcast date, for
+    example [2015-10-01].</td>
  </tr>
  <tr>
     <td>BASE_OS</td>
-    <td>An value representing the FINGERPRINT parameter of the build that is otherwise
-      identical to this build except for the patches provided in the Android Public
-      Security Bulletin. It MUST report the correct value and if such a build does not
-      exist, report an emtpy string ("").</td>
+    <td>An value representing the FINGERPRINT parameter of the build that is
+    otherwise identical to this build except for the patches provided in the
+    Android Public Security Bulletin. It MUST report the correct value and if
+    such a build does not exist, report an empty string ("").</td>
  </tr>
 </table>
 
@@ -794,11 +831,11 @@
 <h3 id="3_2_3_intent_compatibility">3.2.3. Intent Compatibility</h3>
 
 
-<p>Device implementations MUST honor Android&rsquo;s loose-coupling intent system, as
-described in the sections below. By&ldquo;honored &rdquo; it is meant that the device
-implementer MUST provide an Android Activity or Service that specifies a
-matching intent filter that binds to and implements correct behavior for each
-specified intent pattern.</p>
+<p>Device implementations MUST honor Android&rsquo;s loose-coupling intent
+system, as described in the sections below. By &ldquo;honored&rdquo; it is meant
+that the device implementer MUST provide an Android Activity or Service that
+specifies amatching intent filter that binds to and implements correct behavior
+for each specified intent pattern.</p>
 
 <h4 id="3_2_3_1_core_application_intents">3.2.3.1. Core Application Intents</h4>
 
@@ -806,7 +843,8 @@
 <p>Android intents allow application components to request functionality from
 other Android components. The Android upstream project includes a list of
 applications considered core Android applications, which implements several
-intent patterns to perform common actions. The core Android applications are:</p>
+intent patterns to perform common actions. The core Android applications are:
+</p>
 
 <ul>
   <li>Desk Clock</li>
@@ -822,64 +860,71 @@
 
 <p>Device implementations SHOULD include the core Android applications as
 appropriate but MUST include a component implementing the same intent patterns
-defined by all the &ldquo;public&rdquo; Activity or Service components of these core
-Android applications. Note that Activity or Service components are considered
-&ldquo;public&rdquo; when the attribute android:exported is absent or has the value true.</p>
+defined by all the &ldquo;public&rdquo; Activity or Service components of these
+core Android applications. Note that Activity or Service components are
+considered &ldquo;public&rdquo; when the attribute android:exported is absent or
+has the value true.</p>
 
 <h4 id="3_2_3_2_intent_resolution">3.2.3.2. Intent Resolution</h4>
 
 
 <p>As Android is an extensible platform, device implementations MUST allow each
-intent pattern referenced in <a href="#3_2_3_1_core_application_intents">section 3.2.3.1</a>
-to be overridden by third-party applications. The upstream Android open source
-implementation allows this by default; device implementers MUST NOT attach
-special privileges to system applications' use of these intent patterns, or
-prevent third-party applications from binding to and assuming control of these
-patterns. This prohibition specifically includes but is not limited to
-disabling the&ldquo;Chooser&rdquo; user interface that allows the user to select between
-multiple applications that all handle the same intent pattern.</p>
+intent pattern referenced in <a href="#3_2_3_1_core_application_intents">section
+3.2.3.1</a> to be overridden by third-party applications. The upstream Android
+open source implementation allows this by default; device implementers MUST NOT
+attach special privileges to system applications' use of these intent patterns,
+or prevent third-party applications from binding to and assuming control of
+these patterns. This prohibition specifically includes but is not limited to
+disabling the &ldquo;Chooser&rdquo; user interface that allows the user to
+select between multiple applications that all handle the same intent pattern.
+</p>
 
-<p>Device implementations MUST provide a user interface for users to modify the default
-activity for intents.</p>
+<p>Device implementations MUST provide a user interface for users to modify the
+default activity for intents.</p>
 
-<p>However, device implementations MAY provide default activities for specific URI
-patterns (eg. http://play.google.com) when the default activity provides a more
-specific attribute for the data URI. For example, an intent filter pattern specifying
-the data URI &ldquo;http://www.android.com&rdquo; is more specific than the browser's
-core intent pattern for &ldquo;http://&rdquo;.</p>
-  
-<p>Android also includes a mechanism for third-party apps to declare an authoritative
-default app linking behavior for certain types of web URI intents [<a
-href="https://developer.android.com/training/app-links">Resources, 140</a>]. When such
-authoritative declarations are defined in an app's intent filter patterns, device
+<p>However, device implementations MAY provide default activities for specific
+URI patterns (e.g. http://play.google.com) when the default activity provides a
+more specific attribute for the data URI. For example, an intent filter pattern
+specifying the data URI &ldquo;http://www.android.com&rdquo; is more specific
+than the browser's core intent pattern for &ldquo;http://&rdquo;.</p>
+
+<p>Android also includes a mechanism for third-party apps to declare an
+authoritative default
+<a href="https://developer.android.com/training/app-links">app linking
+behavior</a> for certain types of web URI intents. When such authoritative
+declarations are defined in an app's intent filter patterns, device
 implementations:</p>
 
 <ul>
-<li>MUST attempt to validate any intent filters by performing the validation steps 
-defined in the Digital Asset Links specification [<a
-href="https://developers.google.com/digital-asset-links">Resources, 141</a>] as implemented
-by the Package Manager in the upstream Android Open Source Project.</li>
-<li>MUST attempt validation of the intent filters during the installation of the
-application and set all successfully validated UIR intent filters as default app handlers
-for their UIRs.</li>
-<li>MAY set specific URI intent filters as default app handlers for their URIs, if they
-are successfully verified but other candidate URI filters fail verification. If a device
-implementation does this, it MUST provide the user appropriate per-URI pattern overrides
-in the settings menu.</li>
-<li>MUST provide the user with per-app App Links controls in Settings as follows:
+  <li>MUST attempt to validate any intent filters by performing the validation
+  steps defined in the
+  <a href="https://developers.google.com/digital-asset-links">Digital Asset
+  Links specification</a> as implemented by the Package Manager in the upstream
+  Android Open Source Project.</li>
+  <li>MUST attempt validation of the intent filters during the installation of
+  the application and set all successfully validated UIR intent filters as
+  default app handlers for their UIRs.</li>
+  <li>MAY set specific URI intent filters as default app handlers for their
+  URIs, if they are successfully verified but other candidate URI filters fail
+  verification. If a device implementation does this, it MUST provide the user
+  appropriate per-URI pattern overrides in the settings menu.</li>
+  <li>MUST provide the user with per-app App Links controls in Settings as
+  follows:
   <ul>
-  <li>The user MUST be able to override holistically the default app links behavior for
-  an app to be: always open, always ask, or never open, which must apply to all candidate
-  URI intent filters equally.</li>
-  <li>The user MUST be able to see a list of the candidate URI intent filters.</li>
-  <li>The device implementation MAY provide the user with the ability to override specific
-  candidate URI intent filters that were successfully verified, on a per-intent filter basis.
-  </li>
-  <li>The device implementation MUST provide users with the ability to view and override
-  specific candidate URI intent filters if the device implementation lets some candidate
-  URI intent filters succeed verification while some others can fail.</li>
+    <li>The user MUST be able to override holistically the default app links
+    behavior for an app to be: always open, always ask, or never open, which
+    must apply to all candidate URI intent filters equally.</li>
+    <li>The user MUST be able to see a list of the candidate URI intent filters.
+    </li>
+    <li>The device implementation MAY provide the user with the ability to
+    override specific candidate URI intent filters that were successfully
+    verified, on a per-intent filter basis.</li>
+    <li>The device implementation MUST provide users with the ability to view
+    and override specific candidate URI intent filters if the device
+    implementation lets some candidate URI intent filters succeed verification
+    while some others can fail.</li>
   </ul>
-</li>
+  </li>
 </ul>
 
 <h4 id="3_2_3_3_intent_namespaces">3.2.3.3. Intent Namespaces</h4>
@@ -887,13 +932,16 @@
 
 <p>Device implementations MUST NOT include any Android component that honors any
 new intent or broadcast intent patterns using an ACTION, CATEGORY, or other key
-string in the android.* or com.android.* namespace. Device implementers MUST
-NOT include any Android components that honor any new intent or broadcast
-intent patterns using an ACTION, CATEGORY, or other key string in a package
-space belonging to another organization. Device implementers MUST NOT alter or
-extend any of the intent patterns used by the core apps listed in <a href="#3_2_3_1_core_application_intents">section 3.2.3.1</a>. Device implementations MAY include intent patterns using namespaces clearly
-and obviously associated with their own organization. This prohibition is
-analogous to that specified for Java language classes in <a href="#3_6_api_namespaces">section 3.6</a>.</p>
+string in the android.* or com.android.* namespace. Device implementers MUST NOT
+include any Android components that honor any new intent or broadcast intent
+patterns using an ACTION, CATEGORY, or other key string in a package space
+belonging to another organization. Device implementers MUST NOT alter or extend
+any of the intent patterns used by the core apps listed in
+<a href="#3_2_3_1_core_application_intents">section 3.2.3.1</a>. Device
+implementations MAY include intent patterns using namespaces clearly and
+obviously associated with their own organization. This prohibition is analogous
+to that specified for Java language classes in
+<a href="#3_6_api_namespaces">section 3.6</a>.</p>
 
 <h4 id="3_2_3_4_broadcast_intents">3.2.3.4. Broadcast Intents</h4>
 
@@ -916,16 +964,16 @@
 <p>Device implementations:</p>
 
 <ul>
-  <li>MUST honor the android.settings.HOME_SETTINGS intent to show a default app
-settings menu for Home Screen, if the device implementation reports
-android.software.home_screen [<a href="http://developer.android.com/reference/android/provider/Settings.html">Resources, 10</a>]</li>
+  <li>MUST honor the <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_HOME_SETTINGS">android.settings.HOME_SETTINGS</a>
+  intent to show a default app settings menu for Home Screen, if the device
+  implementation reports android.software.home_screen.</li>
   <li>MUST provide a settings menu that will call the
-android.provider.Telephony.ACTION_CHANGE_DEFAULT intent to show a dialog to
-change the default SMS application, if the device implementation reports
-android.hardware.telephony [<a href="http://developer.android.com/reference/android/provider/Telephony.Sms.Intents.html">Resources, 11</a>]</li>
-  <li>MUST honor the android.settings.NFC_PAYMENT_SETTINGS intent to show a default
-app settings menu for Tap and Pay, if the device implementation reports
-android.hardware.nfc.hce [<a href="http://developer.android.com/reference/android/provider/Settings.html">Resources, 10</a>]</li>
+  <a href="http://developer.android.com/reference/android/provider/Telephony.Sms.Intents.html">android.provider.Telephony.ACTION_CHANGE_DEFAULT</a>
+  intent to show a dialog to change the default SMS application, if the device
+  implementation reports android.hardware.telephony.</li>
+  <li>MUST honor the <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFC_PAYMENT_SETTINGS">android.settings.NFC_PAYMENT_SETTINGS</a>
+  intent to show a default app settings menu for Tap and Pay, if the device
+  implementation reports android.hardware.nfc.hce.</li>
 </ul>
 
 <h2 id="3_3_native_api_compatibility">3.3. Native API Compatibility</h2>
@@ -944,25 +992,24 @@
 <p>If a device implementation includes support for an Android ABI, it:</p>
 
 <ul>
-  <li>MUST include support for code running in the managed environment to call into
-native code, using the standard Java Native Interface (JNI) semantics</li>
-  <li>MUST be source-compatible (i.e. header compatible) and binary-compatible (for
-the ABI) with each required library in the list below</li>
-  <li>MUST support the equivalent 32-bit ABI if any 64-bit ABI is supported</li>
-  <li>MUST accurately report the native Application Binary Interface (ABI) supported
-by the device, via the android.os.Build.SUPPORTED_ABIS,
-android.os.Build.SUPPORTED_32_BIT_ABIS, and
-android.os.Build.SUPPORTED_64_BIT_ABIS parameters, each a comma separated list
-of ABIs ordered from the most to the least preferred one</li>
+  <li>MUST include support for code running in the managed environment to call
+  into native code, using the standard Java Native Interface (JNI) semantics.</li>
+  <li>MUST be source-compatible (i.e. header compatible) and binary-compatible
+  (for the ABI) with each required library in the list below.</li>
+  <li>MUST support the equivalent 32-bit ABI if any 64-bit ABI is supported.</li>
+  <li>MUST accurately report the native Application Binary Interface (ABI)
+  supported by the device, via the android.os.Build.SUPPORTED_ABIS,
+  android.os.Build.SUPPORTED_32_BIT_ABIS, and
+  android.os.Build.SUPPORTED_64_BIT_ABIS parameters, each a comma separated list
+  of ABIs ordered from the most to the least preferred one.</li>
   <li>MUST report, via the above parameters, only those ABIs documented and
-described in the latest version of the Android NDK ABI Management documentation
-[<a href="https://developer.android.com/ndk/guides/abis.html">Resources, 12</a>],
-and MUST include support for the Advanced SIMD (a.k.a. NEON)
-[<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">Resources, 13</a>]
-extension
-  </li>
+  described in the latest version of the
+  <a href="https://developer.android.com/ndk/guides/abis.html">Android NDK ABI
+  Management documentation</a>, and MUST include support for the
+  <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">Advanced
+  SIMD</a> (a.k.a. NEON) extension.</li>
   <li>SHOULD be built using the source code and header files available in the
-upstream Android Open Source Project</li>
+  upstream Android Open Source Project</li>
 </ul>
 
 <p>The following native code APIs MUST be available to apps that include native
@@ -994,43 +1041,45 @@
 
 <p>Note that device implementations MUST include libGLESv3.so and it MUST symlink
 (symbolic link) to libGLESv2.so. in turn, MUST export all the OpenGL ES 3.1 and
-Android Extension Pack [<a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">Resources, 14</a>] function symbols as defined in the NDK release android-21. Although all the
-symbols must be present, only the corresponding functions for OpenGL ES
-versions and extensions actually supported by the device must be fully
+<a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">Android
+Extension Pack</a> function symbols as defined in the NDK release android-21.
+Although all the symbols must be present, only the corresponding functions for
+OpenGL ES versions and extensions actually supported by the device must be fully
 implemented.</p>
 
 <p>Device implementations MUST NOT include a native library with the
 name libvulkan.so.</p>
 
-<p>Native code compatibility is challenging. For this reason, device implementers
-are <strong>STRONGLY RECOMMENDED</strong> to use the implementations of the libraries listed above from the upstream
-Android Open Source Project. </p>
+<p>Native code compatibility is challenging. For this reason, device
+implementers are <strong>STRONGLY RECOMMENDED</strong> to use the
+implementations of the libraries listed above from the upstream Android Open
+Source Project.</p>
 
-<h3 id="3_3_2_32-bit_arm_native_code_compatibility">
-3.3.2. 32-bit ARM Native Code Compatibility
-</h3>
+<h3 id="3_3_2_32-bit_arm_native_code_compatibility">3.3.2.
+32-bit ARM Native Code Compatibility</h3>
 
 <p>The ARMv8 architecture deprecates several CPU operations, including some
-operations used in existing native code.  On 64-bit ARM devices, the following
+operations used in existing native code. On 64-bit ARM devices, the following
 deprecated operations MUST remain available to 32-bit native ARM code, either
 through native CPU support or through software emulation:</p>
 
 <ul>
-<li>SWP and SWPB instructions</li>
-<li>SETEND instruction</li>
-<li>CP15ISB, CP15DSB, and CP15DMB barrier operations</li>
+  <li>SWP and SWPB instructions</li>
+  <li>SETEND instruction</li>
+  <li>CP15ISB, CP15DSB, and CP15DMB barrier operations</li>
 </ul>
 
-<p>Legacy versions of the Android NDK used /proc/cpuinfo to discover CPU features
-from 32-bit ARM native code. For compatibility with applications built using this
-NDK, devices MUST include the following lines in /proc/cpuinfo when it is read
-by 32-bit ARM applications:</p>
+<p>Legacy versions of the Android NDK used /proc/cpuinfo to discover CPU
+features from 32-bit ARM native code. For compatibility with applications built
+using this NDK, devices MUST include the following lines in /proc/cpuinfo when
+it is read by 32-bit ARM applications:</p>
 
 <ul>
-<li>&quot;Features: &quot;, followed by a list of any optional ARMv7 CPU features
-supported by the device</li>
-<li>&quot;CPU architecture: &quot;, followed by an integer describing the device's
-highest supported ARM architecture (e.g., &quot;8&quot; for ARMv8 devices)</li>
+  <li>&quot;Features: &quot;, followed by a list of any optional ARMv7 CPU
+  features supported by the device.</li>
+  <li>&quot;CPU architecture: &quot;, followed by an integer describing the
+  device's highest supported ARM architecture (e.g., &quot;8&quot; for ARMv8
+  devices).</li>
 </ul>
 
 <p>These requirements only apply when /proc/cpuinfo is read by 32-bit ARM
@@ -1052,33 +1101,38 @@
 that provides a complete implementation of the android.webkit.WebView API, and
 MUST NOT be reported on devices without a complete implementation of the API.
 The Android Open Source implementation uses code from the Chromium Project to
-implement the android.webkit.WebView [<a href="http://developer.android.com/reference/android/webkit/WebView.html">Resources, 15</a>]. Because it is not feasible to develop a comprehensive test suite for a web
+implement the
+<a href="http://developer.android.com/reference/android/webkit/WebView.html">android.webkit.WebView</a>.
+Because it is not feasible to develop a comprehensive test suite for a web
 rendering system, device implementers MUST use the specific upstream build of
 Chromium in the WebView implementation. Specifically:</p>
 
 <ul>
-  <li>Device android.webkit.WebView implementations MUST be based on the Chromium
-build from the upstream Android Open Source Project for Android ANDROID_VERSION. This build
-includes a specific set of functionality and security fixes for the WebView [<a href="http://www.chromium.org/">Resources, 16</a>].</li>
+  <li>Device android.webkit.WebView implementations MUST be based on the
+  <a href="http://www.chromium.org/">Chromium</a> build from the upstream
+  Android Open Source Project for Android ANDROID_VERSION. This build includes
+  a specific set of functionality and security fixes for the WebView.</li>
   <li>The user agent string reported by the WebView MUST be in this format:
-<p>Mozilla/5.0 (Linux; Android $(VERSION); $(MODEL) Build/$(BUILD); wv)
-AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile
-Safari/537.36</p>
+  <p>Mozilla/5.0 (Linux; Android $(VERSION); $(MODEL) Build/$(BUILD); wv)
+  AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile
+  Safari/537.36</p>
   <ul>
     <li>The value of the $(VERSION) string MUST be the same as the value for
-android.os.Build.VERSION.RELEASE.</li>
+    android.os.Build.VERSION.RELEASE.</li>
     <li>The value of the $(MODEL) string MUST be the same as the value for
-android.os.Build.MODEL.</li>
+    android.os.Build.MODEL.</li>
     <li>The value of the $(BUILD) string MUST be the same as the value for
-android.os.Build.ID.</li>
-    <li>The value of the $(CHROMIUM_VER) string MUST be the version of Chromium in the
-upstream Android Open Source Project.</li>
+    android.os.Build.ID.</li>
+    <li>The value of the $(CHROMIUM_VER) string MUST be the version of Chromium
+    in the upstream Android Open Source Project.</li>
     <li>Device implementations MAY omit Mobile in the user agent string.</li>
-  </ul></li></ul>
+  </ul>
+  </li>
+</ul>
 
 <p>The WebView component SHOULD include support for as many HTML5 features as
-possible and if it supports the feature SHOULD conform to the HTML5
-specification [<a href="http://html.spec.whatwg.org/multipage/">Resources, 17</a>].</p>
+possible and if it supports the feature SHOULD conform to the
+<a href="http://html.spec.whatwg.org/multipage/">HTML5 specification</a>.</p>
 
 <h3 id="3_4_2_browser_compatibility">3.4.2. Browser Compatibility</h3>
 
@@ -1093,38 +1147,47 @@
 <p>The standalone Browser MAY be based on a browser technology other than WebKit.
 However, even if an alternate Browser application is used, the
 android.webkit.WebView component provided to third-party applications MUST be
-based on WebKit, as described in <a href="#3_4_1_webview_compatibility">section 3.4.1</a>.</p>
+based on WebKit, as described in <a href="#3_4_1_webview_compatibility">section
+3.4.1</a>.</p>
 
 <p>Implementations MAY ship a custom user agent string in the standalone Browser
 application.</p>
 
 <p>The standalone Browser application (whether based on the upstream WebKit
 Browser application or a third-party replacement) SHOULD include support for as
-much of HTML5 [<a href="http://html.spec.whatwg.org/multipage/">Resources, 17</a>] as possible. Minimally, device implementations MUST support each of these
-APIs associated with HTML5:</p>
+much of <a href="http://html.spec.whatwg.org/multipage/">HTML5</a> as possible.
+Minimally, device implementations MUST support each of these APIs associated
+with HTML5:</p>
 
 <ul>
-  <li>application cache/offline operation [<a href="http://www.w3.org/html/wg/drafts/html/master/browsers.html#offline">Resources, 18</a>]</li>
-  <li>the &#60;video&#62; tag [<a href="http://www.w3.org/html/wg/drafts/html/master/semantics.html#video">Resources, 19</a>]</li>
-  <li>geolocation [<a href="http://www.w3.org/TR/geolocation-API/">Resources, 20</a>]</li>
+  <li><a href="http://www.w3.org/html/wg/drafts/html/master/browsers.html#offline">application
+  cache/offline operation</a></li>
+  <li><a href="http://www.w3.org/html/wg/drafts/html/master/semantics.html#video">&#60;video&#62;
+  tag</a></li>
+  <li><a href="http://www.w3.org/TR/geolocation-API/">geolocation</a></li>
 </ul>
 
-<p>Additionally, device implementations MUST support the HTML5/W3C webstorage API
-[<a href="http://www.w3.org/TR/webstorage/">Resources, 21</a>], and SHOULD support the HTML5/W3C IndexedDB API [<a href="http://www.w3.org/TR/IndexedDB/">Resources, 22</a>]. Note that as the web development standards bodies are transitioning to favor
+<p>Additionally, device implementations MUST support the HTML5/W3C
+<a href="http://www.w3.org/TR/webstorage/">webstorage API</a> and SHOULD support
+the HTML5/W3C <a href="http://www.w3.org/TR/IndexedDB/">IndexedDB API</a>. Note
+that as the web development standards bodies are transitioning to favor
 IndexedDB over webstorage, IndexedDB is expected to become a required component
 in a future version of Android.</p>
 
 <h2 id="3_5_api_behavioral_compatibility">3.5. API Behavioral Compatibility</h2>
 
 
-<p>The behaviors of each of the API types (managed, soft, native, and web) must be
-consistent with the preferred implementation of the upstream Android Open
-Source Project [<a href="http://source.android.com/">Resources, 2</a>]. Some specific areas of compatibility are:</p>
+<p>The behaviors of each of the API types (managed, soft, native, and web) must
+be consistent with the preferred implementation of the upstream
+<a href="http://source.android.com/">Android Open Source Project</a>. Some
+specific areas of compatibility are:</p>
 
 <ul>
-  <li>Devices MUST NOT change the behavior or semantics of a standard intent.</li>
-  <li>Devices MUST NOT alter the lifecycle or lifecycle semantics of a particular
-type of system component (such as Service, Activity, ContentProvider, etc.).</li>
+  <li>Devices MUST NOT change the behavior or semantics of a standard intent.
+  </li>
+  <li>Devices MUST NOT alter the lifecycle or lifecycle semantics of a
+  particular type of system component (such as Service, Activity,
+  ContentProvider, etc.).</li>
   <li>Devices MUST NOT change the semantics of a standard permission.</li>
 </ul>
 
@@ -1138,10 +1201,10 @@
 <h2 id="3_6_api_namespaces">3.6. API Namespaces</h2>
 
 
-<p>Android follows the package and class namespace conventions defined by the Java
-programming language. To ensure compatibility with third-party applications,
-device implementers MUST NOT make any prohibited modifications (see below) to
-these package namespaces:</p>
+<p>Android follows the package and class namespace conventions defined by the
+Java programming language. To ensure compatibility with third-party
+applications, device implementers MUST NOT make any prohibited modifications
+(see below) to these package namespaces:</p>
 
 <ul>
   <li>java.*</li>
@@ -1154,22 +1217,23 @@
 <p><strong>Prohibited modifications include</strong>:</p>
 
 <ul>
-  <li>Device implementations MUST NOT modify the publicly exposed APIs on the Android
-platform by changing any method or class signatures, or by removing classes or
-class fields.</li>
-  <li>Device implementers MAY modify the underlying implementation of the APIs, but
-such modifications MUST NOT impact the stated behavior and Java-language
-signature of any publicly exposed APIs.</li>
-  <li>Device implementers MUST NOT add any publicly exposed elements (such as classes
-or interfaces, or fields or methods to existing classes or interfaces) to the
-APIs above.</li>
+  <li>Device implementations MUST NOT modify the publicly exposed APIs on the
+  Android platform by changing any method or class signatures, or by removing
+  classes or class fields.</li>
+  <li>Device implementers MAY modify the underlying implementation of the APIs,
+  but such modifications MUST NOT impact the stated behavior and Java-language
+  signature of any publicly exposed APIs.</li>
+  <li>Device implementers MUST NOT add any publicly exposed elements (such as
+  classes or interfaces, or fields or methods to existing classes or interfaces)
+  to the APIs above.</li>
 </ul>
 
-<p>A &ldquo;publicly exposed element&rdquo; is any construct which is not decorated with the&ldquo;@hide&rdquo; marker as used in the upstream Android source code. In other words,
-device implementers MUST NOT expose new APIs or alter existing APIs in the
-namespaces noted above. Device implementers MAY make internal-only
-modifications, but those modifications MUST NOT be advertised or otherwise
-exposed to developers.</p>
+<p>A &ldquo;publicly exposed element&rdquo; is any construct that is not
+decorated with the&ldquo;@hide&rdquo; marker as used in the upstream Android
+source code. In other words, device implementers MUST NOT expose new APIs or
+alter existing APIs in the namespaces noted above. Device implementers MAY make
+internal-only modifications, but those modifications MUST NOT be advertised or
+otherwise exposed to developers.</p>
 
 <p>Device implementers MAY add custom APIs, but any such APIs MUST NOT be in a
 namespace owned by or referring to another organization. For instance, device
@@ -1181,30 +1245,33 @@
 lt;uses-librarygt; mechanism) are affected by the increased memory usage of such
 APIs.</p>
 
-<p>If a device implementer proposes to improve one of the package namespaces above
-(such as by adding useful new functionality to an existing API, or adding a new
-API), the implementer SHOULD visit <a href="http://source.android.com/">source.android.com</a> and begin the process for contributing changes and code, according to the
-information on that site.</p>
+<p>If a device implementer proposes to improve one of the package namespaces
+above (such as by adding useful new functionality to an existing API, or adding
+a new API), the implementer SHOULD visit
+<a href="http://source.android.com/">source.android.com</a> and begin the
+process for contributing changes and code, according to the information on that
+site.</p>
 
-<p>Note that the restrictions above correspond to standard conventions for naming
-APIs in the Java programming language; this section simply aims to reinforce
-those conventions and make them binding through inclusion in this Compatibility
-Definition.</p>
+<p>Note that the restrictions above correspond to standard conventions for
+naming APIs in the Java programming language; this section simply aims to
+reinforce those conventions and make them binding through inclusion in this
+Compatibility Definition.</p>
 
 <h2 id="3_7_runtime_compatibility">3.7. Runtime Compatibility</h2>
 
 
-<p>Device implementations MUST support the full Dalvik Executable (DEX) format and
-Dalvik bytecode specification and semantics [<a href="https://android.googlesource.com/platform/dalvik/">Resources, 23</a>]. Device implementers SHOULD use ART, the reference upstream implementation of
-the Dalvik Executable Format, and the reference implementation&rsquo;s package
-management system.</p>
+<p>Device implementations MUST support the full Dalvik Executable (DEX) format
+and <a href="https://android.googlesource.com/platform/dalvik/">Dalvik bytecode
+specification and semantics</a>. Device implementers SHOULD use ART, the
+reference upstream implementation of the Dalvik Executable Format, and the
+reference implementation&rsquo;s package management system.</p>
 
 <p>Device implementations MUST configure Dalvik runtimes to allocate memory in
 accordance with the upstream Android platform, and as specified by the
-following table. (See <a href="#7_1_1_screen_configuration">section 7.1.1</a> for screen size and screen density definitions.)</p>
-
-<p>Note that memory values specified below are considered minimum values and
-device implementations MAY allocate more memory per application.</p>
+following table. (See <a href="#7_1_1_screen_configuration">section 7.1.1</a>
+for screen size and screen density definitions.) Note that memory values
+specified below are considered minimum values and device implementations MAY
+allocate more memory per application.</p>
 
 <table>
  <tr>
@@ -1421,81 +1488,94 @@
 
 
 <p>Android defines a component type and corresponding API and lifecycle that
-allows applications to expose an &ldquo;AppWidget&rdquo; to the end user [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 24</a>] a feature that is STRONGLY RECOMMENDED to be supported on Handheld Device
-implementations. Device implementations that support embedding widgets on the
-home screen MUST meet the following requirements and declare support for
-platform feature android.software.app_widgets.</p>
+allows applications to expose an
+<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">&ldquo;AppWidget&rdquo;</a>
+to the end user, a feature that is STRONGLY RECOMMENDED to be supported on
+Handheld Device implementations. Device implementations that support embedding
+widgets on the home screen MUST meet the following requirements and declare
+support for platform feature android.software.app_widgets.</p>
 
 <ul>
-  <li>Device launchers MUST include built-in support for AppWidgets, and expose user
-interface affordances to add, configure, view, and remove AppWidgets directly
-within the Launcher.</li>
-  <li>Device implementations MUST be capable of rendering widgets that are 4 x 4 in
-the standard grid size. See the App Widget Design Guidelines in the Android SDK
-documentation [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 24</a>] for details.</li>
+  <li>Device launchers MUST include built-in support for AppWidgets and expose
+  user interface affordances to add, configure, view, and remove AppWidgets
+  directly within the Launcher.</li>
+  <li>Device implementations MUST be capable of rendering widgets that are 4 x 4
+  in the standard grid size. See the
+  <a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">App
+  Widget Design Guidelines</a> in the Android SDK documentation for details.
+  </li>
   <li>Device implementations that include support for lock screen MAY support
-application widgets on the lock screen.</li>
+  application widgets on the lock screen.</li>
 </ul>
 
 <h3 id="3_8_3_notifications">3.8.3. Notifications</h3>
 
 
-<p>Android includes APIs that allow developers to notify users of notable events [<a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">Resources, 25</a>], using hardware and software features of the device.</p>
+<p>Android includes APIs that allow developers to
+<a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">notify
+users of notable events</a> using hardware and software features of the device.</p>
 
 <p>Some APIs allow applications to perform notifications or attract attention
-using hardware&#8212;specifically sound, vibration, and light. Device implementations
-MUST support notifications that use hardware features, as described in the SDK
-documentation, and to the extent possible with the device implementation
-hardware. For instance, if a device implementation includes a vibrator, it MUST
-correctly implement the vibration APIs. If a device implementation lacks
-hardware, the corresponding APIs MUST be implemented as no-ops. This behavior
-is further detailed in <a href="#7_hardware_compatibility">section 7</a>.</p>
+using hardware&#8212;specifically sound, vibration, and light. Device
+implementations MUST support notifications that use hardware features, as
+described in the SDK documentation, and to the extent possible with the device
+implementation hardware. For instance, if a device implementation includes a
+vibrator, it MUST correctly implement the vibration APIs. If a device
+implementation lacks hardware, the corresponding APIs MUST be implemented as
+no-ops. This behavior is further detailed in
+<a href="#7_hardware_compatibility">section 7</a>.</p>
 
-<p>Additionally, the implementation MUST correctly render all resources (icons, animation files
-etc.) provided for in the APIs
-[<a href="https://developer.android.com/guide/topics/resources/available-resources.html">Resources, 26</a>],
-or in the Status/System Bar icon style guide
-[<a href="http://developer.android.com/design/style/iconography.html">Resources, 27</a>],
-which in the case of an Android Television device includes the possibility to not display the
-notifications. Device implementers MAY provide an alternative user experience for
-notifications than that provided by the reference Android Open Source
-implementation; however, such alternative notification systems MUST support
-existing notification resources, as above. </p>
+<p>Additionally, the implementation MUST correctly render all
+<a href="https://developer.android.com/guide/topics/resources/available-resources.html">resources</a>
+(icons, animation files etc.) provided for in the APIs, or in the Status/System
+Bar <a href="http://developer.android.com/design/style/iconography.html">icon
+style guide</a>, which in the case of an Android Television device includes the
+possibility to not display the notifications. Device implementers MAY provide an
+alternative user experience for notifications than that provided by the
+reference Android Open Source implementation; however, such alternative
+notification systems MUST support existing notification resources, as above.</p>
 
 <p>Android includes support for various notifications, such as:</p>
 
 <ul>
-  <li><strong>Rich notifications</strong>. Interactive Views for ongoing notifications.</li>
-  <li><strong>Heads-up notifications</strong>. Interactive Views users can act on or dismiss without leaving the current app.</li>
-  <li><strong>Lockscreen notifications</strong>. Notifications shown over a lock screen with granular control on visibility.</li>
+  <li><strong>Rich notifications</strong>. Interactive Views for ongoing
+  notifications.</li>
+  <li><strong>Heads-up notifications</strong>. Interactive Views users can act
+  on or dismiss without leaving the current app.</li>
+  <li><strong>Lockscreen notifications</strong>. Notifications shown over a lock
+  screen with granular control on visibility.</li>
 </ul>
 
-<p>Android device implementations, when such notifications are made visible, MUST properly execute
-Rich and Heads-up notifications and include the title/name, icon, text as documented in the Android
-APIs [<a href="https://developer.android.com/design/patterns/notifications.html">Resources, 28</a>].
-</p>
+<p>Android device implementations, when such notifications are made visible,
+MUST properly execute Rich and Heads-up notifications and include the
+title/name, icon, text as
+<a href="https://developer.android.com/design/patterns/notifications.html">documented
+in the Android APIs</a>.</p>
 
 <p>Android includes Notification Listener Service APIs that allow apps (once
 explicitly enabled by the user) to receive a copy of all notifications as they
 are posted or updated. Device implementations MUST correctly and promptly send
 notifications in their entirety to all such installed and user-enabled listener
-services, including any and all metadata attached to the Notification object.</p>
+services, including any and all metadata attached to the Notification object.
+</p>
 
 <h3 id="3_8_4_search">3.8.4. Search</h3>
 
 
-<p>Android includes APIs [<a href="http://developer.android.com/reference/android/app/SearchManager.html">Resources, 29</a>] that allow developers to incorporate search into their applications, and
-expose their application&rsquo;s data into the global system search. Generally
-speaking, this functionality consists of a single, system-wide user interface
-that allows users to enter queries, displays suggestions as users type, and
-displays results. The Android APIs allow developers to reuse this interface to
-provide search within their own apps, and allow developers to supply results to
-the common global search user interface.</p>
+<p>Android includes APIs that allow developers to
+<a href="http://developer.android.com/reference/android/app/SearchManager.html">incorporate
+search</a> into their applications and expose their application&rsquo;s data
+into the global system search. Generally speaking, this functionality consists
+of a single, system-wide user interface that allows users to enter queries,
+displays suggestions as users type, and displays results. The Android APIs allow
+developers to reuse this interface to provide search within their own apps and
+allow developers to supply results to the common global search user interface.
+</p>
 
-<p>Android device implementations SHOULD include global search, a single, shared,
-system-wide search user interface capable of real-time suggestions in response
-to user input. Device implementations SHOULD implement the APIs that allow
-developers to reuse this user interface to provide search within their own
+<p>Android device implementations SHOULD include global search, a single,
+shared, system-wide search user interface capable of real-time suggestions in
+response to user input. Device implementations SHOULD implement the APIs that
+allow developers to reuse this user interface to provide search within their own
 applications. Device implementations that implement the global search interface
 MUST implement the APIs that allow third-party applications to add suggestions
 to the search box when it is run in global search mode. If no third-party
@@ -1503,48 +1583,55 @@
 behavior SHOULD be to display web search engine results and suggestions.</p>
 
 <p>Android device implementations SHOULD implement an assistant on the device
-to handle the Assist action [<a
-href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">Resources,
-30</a>].</p>
+to handle the
+<a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">Assist
+action</a>.</p>
 
-<p>Android also includes the Assist APIs to allow applications to elect how much
-information of the current context is shared with the assistant on the device [<a
-href="https://developer.android.com/reference/android/app/assist/package-summary.html">Resources,
-31</a>]. Device implementations supporting the Assist action MUST indicate clearly to
-the end user when the the context is shared by displaying a white light around
-the edges of the screen. To ensure clear visibility to the end user, the indication MUST
-meet or exceed the duration and brightness of the Android Open Source Project
-implementation.</p>
+<p>Android also includes the
+<a href="https://developer.android.com/reference/android/app/assist/package-summary.html">Assist
+APIs</a> to allow applications to elect how much information of the current
+context is shared with the assistant on the device. Device implementations
+supporting the Assist action MUST indicate clearly to the end user when the the
+context is shared by displaying a white light around the edges of the screen. To
+ensure clear visibility to the end user, the indication MUST meet or exceed the
+duration and brightness of the Android Open Source Project implementation.</p>
 
 <h3 id="3_8_5_toasts">3.8.5. Toasts</h3>
 
 
-<p>Applications can use the &ldquo;Toast&rdquo; API to display short non-modal strings to the
-end user, that disappear after a brief period of time [<a href="http://developer.android.com/reference/android/widget/Toast.html">Resources, 32</a>]. Device implementations MUST display Toasts from applications to end users in
-some high-visibility manner.</p>
+<p>Applications can use the <a href="http://developer.android.com/reference/android/widget/Toast.html">&ldquo;Toast&rdquo;
+API</a> to display short non-modal strings to the end user that disappear after
+a brief period of time. Device implementations MUST display Toasts from
+applications to end users in some high-visibility manner.</p>
 
 <h3 id="3_8_6_themes">3.8.6. Themes</h3>
 
 
-<p>Android provides &ldquo;themes&rdquo; as a mechanism for applications to apply styles
-across an entire Activity or application.</p>
+<p>Android provides &ldquo;themes&rdquo; as a mechanism for applications to
+apply styles across an entire Activity or application.</p>
 
-<p>Android includes a &ldquo;Holo&rdquo; theme family as a set of defined styles for
-application developers to use if they want to match the Holo theme look and
-feel as defined by the Android SDK [<a href="http://developer.android.com/guide/topics/ui/themes.html">Resources, 33</a>]. Device implementations MUST NOT alter any of the Holo theme attributes
-exposed to applications [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 34</a>].</p>
+<p>Android includes a &ldquo;Holo&rdquo; theme family as a set of defined styles
+for application developers to use if they want to match the
+<a href="http://developer.android.com/guide/topics/ui/themes.html">Holo theme
+look and feel</a> as defined by the Android SDK. Device implementations MUST NOT
+alter any of the
+<a href="http://developer.android.com/reference/android/R.style.html">Holo
+theme attributes</a> exposed to applications.</p>
 
-<p>Android includes a &ldquo;Material&rdquo; theme family as a set of defined styles for
-application developers to use if they want to match the design theme&rsquo;s look and
-feel across the wide variety of different Android device types. Device
-implementations MUST support the &ldquo;Material&rdquo; theme family and MUST NOT alter any
-of the Material theme attributes or their assets exposed to applications [<a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">Resources, 35</a>].</p>
+<p>Android includes a &ldquo;Material&rdquo; theme family as a set of defined
+styles for application developers to use if they want to match the design
+theme&rsquo;s look and feel across the wide variety of different Android device
+types. Device implementations MUST support the &ldquo;Material&rdquo; theme
+family and MUST NOT alter any of the
+<a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">Material
+theme attributes</a> or their assets exposed to applications.</p>
 
-<p>Android also includes a &ldquo;Device Default&rdquo; theme family as a set of defined
-styles for application developers to use if they want to match the look and
-feel of the device theme as defined by the device implementer. Device
-implementations MAY modify the Device Default theme attributes exposed to
-applications [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 34</a>].</p>
+<p>Android also includes a &ldquo;Device Default&rdquo; theme family as a set of
+defined styles for application developers to use if they want to match the look
+and feel of the device theme as defined by the device implementer. Device
+implementations MAY modify the
+<a href="http://developer.android.com/reference/android/R.style.html">Device
+Default theme attributes</a> exposed to applications.</p>
 
 <p>Android supports a variant theme with translucent system bars, which allows
 application developers to fill the area behind the status and navigation bar
@@ -1556,14 +1643,18 @@
 problematic status or an app requests a light status bar using the
 SYSTEM_UI_FLAG_LIGHT_STATUS_BAR flag. When an app requests a light status bar,
 Android device implementations MUST change the color of the system status icons
-to black [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 34</a>].</p>
+to black (for details, refer to
+<a href="http://developer.android.com/reference/android/R.style.html">R.style</a>).</p>
 
 <h3 id="3_8_7_live_wallpapers">3.8.7. Live Wallpapers</h3>
 
 
 <p>Android defines a component type and corresponding API and lifecycle that
-allows applications to expose one or more &ldquo;Live Wallpapers&rdquo; to the end user [<a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">Resources, 36</a>]. Live wallpapers are animations, patterns, or similar images with limited
-input capabilities that display as a wallpaper, behind other applications.</p>
+allows applications to expose one or more
+<a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">&ldquo;Live
+Wallpapers&rdquo;</a> to the end user. Live wallpapers are animations, patterns,
+or similar images with limited input capabilities that display as a wallpaper,
+behind other applications.</p>
 
 <p>Hardware is considered capable of reliably running live wallpapers if it can
 run all live wallpapers, with no limitations on functionality, at a reasonable
@@ -1576,9 +1667,9 @@
 OpenGL contexts because the live wallpaper use of an OpenGL context may
 conflict with other applications that also use an OpenGL context.</p>
 
-<p>Device implementations capable of running live wallpapers reliably as described
-above SHOULD implement live wallpapers, and when implemented MUST report the
-platform feature flag android.software.live_wallpaper.</p>
+<p>Device implementations capable of running live wallpapers reliably as
+described above SHOULD implement live wallpapers, and when implemented MUST
+report the platform feature flag android.software.live_wallpaper.</p>
 
 <h3 id="3_8_8_activity_switching">3.8.8. Activity Switching</h3>
 
@@ -1589,51 +1680,65 @@
 </div>
 
 
-<p>The upstream Android source code includes the overview screen [<a href="http://developer.android.com/guide/components/recents.html">Resources, 37</a>], a system-level user interface for task switching and displaying recently
-accessed activities and tasks using a thumbnail image of the application&rsquo;s
-graphical state at the moment the user last left the application. Device
-implementations including the recents function navigation key as detailed in <a href="#7_2_3_navigation_keys">section 7.2.3</a>, MAY alter the interface but MUST meet the following requirements:</p>
+<p>The upstream Android source code includes the
+<a href="http://developer.android.com/guide/components/recents.html">overview
+screen</a>, a system-level user interface for task switching and displaying
+recently accessed activities and tasks using a thumbnail image of the
+application&rsquo;s graphical state at the moment the user last left the
+application. Device implementations including the recents function navigation
+key as detailed in <a href="#7_2_3_navigation_keys">section 7.2.3</a> MAY alter
+the interface but MUST meet the following requirements:</p>
 
 <ul>
   <li>MUST display affiliated recents as a group that moves together.</li>
   <li>MUST support at least up to 20 displayed activities.</li>
   <li>MUST at least display the title of 4 activities at a time.</li>
   <li>SHOULD display highlight color, icon, screen title in recents.</li>
-  <li>MUST implement the screen pinning behavior [<a href="http://developer.android.com/about/versions/android-5.0.html#ScreenPinning">Resources, 38</a>] and provide the user with a settings menu to toggle the feature.</li>
+  <li>MUST implement the
+  <a href="http://developer.android.com/about/versions/android-5.0.html#ScreenPinning">screen
+  pinning behavior</a>] and provide the user with a settings menu to toggle the
+  feature.</li>
   <li>SHOULD display a closing affordance ("x") but MAY delay this until user
-interacts with screens.</li>
+  interacts with screens.</li>
 </ul>
 
-<p>Device implementations are STRONGLY RECOMMENDED to use the upstream Android user
-interface (or a similar thumbnail-based interface) for the overview screen.</p>
+<p>Device implementations are STRONGLY RECOMMENDED to use the upstream Android
+user interface (or a similar thumbnail-based interface) for the overview screen.
+</p>
 
 <h3 id="3_8_9_input_management">3.8.9. Input Management</h3>
 
 
-<p>Android includes support for Input Management and support for third-party input
-method editors [<a href="http://developer.android.com/guide/topics/text/creating-input-method.html">Resources, 39</a>]. Device implementations that allow users to use third-party input methods on
-the device MUST declare the platform feature android.software.input_methods and
-support IME APIs as defined in the Android SDK documentation.</p>
+<p>Android includes support for
+<a href="http://developer.android.com/guide/topics/text/creating-input-method.html">Input
+Management</a> and support for third-party input method editors. Device
+implementations that allow users to use third-party input methods on the device
+MUST declare the platform feature android.software.input_methods and support IME
+APIs as defined in the Android SDK documentation.</p>
 
-<p>Device implementations that declare the android.software.input_methods feature
-MUST provide a user-accessible mechanism to add and configure third-party input
-methods. Device implementations MUST display the settings interface in response
-to the android.settings.INPUT_METHOD_SETTINGS intent.</p>
+<p>Device implementations that declare the
+android.software.input_methods feature MUST provide a user-accessible mechanism
+to add and configure third-party input methods. Device implementations MUST
+display the settings interface in response to the
+android.settings.INPUT_METHOD_SETTINGS intent.</p>
 
 <h3 id="3_8_10_lock_screen_media_control">3.8.10. Lock Screen Media Control</h3>
 
 
 <p>The Remote Control Client API is deprecated from Android 5.0 in favor of the
-Media Notification Template that allows media applications to integrate with
-playback controls that are displayed on the lock screen [<a href="http://developer.android.com/reference/android/app/Notification.MediaStyle.html">Resources, 40</a>].
-Device implementations that support a lock screen, unless an Android Automotive or Watch
-implementation, MUST display the Lockscreen Notifications including the Media Notification
-Template.</p>
+<a href="http://developer.android.com/reference/android/app/Notification.MediaStyle.html">Media
+Notification Template</a> that allows media applications to integrate with
+playback controls that are displayed on the lock screen. Device implementations
+that support a lock screen, unless an Android Automotive or Watch
+implementation, MUST display the Lockscreen Notifications including the Media
+Notification Template.</p>
 
 <h3 id="3_8_11_dreams">3.8.11. Dreams</h3>
 
 
-<p>Android includes support for interactive screensavers called Dreams [<a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">Resources, 41</a>]. Dreams allows users to interact with applications when a device connected to
+<p>Android includes support for interactive screensavers called
+<a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">Dreams</a>.
+Dreams allows users to interact with applications when a device connected to
 a power source is idle or docked in a desk dock. Android Watch devices MAY
 implement Dreams, but other types of device implementations SHOULD include
 support for Dreams and provide a settings option for users to configure Dreams
@@ -1642,121 +1747,127 @@
 <h3 id="3_8_12_location">3.8.12. Location</h3>
 
 
-<p>When a device has a hardware sensor (e.g. GPS) that is capable of providing the
-location coordinates, location modes MUST be displayed in the Location menu
-within Settings [<a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">Resources, 42</a>].</p>
+<p>When a device has a hardware sensor (e.g. GPS) that is capable of providing
+the location coordinates,
+<a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">location
+modes</a> MUST be displayed in the Location menu within Settings.</p>
 
 <h3 id="3_8_13_unicode_and_font">3.8.13. Unicode and Font</h3>
 
 
 <p>Android includes support for color emoji characters. When Android device
 implementations include an IME, devices SHOULD provide an input method to the
-user for the Emoji characters defined in Unicode 6.1 [<a href="http://www.unicode.org/versions/Unicode6.1.0/">Resources, 43</a>]. All devices MUST be capable of rendering these emoji characters in color glyph.</p>
+user for the Emoji characters defined in
+<a href="http://www.unicode.org/versions/Unicode6.1.0/">Unicode 6.1</a>. All
+devices MUST be capable of rendering these emoji characters in color glyph.</p>
 
 <p>Android includes support for Roboto 2 font with different
-weights&mdash;sans-serif-thin, sans-serif-light, sans-serif-medium, sans-serif-black,
-sans-serif-condensed, sans-serif-condensed-light&mdash;which MUST all be included for
-the languages available on the device and full Unicode 7.0 coverage of Latin,
-Greek, and Cyrillic, including the Latin Extended A, B, C, and D ranges, and
-all glyphs in the currency symbols block of Unicode 7.0.</p>
+weights&mdash;sans-serif-thin, sans-serif-light, sans-serif-medium,
+sans-serif-black, sans-serif-condensed, sans-serif-condensed-light&mdash;which
+MUST all be included for the languages available on the device and full Unicode
+7.0 coverage of Latin, Greek, and Cyrillic, including the Latin Extended A, B,
+C, and D ranges, and all glyphs in the currency symbols block of Unicode 7.0.
+</p>
 
 <h2 id="3_9_device_administration">3.9. Device Administration</h2>
 
 <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, 44</a>].
-Device implementations MUST provide an implementation of the DevicePolicyManager class
-[<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">Resources, 45</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, 44</a>]
-and report the platform feature android.software.device_admin.</p>
+policies or performing remote wipe, through the
+<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Android
+Device Administration API</a>]. Device implementations MUST provide an
+implementation of the <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">DevicePolicyManager</a>
+class. Device implementations that include support for PIN (numeric) or PASSWORD
+(alphanumeric) based lock screens MUST support the full range of
+<a href="http://developer.android.com/guide/topics/admin/device-admin.html">device
+administration</a> policies defined in the Android SDK documentation and report
+the platform feature android.software.device_admin.</p>
 
 <h3 id="3_9_1_device_provisioning">3.9.1 Device Provisioning</h3>
+
 <h4 id="3_9_1_1_device_owner_provisioning">3.9.1.1 Device owner provisioning</h4>
-<p>If a device implementation declares the android.software.device_admin feature,
-the out of box setup flow MUST make it possible to enroll a Device Policy
-Controller (DPC) application as the Device Owner app
-[<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)">
-Resources, 46</a>]. Device implementations MAY have a preinstalled application
+<p>If a device implementation declares the android.software.device_admin
+feature, the out of box setup flow MUST make it possible to enroll a Device
+Policy Controller (DPC) application as the
+<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)">Device
+Owner app</a>. Device implementations MAY have a preinstalled application
 performing device administration functions but this application MUST NOT be set
 as the Device Owner app without explicit consent or action from the user or the
 administrator of the device.</p>
 
 <p>The device owner provisioning process (the flow initiated by
-android.app.action.PROVISION_MANAGED_DEVICE
-[<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE">
-Resources, 47</a>]) user experience MUST align with the AOSP implementation</p>
+<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE">android.app.action.PROVISION_MANAGED_DEVICE</a>)
+user experience MUST align with the AOSP implementation.</p>
 
 <p>If the device implementation reports android.hardware.nfc, it MUST have NFC
-enabled, even during the out-of-box setup flow, in order to allow for NFC
-provisioning of Device owners
-[<a href="https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc">Resources, 48</a>].
-</p>
+enabled, even during the out-of-box setup flow, in order to allow for
+<a href="https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc">NFC
+provisioning of Device owners</a>.</p>
 
-<h4 id="3_9_1_2_managed_profile_provisioning">3.9.1.2 Managed profile provisioning</h4>
+<h4 id="3_9_1_2_managed_profile_provisioning">3.9.1.2 Managed profile
+provisioning</h4>
 <p>If a device implementation declares the android.software.managed_users,
 it MUST be possible to enroll a Device Policy Controller (DPC) application
-as the owner of a new Managed Profile
-[<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp(java.lang.String)">
-Resources, 49</a>]</p>
+as the
+<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp(java.lang.String)">owner
+of a new Managed Profile</a>.</p>
 
 <p>The managed profile provisioning process (the flow initiated by
-android.app.action.PROVISION_MANAGED_PROFILE
-[<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">
-Resources, 50</a>]) user experience MUST align with the AOSP implementation
-</p>
+<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">android.app.action.PROVISION_MANAGED_PROFILE</a>)
+user experience MUST align with the AOSP implementation.</p>
 
 
 <h2 id="3_9_2_managed_profile_support">3.9.2 Managed Profile Support</h2>
 
 <p>Managed profile capable devices are those devices that:</p>
 <ul>
-  <li>Declare android.software.device_admin (see <a href="#3_9_device_administration">section 3.9 Device Administration)</a></li>
-  <li>Are not low RAM devices (see <a href="#7_6_1_minimum_memory_and_storage">section 7.6.1</a></li>
+  <li>Declare android.software.device_admin (see
+  <a href="#3_9_device_administration">section 3.9 Device Administration</a>).
+  </li>
+  <li>Are not low RAM devices (see
+  <a href="#7_6_1_minimum_memory_and_storage">section 7.6.1</a>).</li>
   <li>Allocate internal (non-removable) storage as shared storage (see
-    <a href="#7_6_2_application_shared_storage">section 7.6.2</a>)</li>
+  <a href="#7_6_2_application_shared_storage">section 7.6.2</a>).</li>
 </ul>
 <p>Managed profile capable devices MUST:</p>
 <ul>
   <li>Declare the platform feature flag android.software.managed_users.</li>
-  <li>Support managed profiles via the android.app.admin.DevicePolicyManager APIs</li>
-  <li>Allow one and only one managed profile to be created [<a
-href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">Resources,
-50</a>]</li>
+  <li>Support managed profiles via the android.app.admin.DevicePolicyManager APIs.</li>
+  <li>Allow one and only
+  <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">one
+  managed profile to be created</a>.</li>
   <li>Use an icon badge (similar to the AOSP upstream work badge) to represent
-the managed applications and widgets and other badged UI elements like Recents
-&amp; Notifications</li>
+  the managed applications and widgets and other badged UI elements like Recents
+  &amp; Notifications.</li>
   <li>Display a notification icon (similar to the AOSP upstream work badge) to
-indicate when user is within a managed profile application</li>
-  <li>Display a toast indicating that the user is in the managed profile if and when the
-device wakes up (ACTION_USER_PRESENT) and the foreground application is within
-the managed profile</li>
+  indicate when user is within a managed profile application.</li>
+  <li>Display a toast indicating that the user is in the managed profile if and
+  when the device wakes up (ACTION_USER_PRESENT) and the foreground application
+  is within the managed profile.</li>
   <li>Where a managed profile exists, show a visual affordance in the Intent
-'Chooser' to allow the user to forward the intent from the managed profile to
-the primary user or vice versa, if enabled by the Device Policy Controller</li>
-  <li>Where a managed profile exists, expose the following user affordances for both
-the primary user and the managed profile:
-    <ul>
-      <li>Separate accounting for battery, location, mobile data and storage usage
-      for the primary user and managed profile.</li>
-      <li>Independent management of VPN Applications installed within the primary
-      user or managed profile.</li>
-      <li>Independent management of applications installed within the primary user
-      user or managed profile.</li>
-      <li>Independent management of accounts within the primary user or managed
-      profile.</li>
-    </ul>
+  'Chooser' to allow the user to forward the intent from the managed profile to
+  the primary user or vice versa, if enabled by the Device Policy Controller.
+  </li>
+  <li>Where a managed profile exists, expose the following user affordances for
+  both the primary user and the managed profile:
+  <ul>
+    <li>Separate accounting for battery, location, mobile data and storage usage
+    for the primary user and managed profile.</li>
+    <li>Independent management of VPN Applications installed within the primary
+    user or managed profile.</li>
+    <li>Independent management of applications installed within the primary user
+    or managed profile.</li>
+    <li>Independent management of accounts within the primary user or managed
+    profile.</li>
+  </ul>
   </li>
   <li>Ensure the default dialer can look up caller information from the managed
-profile (if one exists) alongside those from the primary profile, if the Device
-Policy Controller permits it.</li>
-  <li>MUST ensure that it satisfies all the security requirements applicable for a device
-    with multiple users enabled (see <a href="#9_5_multi-user_support">section 9.5</a>),
-    even though the managed profile is not counted as another user in addition to the
-    primary user.</li>
+  profile (if one exists) alongside those from the primary profile, if the
+  Device Policy Controller permits it.</li>
+  <li>MUST ensure that it satisfies all the security requirements applicable for
+  a device with multiple users enabled (see
+  <a href="#9_5_multi-user_support">section 9.5</a>), even though the managed
+  profile is not counted as another user in addition to the primary user.</li>
 </ul>
 
 <h2 id="3_10_accessibility">3.10. Accessibility</h2>
@@ -1764,75 +1875,80 @@
 
 <p>Android provides an accessibility layer that helps users with disabilities to
 navigate their devices more easily. In addition, Android provides platform APIs
-that enable accessibility service implementations to receive callbacks for user
-and system events and generate alternate feedback mechanisms, such as
-text-to-speech, haptic feedback, and trackball/d-pad navigation [<a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html">Resources, 51</a>].</p>
+that enable
+<a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html">accessibility
+service implementations</a> to receive callbacks for user and system events and
+generate alternate feedback mechanisms, such as text-to-speech, haptic feedback,
+and trackball/d-pad navigation.</p>
 
 <p>Device implementations include the following requirements:</p>
 
 <ul>
-<li>Android Automotive implementations SHOULD provide an implementation of the
-Android accessibility framework consistent with the default Android
-implementation.</li>
-<li>Device implementations (Android Automotive excluded) MUST provide an
-implementation of the Android accessibility framework consistent with the
-default Android implementation.</li>
-<li>Device implementations (Android Automotive excluded) MUST support
-third-party accessibility service implementations through the
-android.accessibilityservice APIs
-[<a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">Resources, 52</a>]</li>
-<li>Device implementations (Android Automotive excluded) MUST generate
-AccessibilityEvents and deliver these events to all registered
-AccessibilityService implementations in a manner consistent with the default
-Android implementation</li>
-<li> Device implementations (Android Automotive and Android Watch devices with
-no audio output excluded), MUST provide a user-accessible mechanism to enable
-and disable accessibility services, and MUST display this interface in response
-to the android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS intent.</li>
+  <li>Android Automotive implementations SHOULD provide an implementation of the
+  Android accessibility framework consistent with the default Android
+  implementation.</li>
+  <li>Device implementations (Android Automotive excluded) MUST provide an
+  implementation of the Android accessibility framework consistent with the
+  default Android implementation.</li>
+  <li>Device implementations (Android Automotive excluded) MUST support
+  third-party accessibility service implementations through the
+  <a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">android.accessibilityservice APIs</a>.
+  </li>
+  <li>Device implementations (Android Automotive excluded) MUST generate
+  AccessibilityEvents and deliver these events to all registered
+  AccessibilityService implementations in a manner consistent with the default
+  Android implementation</li>
+  <li>Device implementations (Android Automotive and Android Watch devices with
+  no audio output excluded), MUST provide a user-accessible mechanism to enable
+  and disable accessibility services, and MUST display this interface in
+  response to the android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS
+  intent.</li>
 </ul>
 
 <p>Additionally, device implementations SHOULD provide an implementation of an
 accessibility service on the device, and SHOULD provide a mechanism for users
 to enable the accessibility service during device setup. An open source
-implementation of an accessibility service is available from the Eyes Free
-project [<a href="http://code.google.com/p/eyes-free/">Resources, 53</a>].</p>
+implementation of an accessibility service is available from the
+<a href="http://code.google.com/p/eyes-free/">Eyes Free project</a>.</p>
 
 <h2 id="3_11_text-to-speech">3.11. Text-to-Speech</h2>
 
 
 <p>Android includes APIs that allow applications to make use of text-to-speech
 (TTS) services and allows service providers to provide implementations of TTS
-services [<a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">Resources, 54</a>]. Device implementations reporting the feature android.hardware.audio.output
-MUST meet these requirements related to the Android TTS framework. </p>
+services. Device implementations reporting the feature
+android.hardware.audio.output MUST meet these requirements related to the
+<a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">Android
+TTS framework</a>.</p>
 
 <p>Android Automotive implementations:</p>
 <ul>
-<li>MUST support the Android TTS framework APIs.</li>
-<li>MAY support installation of third-party TTS engines. If supported, partners
-MUST provide a user-accessible interface that allows the user to select a TTS
-engine for use at system level.</li>
+  <li>MUST support the Android TTS framework APIs.</li>
+  <li>MAY support installation of third-party TTS engines. If supported,
+  partners MUST provide a user-accessible interface that allows the user to
+  select a TTS engine for use at system level.</li>
 </ul>
 
 <p>All other device implementations:</p>
 
 <ul>
-  <li> MUST support the Android TTS framework APIs and SHOULD include a TTS engine
-supporting the languages available on the device. Note that the upstream
-Android open source software includes a full-featured TTS engine
-implementation.
-  <li> MUST support installation of third-party TTS engines
-  <li> MUST provide a user-accessible interface that allows users to select a TTS
-engine for use at the system level
+  <li>MUST support the Android TTS framework APIs and SHOULD include a TTS
+  engine supporting the languages available on the device. Note that the
+  upstream Android open source software includes a full-featured TTS engine
+  implementation.
+  <li>MUST support installation of third-party TTS engines.
+  <li>MUST provide a user-accessible interface that allows users to select a TTS
+  engine for use at the system level.
 </ul>
 
 <h2 id="3_12_tv_input_framework">3.12. TV Input Framework</h2>
 
 
-<p>The Android Television Input Framework (TIF) simplifies the delivery of live
-content to Android Television devices. TIF provides a standard API to create
-input modules that control Android Television devices. Android Television
-device implementations MUST support TV Input Framework
-[<a href="http://source.android.com/devices/tv/index.html">Resources, 55</a>].</p>
+<p>The <a href="http://source.android.com/devices/tv/index.html">Android
+Television Input Framework (TIF)</a> simplifies the delivery of live content to
+Android Television devices. TIF provides a standard API to create input modules
+that control Android Television devices. Android Television device
+implementations MUST support TV Input Framework.</p>
 
 <p>Device implementations that support TIF MUST declare the platform feature
 android.software.live_tv.</p>
@@ -1840,44 +1956,45 @@
 <h3 id="3_12_1_tv_app">3.12.1. TV App</h3>
 
 <p>Any device implementation that declares support for Live TV MUST have an
-installed TV application (TV App). The Android Open Source Project provides an implementation of the TV
-App.</p>
+installed TV application (TV App). The Android Open Source Project provides an
+implementation of the TV App.</p>
 
-<p>The TV App MUST provide facilities to install and use TV Channels
-[<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html">Resources, 56</a>]
- and meet the following requirements:</p>
+<p>The TV App MUST provide facilities to install and use
+<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html">TV
+Channels</a> and meet the following requirements:</p>
 
 <ul>
-  <li>Device implementations MUST allow third-party TIF-based inputs (third-party inputs)
-[<a href="https://source.android.com/devices/tv/index.html#third-party_input_example">Resources, 57</a>]
- to be installed and managed.
+  <li>Device implementations MUST allow third-party TIF-based inputs
+  (<a href="https://source.android.com/devices/tv/index.html#third-party_input_example">third-party
+  inputs</a>) to be installed and managed.</li>
   <li>Device implementations MAY provide visual separation between pre-installed
- TIF-based inputs (installed inputs)
-[<a href="https://source.android.com/devices/tv/index.html#tv_inputs">Resources, 58</a>]
- and third-party inputs.
-  <li>The device implementations MUST 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).
+  <a href="https://source.android.com/devices/tv/index.html#tv_inputs">TIF-based
+  inputs</a> (installed inputs) and third-party inputs.</li>
+  <li>Device implementations MUST 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).</li>
 </ul>
 
-<h4 id="3_12_1_1_electronic_program_guide">3.12.1.1. Electronic Program Guide</h4>
+<h4 id="3_12_1_1_electronic_program_guide">3.12.1.1. Electronic Program
+Guide</h4>
 
 <p>Android Television device implementations MUST show an informational and
 interactive overlay, which MUST include an electronic program guide (EPG)
-generated from the values in the TvContract.Programs fields
-[<a href="https://developer.android.com/reference/android/media/tv/TvContract.Programs.html">Resources, 59</a>].
- The EPG MUST meet the following requirements:</p>
+generated from the values in the
+<a href="https://developer.android.com/reference/android/media/tv/TvContract.Programs.html">TvContract.Programs</a>
+fields. The EPG MUST meet the following requirements:</p>
 
 <ul>
   <li>The EPG MUST display information from all installed inputs and third-party
-inputs.
+  inputs.</li>
   <li>The EPG MAY provide visual separation between the installed inputs and
-third-party inputs.
-  <li>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
-more than a single navigation action away from the installed inputs on the EPG.
+  third-party inputs.</li>
+  <li>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 more than a single navigation action away from the
+  installed inputs on the EPG.</li>
   <li>On channel change, device implementations MUST display EPG data for the
-currently playing program.
+  currently playing program.</li>
 </ul>
 
 <h4 id="3_12_1_2_navigation">3.12.1.2. Navigation</h4>
@@ -1891,20 +2008,29 @@
 
 <h4 id="3_12_1_3_tv_input_app_linking">3.12.1.3. TV input app linking</h4>
 
-<p>Android Television device implementations MUST support TV input app linking,
-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)
-[<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI">Resources, 60</a>].
- The TV App MUST show TV input app linking when it is provided.</p>
+<p>Android Television device implementations MUST support
+<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI">TV
+input app linking</a>, 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). The TV App MUST show TV input app linking when it is provided.
+</p>
 
-<h1 id="4_application_packaging_compatibility">4. Application Packaging Compatibility</h1>
+<h1 id="4_application_packaging_compatibility">4. Application Packaging
+Compatibility</h1>
 
 
-<p>Device implementations MUST install and run Android &ldquo;.apk&rdquo; files as generated
-by the &ldquo;aapt&rdquo; tool included in the official Android SDK [<a href="http://developer.android.com/tools/help/index.html">Resources, 61</a>].</p>
+<p>Device implementations MUST install and run Android &ldquo;.apk&rdquo; files
+as generated by the &ldquo;aapt&rdquo; tool included in the
+<a href="http://developer.android.com/tools/help/index.html">official Android
+SDK</a>.</p>
 
-<p>Devices implementations MUST NOT extend either the .apk [<a href="http://developer.android.com/guide/components/fundamentals.html">Resources, 62</a>], Android Manifest [<a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">Resources, 49</a>], Dalvik bytecode [<a href="https://android.googlesource.com/platform/dalvik/">Resources, 23</a>], or RenderScript bytecode formats in such a way that would prevent those
-files from installing and running correctly on other compatible devices.</p>
+<p>Devices implementations MUST NOT extend either the
+<a href="http://developer.android.com/guide/components/fundamentals.html">.apk</a>,
+<a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">Android
+Manifest</a>, <a href="https://android.googlesource.com/platform/dalvik/">Dalvik
+bytecode</a>, or RenderScript bytecode formats in such a way that would prevent
+those files from installing and running correctly on other compatible devices.
+</p>
 
 <h1 id="5_multimedia_compatibility">5. Multimedia Compatibility</h1>
 
@@ -1912,17 +2038,16 @@
 <h2 id="5_1_media_codecs">5.1. Media Codecs</h2>
 
 
-<p>Device implementations MUST support the core media formats specified in the
-Android SDK documentation [<a href="http://developer.android.com/guide/appendix/media-formats.html">Resources, 64</a>]
-except where explicitly permitted in this document. Specifically, device
-implementations MUST support the media formats, encoders, decoders, file types,
-and container formats defined in the tables below and reported via MediaCodecList
-[<a href="http://developer.android.com/reference/android/media/MediaCodecList.html">Resources, 65</a>].
-Device implementations MUST also be able to decode all profiles reported in its CamcorderProfile
-[<a href="http://developer.android.com/reference/android/media/CamcorderProfile.html">Resources,
-66</a>] and MUST be able to decode all formats it can encode.
-
-All of these codecs are
+<p>Device implementations MUST support the
+<a href="http://developer.android.com/guide/appendix/media-formats.html">core
+media formats</a> specified in the Android SDK documentation except where
+explicitly permitted in this document. Specifically, device implementations MUST
+support the media formats, encoders, decoders, file types, and container formats
+defined in the tables below and reported via
+<a href="http://developer.android.com/reference/android/media/MediaCodecList.html">MediaCodecList</a>.
+Device implementations MUST also be able to decode all profiles reported in its
+<a href="http://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>
+and MUST be able to decode all formats it can encode. All of these codecs are
 provided as software implementations in the preferred Android implementation
 from the Android Open Source Project.</p>
 
@@ -1948,22 +2073,23 @@
 (AAC LC)</td>
     <td>REQUIRED<sup>1</sup></td>
     <td>REQUIRED</td>
-    <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard sampling rates from 8 to
-48 kHz.</td>
+    <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard
+    sampling rates from 8 to 48 kHz.</td>
     <td>
     <ul>
     <li class="table_list">3GPP (.3gp)</li>
     <li class="table_list">MPEG-4 (.mp4, .m4a)</li>
-    <li class="table_list">ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not
-supported)</li>
-    <li class="table_list">MPEG-TS (.ts, not seekable, Android 3.0+)</li></ul></td>
+    <li class="table_list">ADTS raw AAC (.aac, decode in Android 3.1+, encode in
+    Android 4.0+, ADIF not supported)</li>
+    <li class="table_list">MPEG-TS (.ts, not seekable, Android 3.0+)</li></ul>
+    </td>
  </tr>
  <tr>
     <td>MPEG-4 HE AAC Profile (AAC+)</td>
     <td>REQUIRED<sup>1</sup><br>(Android 4.1+)</td>
     <td>REQUIRED</td>
-    <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard sampling rates from 16
-to 48 kHz.</td>
+    <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard
+    sampling rates from 16 to 48 kHz.</td>
     <td></td>
  </tr>
  <tr>
@@ -1972,8 +2098,8 @@
 Profile (enhanced AAC+)</td>
     <td> </td>
     <td>REQUIRED</td>
-    <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard sampling rates from 16
-to 48 kHz.</td>
+    <td>Support for mono/stereo/5.0/5.1<sup>2</sup> content with standard
+    sampling rates from 16 to 48 kHz.</td>
     <td></td>
  </tr>
  <tr>
@@ -1984,7 +2110,8 @@
     <td>REQUIRED<br />
 
 (Android 4.1+)</td>
-    <td>Support for mono/stereo content with standard sampling rates from 16 to 48 kHz.</td>
+    <td>Support for mono/stereo content with standard sampling rates from 16 to
+    48 kHz.</td>
     <td></td>
  </tr>
  <tr>
@@ -2005,10 +2132,10 @@
     <td>FLAC</td>
     <td></td>
     <td>REQUIRED <br>(Android 3.1+)</td>
-    <td>Mono/Stereo (no multichannel). Sample rates up to 48 kHz (but up to 44.1 kHz is
-RECOMMENDED on devices with 44.1 kHz output, as the 48 to 44.1 kHz downsampler
-does not include a low-pass filter). 16-bit RECOMMENDED; no dither applied for
-24-bit.</td>
+    <td>Mono/Stereo (no multichannel). Sample rates up to 48 kHz (but up to 44.1
+    kHz is RECOMMENDED on devices with 44.1 kHz output, as the 48 to 44.1 kHz
+    downsampler does not include a low-pass filter). 16-bit RECOMMENDED; no
+    dither applied for 24-bit.</td>
     <td>FLAC (.flac) only</td>
  </tr>
  <tr>
@@ -2023,7 +2150,7 @@
     <td></td>
     <td>REQUIRED</td>
     <td>MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for
-ringtone formats RTTTL/RTX, OTA, and iMelody</td>
+    ringtone formats RTTTL/RTX, OTA, and iMelody</td>
     <td><ul>
     <li class="table_list">Type 0 and 1 (.mid, .xmf, .mxmf)</li>
     <li class="table_list">RTTTL/RTX (.rtttl, .rtx)</li>
@@ -2044,8 +2171,8 @@
     <td>REQUIRED<sup>4</sup><br> (Android 4.1+)</td>
     <td>REQUIRED</td>
     <td>16-bit linear PCM (rates up to limit of hardware). Devices MUST support
-sampling rates for raw PCM recording at 8000, 11025, 16000, and 44100 Hz
-frequencies.</td>
+    sampling rates for raw PCM recording at 8000, 11025, 16000, and 44100 Hz
+    frequencies.</td>
     <td>WAVE (.wav)</td>
  </tr>
  <tr>
@@ -2058,16 +2185,18 @@
 </table>
 
 
-<p class="table_footnote"> 1 Required for device implementations that define android.hardware.microphone
-but optional for Android Watch device implementations.</p>
+<p class="table_footnote"> 1 Required for device implementations that define
+android.hardware.microphone but optional for Android Watch device
+implementations.</p>
 
-<p class="table_footnote">2 Only downmix of 5.0/5.1 content is required; recording or rendering more than
-2 channels is optional.</p>
+<p class="table_footnote">2 Only downmix of 5.0/5.1 content is required;
+recording or rendering more than 2 channels is optional.</p>
 
-<p class="table_footnote">3 Required for Android Handheld device implementations. </p>
+<p class="table_footnote">3 Required for Android Handheld device
+implementations.</p>
 
-<p class="table_footnote">4 Required for device implementations that define android.hardware.microphone,
-including Android Watch device implementations.</p>
+<p class="table_footnote">4 Required for device implementations that define
+android.hardware.microphone, including Android Watch device implementations.</p>
 
 <h3 id="5_1_2_image_codecs">5.1.2. Image Codecs</h3>
 
@@ -2140,11 +2269,13 @@
     <td>H.264 AVC</td>
     <td>REQUIRED<sup>2</sup></td>
     <td>REQUIRED<sup>2</sup></td>
-    <td>See <a href="#5_2_video_encoding">section 5.2 </a>and <a href="#5_3_video_decoding">5.3</a> for details</td>
+    <td>See <a href="#5_2_video_encoding">section 5.2 </a>and
+    <a href="#5_3_video_decoding">5.3</a> for details</td>
     <td><ul>
     <li class="table_list">3GPP (.3gp)</li>
     <li class="table_list">MPEG-4 (.mp4)</li>
-    <li class="table_list">MPEG-2 TS (.ts, AAC audio only, not seekable, Android 3.0+)</li></ul></td>
+    <li class="table_list">MPEG-2 TS (.ts, AAC audio only, not seekable, Android
+    3.0+)</li></ul></td>
  </tr>
  <tr>
     <td>H.265 HEVC</td>
@@ -2155,7 +2286,7 @@
  </tr>
 <tr>
   <td>MPEG-2</td>
-  <td></td>  
+  <td></td>
   <td>STRONGLY RECOMMENDED<sup>6</sup></td>
   <td>Main Profile</td>
   <td>MPEG2-TS</td>
@@ -2175,10 +2306,13 @@
     <td>REQUIRED<sup>2</sup><br />
 
 (Android 2.3.3+)</td>
-    <td>See <a href="#5_2_video_encoding">section 5.2</a> and <a href="#5_3_video_decoding">5.3</a> for details</td>
+    <td>See <a href="#5_2_video_encoding">section 5.2</a> and
+    <a href="#5_3_video_decoding">5.3</a> for details</td>
     <td><ul>
-    <li class="table_list">WebM (.webm) [<a href="http://www.webmproject.org/">Resources, 67</a></li>
-    <li class="table_list">Matroska (.mkv, Android 4.0+)<sup>4</sup></li></ul></td>
+    <li class="table_list"><a href="http://www.webmproject.org/">WebM
+    (.webm)</a></li>
+    <li class="table_list">Matroska (.mkv, Android 4.0+)<sup>4</sup></li></ul>
+    </td>
  </tr>
  <tr>
     <td>VP9</td>
@@ -2186,26 +2320,35 @@
     <td>REQUIRED<sup>2</sup><br> (Android 4.4+)</td>
     <td>See <a href="#5_3_video_decoding">section 5.3</a> for details</td>
     <td><ul>
-    <li class="table_list">WebM (.webm) [<a href="http://www.webmproject.org/">Resources, 67</a>]</li>
-    <li class="table_list">Matroska (.mkv, Android 4.0+)<sup>4</sup></li></ul></td>
+    <li class="table_list"><a href="http://www.webmproject.org/">WebM
+    (.webm)</a></li>
+    <li class="table_list">Matroska (.mkv, Android 4.0+)<sup>4</sup></li></ul>
+    </td>
  </tr>
 </table>
 
 
-<p class="table_footnote">1 Required for device implementations that include camera hardware and define
-android.hardware.camera or android.hardware.camera.front.</p>
+<p class="table_footnote">1 Required for device implementations that include
+camera hardware and define android.hardware.camera or
+android.hardware.camera.front.</p>
 
-<p class="table_footnote">2 Required for device implementations except Android Watch devices. </p>
+<p class="table_footnote">2 Required for device implementations except Android
+Watch devices. </p>
 
-<p class="table_footnote">3 For acceptable quality of web video streaming and video-conference services,
-device implementations SHOULD use a hardware VP8 codec that meets the
-requirements in [<a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">Resources, 68</a>].</p>
+<p class="table_footnote">3 For acceptable quality of web video streaming and
+video-conference services, device implementations SHOULD use a hardware VP8
+codec that meets the
+<a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">requirements</a>.
+</p>
 
-<p class="table_footnote">4 Device implementations SHOULD support writing Matroska WebM files.</p>
+<p class="table_footnote">4 Device implementations SHOULD support writing
+Matroska WebM files.</p>
 
-<p class="table_footnote">5 STRONGLY RECOMMENDED for Android Automotive, optional for Android Watch, and required for all other device types.</p>
+<p class="table_footnote">5 STRONGLY RECOMMENDED for Android Automotive,
+optional for Android Watch, and required for all other device types.</p>
 
-<p class="table_footnote">6 Applies only to Android Television device implementations.</p>
+<p class="table_footnote">6 Applies only to Android Television device
+implementations.</p>
 
 <h2 id="5_2_video_encoding">5.2. Video Encoding</h2>
 
@@ -2213,13 +2356,14 @@
 <p>Video codecs are optional for Android Watch device implementations.</p>
 </div>
 
-<p>Android device implementations with H.263 encoders, MUST support Baseline Profile Level 45.</p>
+<p>Android device implementations with H.263 encoders MUST support Baseline
+Profile Level 45.</p>
 
-<p>Android device implementations with H.264 codec support, MUST support Baseline
+<p>Android device implementations with H.264 codec support MUST support Baseline
 Profile Level 3 and the following SD (Standard Definition) video encoding
 profiles and SHOULD support Main Profile Level 4 and the following HD (High
-Definition) video encoding profiles. Android Television devices are STRONGLY RECOMMENDED
-to encode HD 1080p video at 30 fps.</p>
+Definition) video encoding profiles. Android Television devices are STRONGLY
+RECOMMENDED to encode HD 1080p video at 30 fps.</p>
 <table>
  <tr>
     <th></th>
@@ -2252,12 +2396,12 @@
 </table>
 
 
-<p class="table_footnote">1 When supported by hardware, but STRONGLY RECOMMENDED for Android Television
-devices.</p>
+<p class="table_footnote">1 When supported by hardware, but STRONGLY RECOMMENDED
+for Android Television devices.</p>
 
-<p>Android device implementations with VP8 codec support MUST support the SD video
-encoding profiles and SHOULD support the following HD (High Definition) video
-encoding profiles.</p>
+<p>Android device implementations with VP8 codec support MUST support the SD
+video encoding profiles and SHOULD support the following HD (High Definition)
+video encoding profiles.</p>
 <table>
  <tr>
     <th></th>
@@ -2302,13 +2446,13 @@
 VP9, H.264, and H.265 codecs in real time and up to the maximum resolution
 supported on the device.</p>
 
-<p>Android device implementations with H.263 decoders, MUST support Baseline
+<p>Android device implementations with H.263 decoders MUST support Baseline
 Profile Level 30.</p>
 
-<p>Android device implementations with MPEG-4 decoders, MUST support Simple
+<p>Android device implementations with MPEG-4 decoders MUST support Simple
 Profile Level 3.</p>
 
-<p>Android device implementations with H.264 decoders, MUST support Main Profile
+<p>Android device implementations with H.264 decoders MUST support Main Profile
 Level 3.1 and the following SD video decoding profiles and SHOULD support the
 HD decoding profiles. Android Television devices MUST support High Profile
 Level 4.2 and the HD 1080p decoding profile.</p>
@@ -2347,11 +2491,13 @@
 <p class="table_footnote">1 REQUIRED for when the height as reported by the
 Display.getSupportedModes() method is not smaller than the video resolution.</p>
 
-<p class="table_footnote">2 REQUIRED for Android Television device implementations.</p>
+<p class="table_footnote">2 REQUIRED for Android Television device
+implementations.</p>
 
-<p>Android device implementations when supporting VP8 codec as described in <a href="#5_1_3_video_codecs">section 5.1.3</a>, MUST support the following SD decoding profiles and SHOULD support the HD
-decoding profiles. Android Television devices MUST support the HD 1080p
-decoding profile.  </p>
+<p>Android device implementations, when supporting VP8 codec as described in
+<a href="#5_1_3_video_codecs">section 5.1.3</a>, MUST support the following SD
+decoding profiles and SHOULD support the HD decoding profiles. Android
+Television devices MUST support the HD 1080p decoding profile.</p>
 <table>
  <tr>
     <th></th>
@@ -2386,13 +2532,16 @@
 <p class="table_footnote">1 REQUIRED for when the height as reported by the
 Display.getSupportedModes() method is not smaller than the video resolution.</p>
 
-<p class="table_footnote">2 REQUIRED for Android Television device implementations.</p>
+<p class="table_footnote">2 REQUIRED for Android Television device
+implementations.</p>
 
-<p>Android device implementations, when supporting VP9 codec as described in <a href="#5_1_3_video_codecs">section 5.1.3</a>, MUST support the following SD video decoding profiles and SHOULD support the
-HD decoding profiles. Android Television devices are STRONGLY RECOMMENDED to
-support the HD 1080p decoding profile and SHOULD support the UHD decoding
-profile. When the UHD video decoding profile is supported, it MUST support 8-bit
-color depth and SHOULD support VP9 Profile 2 (10-bit).</p>
+<p>Android device implementations, when supporting VP9 codec as described in
+<a href="#5_1_3_video_codecs">section 5.1.3</a>, MUST support the following SD
+video decoding profiles and SHOULD support the HD decoding profiles. Android
+Television devices are STRONGLY RECOMMENDED to support the HD 1080p decoding
+profile and SHOULD support the UHD decoding profile. When the UHD video decoding
+profile is supported, it MUST support 8-bit color depth and SHOULD support VP9
+Profile 2 (10-bit).</p>
 <table>
  <tr>
     <th></th>
@@ -2429,17 +2578,19 @@
 </table>
 
 
-<p class="table_footnote">1 Required for Android Television device implementations, but for other type of
-devices only when supported by hardware.</p>
+<p class="table_footnote">1 Required for Android Television device
+implementations, but for other type of devices only when supported by hardware.
+</p>
 
-<p class="table_footnote">2 STRONGLY RECOMMENDED for existing Android Television device implementations when
-supported by hardware.</p>
+<p class="table_footnote">2 STRONGLY RECOMMENDED for existing Android Television
+device implementations when supported by hardware.</p>
 
-<p>Android device implementations, when supporting H.265 codec as described in <a href="#5_1_3_video_codecs">section 5.1.3</a>, MUST support the Main Profile Level 3 Main tier and the following SD video
-decoding profiles and SHOULD support the HD decoding profiles. Android
-Television devices MUST support the Main Profile Level 4.1 Main tier and the HD
-1080p decoding profile and SHOULD support Main10 Level 5 Main Tier profile and
-the UHD decoding profile.</p>
+<p>Android device implementations, when supporting H.265 codec as described in
+<a href="#5_1_3_video_codecs">section 5.1.3</a>, MUST support the Main Profile
+Level 3 Main tier and the following SD video decoding profiles and SHOULD
+support the HD decoding profiles. Android Television devices MUST support the
+Main Profile Level 4.1 Main tier and the HD 1080p decoding profile and SHOULD
+support Main10 Level 5 Main Tier profile and the UHD decoding profile.</p>
 <table>
  <tr>
     <th></th>
@@ -2476,20 +2627,21 @@
 </table>
 
 
-<p class="table_footnote">1 Required for Android Television device implementations, but for other type of
-devices only when supported by hardware.</p>
+<p class="table_footnote">1 Required for Android Television device
+implementations, but for other type of devices only when supported by hardware.
+</p>
 
-<p class="table_footnote">2 STRONGLY RECOMMENDED
-for existing Android Television device implementations when supported by hardware.</p>
+<p class="table_footnote">2 STRONGLY RECOMMENDED for existing Android Television
+device implementations when supported by hardware.</p>
 
 <h2 id="5_4_audio_recording">5.4. Audio Recording</h2>
 
 
 <p>While some of the requirements outlined in this section are stated as SHOULD
 since Android 4.3, the Compatibility Definition for a future version is planned
-to change these to MUST. Existing and new Android devices are <strong>STRONGLY RECOMMENDED</strong>
-to meet these requirements, or they will not be able to attain Android compatibility when upgraded
-to the future version.</p>
+to change these to MUST. Existing and new Android devices are <strong>STRONGLY
+RECOMMENDED</strong> to meet these requirements, or they will not be able to
+attain Android compatibility when upgraded to the future version.</p>
 
 <h3 id="5_4_1_raw_audio_capture">5.4.1. Raw Audio Capture</h3>
 
@@ -2515,12 +2667,13 @@
   <li><strong>Channels</strong>: Stereo
 </ul>
 
-<p>If capture for the above sample rates is supported,
-then the capture MUST be done without up-sampling at any ratio higher than 16000:22050
-or 44100:48000.
-Any up-sampling or down-sampling MUST include an appropriate anti-aliasing filter.</p>
+<p>If capture for the above sample rates is supported, then the capture MUST be
+done without up-sampling at any ratio higher than 16000:22050 or 44100:48000.
+Any up-sampling or down-sampling MUST include an appropriate anti-aliasing
+filter.</p>
 
-<h3 id="5_4_2_capture_for_voice_recognition">5.4.2. Capture for Voice Recognition</h3>
+<h3 id="5_4_2_capture_for_voice_recognition">5.4.2. Capture for Voice
+Recognition</h3>
 
 
 <p>In addition to the above recording specifications, when an application has
@@ -2529,24 +2682,25 @@
 
 <ul>
   <li>The device SHOULD exhibit approximately flat amplitude versus frequency
-characteristics: specifically, &plusmn;3 dB, from 100 Hz to 4000 Hz.
-  <li>Audio input sensitivity SHOULD be set such that a 90 dB sound power level (SPL)
-source at 1000 Hz yields RMS of 2500 for 16-bit samples.
-  <li>PCM amplitude levels SHOULD linearly track input SPL changes over at least a 30
-dB range from -18 dB to +12 dB re 90 dB SPL at the microphone.
-  <li>Total harmonic distortion SHOULD be less than 1% for 1 kHz at 90 dB SPL input
-level at the microphone.
-  <li>Noise reduction processing, if present, MUST be disabled.
-  <li>Automatic gain control, if present, MUST be disabled
+  characteristics: specifically, &plusmn;3 dB, from 100 Hz to 4000 Hz.</li>
+  <li>Audio input sensitivity SHOULD be set such that a 90 dB sound power level
+  (SPL) source at 1000 Hz yields RMS of 2500 for 16-bit samples.</li>
+  <li>PCM amplitude levels SHOULD linearly track input SPL changes over at least
+  a 30 dB range from -18 dB to +12 dB re 90 dB SPL at the microphone.</li>
+  <li>Total harmonic distortion SHOULD be less than 1% for 1 kHz at 90 dB SPL
+  input level at the microphone.</li>
+  <li>Noise reduction processing, if present, MUST be disabled.</li>
+  <li>Automatic gain control, if present, MUST be disabled.</li>
 </ul>
 
 <p>If the platform supports noise suppression technologies tuned for speech
 recognition, the effect MUST be controllable from the
 android.media.audiofx.NoiseSuppressor API. Moreover, the UUID field for the
-noise suppressor&rsquo;s effect descriptor MUST uniquely identify each implementation
-of the noise suppression technology.</p>
+noise suppressor&rsquo;s effect descriptor MUST uniquely identify each
+implementation of the noise suppression technology.</p>
 
-<h3 id="5_4_3_capture_for_rerouting_of_playback">5.4.3. Capture for Rerouting of Playback</h3>
+<h3 id="5_4_3_capture_for_rerouting_of_playback">5.4.3. Capture for Rerouting of
+Playback</h3>
 
 
 <p>The android.media.MediaRecorder.AudioSource class includes the REMOTE_SUBMIX
@@ -2564,8 +2718,8 @@
 <h2 id="5_5_audio_playback">5.5. Audio Playback</h2>
 
 
-<p>Device implementations that declare android.hardware.audio.output MUST conform
-to the requirements in this section.</p>
+<p>Device implementations that declare android.hardware.audio.output MUST
+conform to the requirements in this section.</p>
 
 <h3 id="5_5_1_raw_audio_playback">5.5.1. Raw Audio Playback</h3>
 
@@ -2575,7 +2729,8 @@
 
 <ul>
   <li><strong>Format</strong>: Linear PCM, 16-bit</li>
-  <li><strong>Sampling rates</strong>: 8000, 11025, 16000, 22050, 32000, 44100</li>
+  <li><strong>Sampling rates</strong>: 8000, 11025, 16000, 22050, 32000,
+  44100</li>
   <li><strong>Channels</strong>: Mono, Stereo</li>
 </ul>
 
@@ -2589,19 +2744,21 @@
 <h3 id="5_5_2_audio_effects">5.5.2. Audio Effects</h3>
 
 
-<p>Android provides an API for audio effects for device implementations [<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">Resources, 69</a>]. Device implementations that declare the feature
-android.hardware.audio.output:</p>
+<p>Android provides an
+<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">API
+for audio effects</a> for device implementations. Device implementations that
+declare the feature android.hardware.audio.output:</p>
 
 <ul>
   <li>MUST support the EFFECT_TYPE_EQUALIZER and EFFECT_TYPE_LOUDNESS_ENHANCER
-implementations controllable through the AudioEffect subclasses Equalizer,
-LoudnessEnhancer.</li>
+  implementations controllable through the AudioEffect subclasses Equalizer,
+  LoudnessEnhancer.</li>
   <li>MUST support the visualizer API implementation, controllable through the
-Visualizer class.</li>
+  Visualizer class.</li>
   <li>SHOULD support the EFFECT_TYPE_BASS_BOOST, EFFECT_TYPE_ENV_REVERB,
-EFFECT_TYPE_PRESET_REVERB, and EFFECT_TYPE_VIRTUALIZER implementations
-controllable through the AudioEffect sub-classes BassBoost,
-EnvironmentalReverb, PresetReverb, and Virtualizer.</li>
+  EFFECT_TYPE_PRESET_REVERB, and EFFECT_TYPE_VIRTUALIZER implementations
+  controllable through the AudioEffect sub-classes BassBoost,
+  EnvironmentalReverb, PresetReverb, and Virtualizer.</li>
 </ul>
 
 <h3 id="5_5_3_audio_output_volume">5.5.3. Audio Output Volume</h3>
@@ -2622,30 +2779,36 @@
 <p>For the purposes of this section, use the following definitions:</p>
 
 <ul>
-  <li><strong>output latency</strong>. The interval between when an application writes a frame of PCM-coded data and
-when the corresponding sound can be heard by an external listener or observed
-by a transducer.</li>
-  <li><strong>cold output latency</strong>. The output latency for the first frame, when the audio output system has been
-idle and powered down prior to the request.</li>
-  <li><strong>continuous output latency</strong>. The output latency for subsequent frames, after the device is playing audio.</li>
-  <li><strong>input latency</strong>. The interval between when an external sound is presented to the device and
-when an application reads the corresponding frame of PCM-coded data.</li>
-  <li><strong>cold input latency</strong>. The sum of lost input time and the input latency for the first frame, when the
-audio input system has been idle and powered down prior to the request.</li>
-  <li><strong>continuous input latency</strong>. The input latency for subsequent frames, while the device is capturing audio.</li>
-  <li><strong>cold output jitter</strong>. The variance among separate measurements of cold output latency values.</li>
-  <li><strong>cold input jitter</strong>. The variance among separate measurements of cold input latency values.</li>
-  <li><strong>continuous round-trip latency</strong>. The sum of continuous input latency plus continuous output latency plus
-  one buffer period.
-  The buffer period term allows processing time for the app and for the app to
-  mitigate phase difference between input and output streams.
-  </li>
-  <li><strong>OpenSL ES PCM buffer queue API</strong>. The set of PCM-related OpenSL ES APIs within Android NDK; see
-NDK_root/docs/opensles/index.html.</li>
+  <li><strong>output latency</strong>. The interval between when an application
+  writes a frame of PCM-coded data and when the corresponding sound can be heard
+  by an external listener or observed by a transducer.</li>
+  <li><strong>cold output latency</strong>. The output latency for the first
+  frame, when the audio output system has been idle and powered down prior to
+  the request.</li>
+  <li><strong>continuous output latency</strong>. The output latency for
+  subsequent frames, after the device is playing audio.</li>
+  <li><strong>input latency</strong>. The interval between when an external
+  sound is presented to the device and when an application reads the
+  corresponding frame of PCM-coded data.</li>
+  <li><strong>cold input latency</strong>. The sum of lost input time and the
+  input latency for the first frame, when the audio input system has been idle
+  and powered down prior to the request.</li>
+  <li><strong>continuous input latency</strong>. The input latency for
+  subsequent frames, while the device is capturing audio.</li>
+  <li><strong>cold output jitter</strong>. The variance among separate
+  measurements of cold output latency values.</li>
+  <li><strong>cold input jitter</strong>. The variance among separate
+  measurements of cold input latency values.</li>
+  <li><strong>continuous round-trip latency</strong>. The sum of continuous
+  input latency plus continuous output latency plus one buffer period. The
+  buffer period term allows processing time for the app and for the app to
+  mitigate phase difference between input and output streams.</li>
+  <li><strong>OpenSL ES PCM buffer queue API</strong>. The set of PCM-related
+  OpenSL ES APIs within Android NDK; see NDK_root/docs/opensles/index.html.</li>
 </ul>
 
-<p>Device implementations that declare android.hardware.audio.output are STRONGLY RECOMMENDED to meet
-or exceed these audio output requirements:</p>
+<p>Device implementations that declare android.hardware.audio.output are
+STRONGLY RECOMMENDED to meet or exceed these audio output requirements:</p>
 
 <ul>
   <li>cold output latency of 100 milliseconds or less</li>
@@ -2656,13 +2819,15 @@
 <p>If a device implementation meets the requirements of this section after any
 initial calibration when using the OpenSL ES PCM buffer queue API, for
 continuous output latency and cold output latency over at least one supported
-audio output device, it is STRONGLY RECOMMENDED to report support for low-latency audio, by reporting
-the feature android.hardware.audio.low_latency via the
-android.content.pm.PackageManager class [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>]. Conversely, if the device implementation does not meet these requirements it
-MUST NOT report support for low-latency audio.</p>
+audio output device, it is STRONGLY RECOMMENDED to report support for
+low-latency audio, by reporting the feature android.hardware.audio.low_latency
+via the
+<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a>
+class. Conversely, if the device implementation does not meet these requirements
+it MUST NOT report support for low-latency audio.</p>
 
-<p>Device implementations that include android.hardware.microphone are STRONGLY RECOMMENDED to meet
-these input audio requirements:</p>
+<p>Device implementations that include android.hardware.microphone are STRONGLY
+RECOMMENDED to meet these input audio requirements:</p>
 
 <ul>
   <li>cold input latency of 100 milliseconds or less</li>
@@ -2674,13 +2839,18 @@
 <h2 id="5_7_network_protocols">5.7. Network Protocols</h2>
 
 
-<p>Devices MUST support the media network protocols for audio and video playback
-as specified in the Android SDK documentation [<a href="http://developer.android.com/guide/appendix/media-formats.html">Resources, 64</a>]. Specifically, devices MUST support the following media network protocols:</p>
+<p>Devices MUST support the
+<a href="http://developer.android.com/guide/appendix/media-formats.html">media
+network protocols</a> for audio and video playback as specified in the Android
+SDK documentation. Specifically, devices MUST support the following media
+network protocols:</p>
 
 <ul>
   <li>RTSP (RTP, SDP)</li>
   <li>HTTP(S) progressive streaming</li>
-  <li>HTTP(S) Live Streaming draft protocol, Version 3 [<a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-03">Resources, 71</a>]</li>
+  <li>HTTP(S)
+  <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-03">Live
+  Streaming draft protocol, Version 3</a></li>
 </ul>
 
 <h2 id="5_8_secure_media">5.8. Secure Media</h2>
@@ -2700,15 +2870,13 @@
 
 <h2 id="5_9_midi">5.9. Musical Instrument Digital Interface (MIDI)</h2>
 
-<p>
-If a device implementation supports the inter-app MIDI software transport
-(virtual MIDI devices), and it supports MIDI over
-<em>all</em> of the following MIDI-capable hardware transports
-for which it provides generic non-MIDI connectivity, it is STRONGLY RECOMMENDED to report
-support for feature android.software.midi via the
-android.content.pm.PackageManager class
-[<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>].
-</p>
+<p>If a device implementation supports the inter-app MIDI software transport
+(virtual MIDI devices), and it supports MIDI over <em>all</em> of the following
+MIDI-capable hardware transports for which it provides generic non-MIDI
+connectivity, it is STRONGLY RECOMMENDED to report support for feature
+android.software.midi via the
+<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a>
+class.</p>
 
 <p>The MIDI-capable hardware transports are:</p>
 <ul>
@@ -2716,141 +2884,116 @@
   <li>USB peripheral mode (section 7.7 USB)</li>
 </ul>
 
-<p>
-Conversely, if the device implementation provides generic non-MIDI connectivity over a particular
-MIDI-capable hardware transport listed above, but does not support MIDI over that hardware transport,
-it MUST NOT report support for feature android.software.midi.
-</p>
+<p>Conversely, if the device implementation provides generic non-MIDI
+connectivity over a particular MIDI-capable hardware transport listed above, but
+does not support MIDI over that hardware transport, it MUST NOT report support
+for feature android.software.midi.</p>
 
-<p>
-MIDI over Bluetooth LE acting in central role (section 7.4.3 Bluetooth)
-is in trial use status.  A device implementation that reports
+<p>MIDI over Bluetooth LE acting in central role (section 7.4.3 Bluetooth) is in
+trial use status.  A device implementation that reports
 feature android.software.midi, and which provides generic non-MIDI connectivity
-over Bluetooth LE, SHOULD support MIDI over Bluetooth LE.
-</p>
+over Bluetooth LE, SHOULD support MIDI over Bluetooth LE.</p>
 
 <h2 id="5_10_pro_audio">5.10. Professional Audio</h2>
 
-<p>
-If a device implementation meets <em>all</em> of the following requirements,
-it is STRONGLY RECOMMENDED to report support for feature android.hardware.audio.pro via the
-android.content.pm.PackageManager class
-[<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>].
-</p>
+<p>If a device implementation meets <em>all</em> of the following requirements,
+it is STRONGLY RECOMMENDED to report support for feature
+android.hardware.audio.pro via the
+<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a>
+class.</p>
 
 <ul>
-
-<li>
-The device implementation MUST report support for feature android.hardware.audio.low_latency.
-</li>
-
-<li> The continuous round-trip audio latency, as defined in section 5.6 Audio Latency,
-MUST be 20 milliseconds or less and SHOULD be 10 milliseconds or less over at least one
-supported path.
-</li>
-
-<li>
-If the device includes a 4 conductor 3.5mm audio jack,
-the continuous round-trip audio latency MUST be 20 milliseconds or less over the audio jack path,
-and SHOULD be 10 milliseconds or less over at the audio jack path.
-</li>
-
-<li>
-The device implementation MUST include a USB port(s) supporting USB host mode and
-USB peripheral mode.
-</li>
-
-<li>
-The USB host mode MUST implement the USB audio class.
-</li>
-
-<li>
-If the device includes an HDMI port, the device implementation
-MUST support output in stereo and eight channels
-at 20-bit or 24-bit depth and 192 kHz without bit-depth loss or resampling.
-</li>
-
-<li>
-The device implementation MUST report support for feature android.software.midi.
-</li>
-
-<li>
-If the device includes a 4 conductor 3.5mm audio jack,
-the device implementation is STRONGLY RECOMMENDED to comply with section
-<a href="https://source.android.com/accessories/headset/specification.html#mobile_device_jack_specifications">Mobile device (jack) specifications</a>
-of the
-<a href="https://source.android.com/accessories/headset/specification.html">Wired Audio Headset Specification (v1.1)</a>.
-</li>
-
+  <li>The device implementation MUST report support for feature
+  android.hardware.audio.low_latency.</li>
+  <li>The continuous round-trip audio latency, as defined in section 5.6 Audio
+  Latency, MUST be 20 milliseconds or less and SHOULD be 10 milliseconds or less
+  over at least one supported path.</li>
+  <li>If the device includes a 4 conductor 3.5mm audio jack, the continuous
+  round-trip audio latency MUST be 20 milliseconds or less over the audio jack
+  path, and SHOULD be 10 milliseconds or less over at the audio jack path.</li>
+  <li>The device implementation MUST include a USB port(s) supporting USB host
+  mode and USB peripheral mode.</li>
+  <li>The USB host mode MUST implement the USB audio class.</li>
+  <li>If the device includes an HDMI port, the device implementation MUST
+  support output in stereo and eight channels at 20-bit or 24-bit depth and 192
+  kHz without bit-depth loss or resampling.</li>
+  <li>The device implementation MUST report support for feature
+  android.software.midi.</li>
+  <li>If the device includes a 4 conductor 3.5mm audio jack, the device
+  implementation is STRONGLY RECOMMENDED to comply with section
+  <a href="https://source.android.com/accessories/headset/specification.html#mobile_device_jack_specifications">Mobile
+  device (jack) specifications</a> of the
+  <a href="https://source.android.com/accessories/headset/specification.html">Wired
+  Audio Headset Specification (v1.1)</a>.</li>
 </ul>
 
-<h1 id="6_developer_tools_and_options_compatibility">6. Developer Tools and Options Compatibility</h1>
+<h1 id="6_developer_tools_and_options_compatibility">6. Developer Tools and
+Options Compatibility</h1>
 
 <h2 id="6_1_developer_tools">6.1. Developer Tools</h2>
 
-<p>Device implementations MUST support the Android Developer Tools provided in the
-Android SDK. Android compatible devices MUST be compatible with:</p>
+<p>Device implementations MUST support the Android Developer Tools provided in
+the Android SDK. Android compatible devices MUST be compatible with:</p>
 
 <ul>
-  <li><strong>Android Debug Bridge (adb)</strong> [<a href="http://developer.android.com/tools/help/adb.html">Resources, 72</a>]</li>
+  <li><a href="http://developer.android.com/tools/help/adb.html"><strong>Android
+  Debug Bridge (adb)</strong></a>
+  <ul>
+    <li>Device implementations MUST support all adb functions as documented in
+    the Android SDK including
+    <a href="https://source.android.com/devices/input/diagnostics.html">dumpsys</a>.
+    </li>
+    <li>The device-side adb daemon MUST be inactive by default and there MUST be
+    a user-accessible mechanism to turn on the Android Debug Bridge. If a device
+    implementation omits USB peripheral mode, it MUST implement the Android
+    Debug Bridge via local-area network (such as Ethernet or 802.11).</li>
+    <li>Android includes support for secure adb. Secure adb enables adb on known
+    authenticated hosts. Device implementations MUST support secure adb.</li>
+  </ul></li>
+  <li><a href="http://developer.android.com/tools/debugging/ddms.html"><strong>Dalvik
+  Debug Monitor Service (ddms)</strong></a>
+  <ul>
+    <li>Device implementations MUST support all ddms features as documented in
+    the Android SDK.</li>
+    <li>As ddms uses adb, support for ddms SHOULD be inactive by default, but
+    MUST be supported whenever the user has activated the Android Debug Bridge,
+    as above.</li>
+  </ul></li>
+  <li><a href="http://developer.android.com/tools/help/monkey.html"><strong>Monkey</strong></a>.
+  Device implementations MUST include the Monkey framework, and make it
+  available for applications to use.</li>
+  <li><a href="http://developer.android.com/tools/help/systrace.html"><strong>SysTrace</strong></a>
+  <ul>
+    <li>Device implementations MUST support systrace tool as documented in the
+    Android SDK. Systrace must be inactive by default, and there MUST be a
+    user-accessible mechanism to turn on Systrace.</li>
+    <li>Most Linux-based systems and Apple Macintosh systems recognize Android
+    devices using the standard Android SDK tools, without additional support;
+    however Microsoft Windows systems typically require a driver for new Android
+    devices. (For instance, new vendor IDs and sometimes new device IDs require
+    custom USB drivers for Windows systems.)</li>
+    <li>If a device implementation is unrecognized by the adb tool as provided
+    in the standard Android SDK, device implementers MUST provide Windows
+    drivers allowing developers to connect to the device using the adb protocol.
+    These drivers MUST be provided for Windows XP, Windows Vista, Windows 7,
+    Windows 8, and Windows 10 in both 32-bit and 64-bit versions.</li>
+    </ul></li>
 </ul>
 
-<p>Device implementations MUST support all adb functions as documented in the
-Android SDK including dumpsys [<a href="https://source.android.com/devices/input/diagnostics.html">Resources, 73</a>]. The device-side adb daemon MUST be inactive by default and there MUST be a
-user-accessible mechanism to turn on the Android Debug Bridge. If a device
-implementation omits USB peripheral mode, it MUST implement the Android Debug
-Bridge via local-area network (such as Ethernet or 802.11). </p>
-
-<p>Android includes support for secure adb. Secure adb enables adb on known
-authenticated hosts. Device implementations MUST support secure adb.</p>
-
-<ul>
-  <li><strong>Dalvik Debug Monitor Service (ddms)</strong> [<a href="http://developer.android.com/tools/debugging/ddms.html">Resources, 74</a>]</li>
-</ul>
-
-<p>Device implementations MUST support all ddms features as documented in the
-Android SDK. As ddms uses adb, support for ddms SHOULD be inactive by default,
-but MUST be supported whenever the user has activated the Android Debug Bridge,
-as above.</p>
-
-<ul>
-  <li><strong>Monkey</strong> [<a href="http://developer.android.com/tools/help/monkey.html">Resources, 75</a>]</li>
-</ul>
-
-<p>Device implementations MUST include the Monkey framework, and make it available
-for applications to use.</p>
-
-<ul>
-  <li><strong>SysTrace</strong> [<a href="http://developer.android.com/tools/help/systrace.html">Resources, 76</a>]</li>
-</ul>
-
-<p>Device implementations MUST support systrace tool as documented in the Android
-SDK. Systrace must be inactive by default, and there MUST be a user-accessible
-mechanism to turn on Systrace.</p>
-
-<p>Most Linux-based systems and Apple Macintosh systems recognize Android devices
-using the standard Android SDK tools, without additional support; however
-Microsoft Windows systems typically require a driver for new Android devices.
-(For instance, new vendor IDs and sometimes new device IDs require custom USB
-drivers for Windows systems.) If a device implementation is unrecognized by the
-adb tool as provided in the standard Android SDK, device implementers MUST
-provide Windows drivers allowing developers to connect to the device using the
-adb protocol. These drivers MUST be provided for Windows XP, Windows Vista,
-Windows 7, Windows 8 and Windows 10 in both 32-bit and 64-bit versions.
-</p>
-
 <h2 id="6_2_developer_options">6.2. Developer Options</h2>
 
 
 <p>Android includes support for developers to configure application
 development-related settings. Device implementations MUST honor the
-android.settings.APPLICATION_DEVELOPMENT_SETTINGS intent to show application
-development-related settings [<a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">Resources, 77</a>]. The upstream Android implementation hides the Developer Options menu by
-default and enables users to launch Developer Options after pressing seven (7)
-times on the <strong>Settings</strong> > <strong>About Device</strong> > <strong>Build Number</strong> menu item. Device implementations MUST provide a consistent experience for
-Developer Options. Specifically, device implementations MUST hide Developer
-Options by default and MUST provide a mechanism to enable Developer Options
-that is consistent with the upstream Android implementation.</p>
+<a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">android.settings.APPLICATION_DEVELOPMENT_SETTINGS</a>
+intent to show application development-related settings The upstream Android
+implementation hides the Developer Options menu by default and enables users to
+launch Developer Options after pressing seven (7) times on the
+<strong>Settings</strong> > <strong>About Device</strong> > <strong>Build
+Number</strong> menu item. Device implementations MUST provide a consistent
+experience for Developer Options. Specifically, device implementations MUST hide
+Developer Options by default and MUST provide a mechanism to enable Developer
+Options that is consistent with the upstream Android implementation.</p>
 
 <h1 id="7_hardware_compatibility">7. Hardware Compatibility</h1>
 
@@ -2862,46 +3005,53 @@
 device implementation does not possess that component:</p>
 
 <ul>
-  <li>Complete class definitions (as documented by the SDK) for the component APIs
-MUST still be presented.
-  <li>The API&rsquo;s behaviors MUST be implemented as no-ops in some reasonable fashion.
-  <li>API methods MUST return null values where permitted by the SDK documentation.
-  <li>API methods MUST return no-op implementations of classes where null values are
-not permitted by the SDK documentation.
-  <li>API methods MUST NOT throw exceptions not documented by the SDK documentation.
+  <li>Complete class definitions (as documented by the SDK) for the component
+  APIs MUST still be presented.</li>
+  <li>The API&rsquo;s behaviors MUST be implemented as no-ops in some reasonable
+  fashion.</li>
+  <li>API methods MUST return null values where permitted by the SDK
+  documentation.</li>
+  <li>API methods MUST return no-op implementations of classes where null values
+  are not permitted by the SDK documentation.</li>
+  <li>API methods MUST NOT throw exceptions not documented by the SDK
+  documentation.</li>
 </ul>
 
-<p>A typical example of a scenario where these requirements apply is the telephony
-API: even on non-phone devices, these APIs must be implemented as reasonable
-no-ops.</p>
+<p>A typical example of a scenario where these requirements apply is the
+telephony API: Even on non-phone devices, these APIs must be implemented as
+reasonable no-ops.</p>
 
-<p>Device implementations MUST consistently report accurate hardware configuration
-information via the getSystemAvailableFeatures() and hasSystemFeature(String)
-methods on the android.content.pm.PackageManager class for the same build
-fingerprint. [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>]</p>
+<p>Device implementations MUST consistently report accurate hardware
+configuration information via the getSystemAvailableFeatures() and
+hasSystemFeature(String) methods on the
+<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a>
+class for the same build fingerprint.</p>
 
 <h2 id="7_1_display_and_graphics">7.1. Display and Graphics</h2>
 
 
-<p>Android includes facilities that automatically adjust application assets and UI
-layouts appropriately for the device, to ensure that third-party applications
-run well on a variety of hardware configurations [<a href="http://developer.android.com/guide/practices/screens_support.html">Resources, 78</a>]. Devices MUST properly implement these APIs and behaviors, as detailed in
-this section.</p>
+<p>Android includes facilities that automatically adjust application assets and
+UI layouts appropriately for the device to ensure that third-party applications
+run well on a
+<a href="http://developer.android.com/guide/practices/screens_support.html">variety
+of hardware configurations</a>. Devices MUST properly implement these APIs and
+behaviors, as detailed in this section.</p>
 
 <p>The units referenced by the requirements in this section are defined as
 follows:</p>
 
 <ul>
-  <li><strong>physical diagonal size</strong>. The distance in inches between two opposing corners of the illuminated portion
-of the display.</li>
-  <li><strong>dots per inch (dpi)</strong>. The number of pixels encompassed by a linear horizontal or vertical span of
-1&rdquo;. Where dpi values are listed, both horizontal and vertical dpi must fall
-within the range.</li>
-  <li><strong>aspect ratio</strong>. The ratio of the pixels of the longer dimension
-  to the shorter dimension of the screen. For example, a display of 480x854 pixels
-  would be 854/480 = 1.779, or roughly &ldquo;16:9&rdquo;.</li>
-  <li><strong>density-independent pixel (dp)</strong> The virtual pixel unit normalized to a 160 dpi screen, calculated as: pixels =
-dps * (density/160).</li>
+  <li><strong>physical diagonal size</strong>. The distance in inches between
+  two opposing corners of the illuminated portion of the display.</li>
+  <li><strong>dots per inch (dpi)</strong>. The number of pixels encompassed by
+  a linear horizontal or vertical span of 1&rdquo;. Where dpi values are listed,
+  both horizontal and vertical dpi must fall within the range.</li>
+  <li><strong>aspect ratio</strong>. The ratio of the pixels of the longer
+  dimension to the shorter dimension of the screen. For example, a display of
+  480x854 pixels would be 854/480 = 1.779, or roughly &ldquo;16:9&rdquo;.</li>
+  <li><strong>density-independent pixel (dp)</strong>. The virtual pixel unit
+  normalized to a 160 dpi screen, calculated as: pixels = dps * (density/160).
+  </li>
 </ul>
 
 <h3 id="7_1_1_screen_configuration">7.1.1. Screen Configuration</h3>
@@ -2910,35 +3060,39 @@
 <h4 id="7_1_1_1_screen_size">7.1.1.1. Screen Size</h4>
 
 <div class="note">
-<p>Android Watch devices (detailed in <a href="#2_device_types">section 2</a>) MAY have smaller screen sizes as described in this section.</p>
+<p>Android Watch devices (detailed in <a href="#2_device_types">section 2</a>)
+MAY have smaller screen sizes as described in this section.</p>
 </div>
 
 <p>The Android UI framework supports a variety of different screen sizes, and
-allows applications to query the device screen size (aka &ldquo;screen layout") via
-android.content.res.Configuration.screenLayout with the SCREENLAYOUT_SIZE_MASK.
-Device implementations MUST report the correct screen size as defined in the
-Android SDK documentation [<a href="http://developer.android.com/guide/practices/screens_support.html">Resources, 78</a>] and determined by the upstream Android platform. Specifically, device
-implementations MUST report the correct screen size according to the following
-logical density-independent pixel (dp) screen dimensions.</p>
+allows applications to query the device screen size (aka &ldquo;screen layout")
+via android.content.res.Configuration.screenLayout with the
+SCREENLAYOUT_SIZE_MASK. Device implementations MUST report the correct
+<a href="http://developer.android.com/guide/practices/screens_support.html">screen
+size</a> as defined in the Android SDK documentation and determined by the
+upstream Android platform. Specifically, device implementations MUST report the
+correct screen size according to the following logical density-independent pixel
+(dp) screen dimensions.</p>
 
 <ul>
-  <li>Devices MUST have screen sizes of at least 426 dp x 320 dp (&lsquo;small&rsquo;), unless it
-is an Android Watch device.</li>
-  <li>Devices that report screen size &lsquo;normal&rsquo; MUST have screen sizes of at least 480
-dp x 320 dp.</li>
-  <li>Devices that report screen size &lsquo;large&rsquo; MUST have screen sizes of at least 640
-dp x 480 dp.</li>
-  <li>Devices that report screen size &lsquo;xlarge&rsquo; MUST have screen sizes of at least 960
-dp x 720 dp.</li>
+  <li>Devices MUST have screen sizes of at least 426 dp x 320 dp
+  (&lsquo;small&rsquo;), unless it is an Android Watch device.</li>
+  <li>Devices that report screen size &lsquo;normal&rsquo; MUST have screen
+  sizes of at least 480 dp x 320 dp.</li>
+  <li>Devices that report screen size &lsquo;large&rsquo; MUST have screen sizes
+  of at least 640 dp x 480 dp.</li>
+  <li>Devices that report screen size &lsquo;xlarge&rsquo; MUST have screen
+  sizes of at least 960 dp x 720 dp.</li>
 </ul>
 
-<p>In addition, </p>
+<p>In addition:</p>
 
 <ul>
-  <li>Android Watch devices MUST have a screen with the physical diagonal size in the
-range from 1.1 to 2.5 inches.</li>
-  <li>Other types of Android device implementations, with a physically integrated
-screen, MUST have a screen at least 2.5 inches in physical diagonal size.</li>
+  <li>Android Watch devices MUST have a screen with the physical diagonal size
+  in the range from 1.1 to 2.5 inches.</li>
+  <li>Other types of Android device implementations, with a physically
+  integrated screen, MUST have a screen at least 2.5 inches in physical diagonal
+  size.</li>
 </ul>
 
 <p>Devices MUST NOT change their reported screen size at any time.</p>
@@ -2998,8 +3152,10 @@
 
 
 <p>Device implementations MUST report correct values for all display metrics
-defined in android.util.DisplayMetrics [<a href="http://developer.android.com/reference/android/util/DisplayMetrics.html">Resources, 79</a>] and MUST report the same values regardless of whether the embedded or
-external screen is used as the default display.</p>
+defined in
+<a href="http://developer.android.com/reference/android/util/DisplayMetrics.html">android.util.DisplayMetrics</a>
+and MUST report the same values regardless of whether the embedded or external
+screen is used as the default display.</p>
 
 <h3 id="7_1_3_screen_orientation">7.1.3. Screen Orientation</h3>
 
@@ -3016,51 +3172,56 @@
 orientation. Device implementations MAY select either portrait or landscape
 orientation as the default.</p>
 
-<p>Devices MUST report the correct value for the device&rsquo;s current orientation,
-whenever queried via the android.content.res.Configuration.orientation,
+<p>Devices MUST report the correct value for the device&rsquo;s current
+orientation, whenever queried via the
+android.content.res.Configuration.orientation,
 android.view.Display.getOrientation(), or other APIs.</p>
 
 <p>Devices MUST NOT change the reported screen size or density when changing
 orientation.</p>
 
-<h3 id="7_1_4_2d_and_3d_graphics_acceleration">7.1.4. 2D and 3D Graphics Acceleration</h3>
+<h3 id="7_1_4_2d_and_3d_graphics_acceleration">7.1.4. 2D and 3D Graphics
+Acceleration</h3>
 
 
-<p>Device implementations MUST support both OpenGL ES 1.0 and 2.0, as embodied and
-detailed in the Android SDK documentations. Device implementations SHOULD
+<p>Device implementations MUST support both OpenGL ES 1.0 and 2.0, as embodied
+and detailed in the Android SDK documentations. Device implementations SHOULD
 support OpenGL ES 3.0 or 3.1 on devices capable of supporting it. Device
-implementations MUST also support Android RenderScript, as detailed in the
-Android SDK documentation [<a href="http://developer.android.com/guide/topics/renderscript/">Resources, 80</a>].</p>
+implementations MUST also support
+<a href="http://developer.android.com/guide/topics/renderscript/">Android
+RenderScript</a>, as detailed in the Android SDK documentation.</p>
 
 <p>Device implementations MUST also correctly identify themselves as supporting
 OpenGL ES 1.0, OpenGL ES 2.0, OpenGL ES 3.0 or OpenGL 3.1. That is:</p>
 
 <ul>
-  <li>The managed APIs (such as via the GLES10.getString() method) MUST report support
-for OpenGL ES 1.0 and OpenGL ES 2.0.</li>
+  <li>The managed APIs (such as via the GLES10.getString() method) MUST report
+  support for OpenGL ES 1.0 and OpenGL ES 2.0.</li>
   <li>The native C/C++ OpenGL APIs (APIs available to apps via libGLES_v1CM.so,
-libGLES_v2.so, or libEGL.so) MUST report support for OpenGL ES 1.0 and OpenGL
-ES 2.0.</li>
+  libGLES_v2.so, or libEGL.so) MUST report support for OpenGL ES 1.0 and OpenGL
+  ES 2.0.</li>
   <li>Device implementations that declare support for OpenGL ES 3.0 or 3.1 MUST
-support the corresponding managed APIs and include support for native C/C++
-APIs. On device implementations that declare support for OpenGL ES 3.0 or 3.1,
-libGLESv2.so MUST export the corresponding function symbols in addition to the
-OpenGL ES 2.0 function symbols.</li>
+  support the corresponding managed APIs and include support for native C/C++
+  APIs. On device implementations that declare support for OpenGL ES 3.0 or 3.1,
+  libGLESv2.so MUST export the corresponding function symbols in addition to the
+  OpenGL ES 2.0 function symbols.</li>
 </ul>
 
-<p>In addition to OpenGL ES 3.1, Android provides an extension pack with Java
-interfaces [<a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">Resources, 81</a>] and native support for advanced graphics functionality such as tessellation
-and the ASTC texture compression format. Android device implementations MAY
-support this extension pack, and&mdash;only if fully implemented&mdash;MUST identify the
-support through the android.hardware.opengles.aep feature flag.</p>
+<p>In addition to OpenGL ES 3.1, Android provides an
+<a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">extension
+pack</a> with Java interfaces  and native support for advanced graphics
+functionality such as tessellation and the ASTC texture compression format.
+Android device implementations MAY support this extension pack, and&mdash;only
+if fully implemented&mdash;MUST identify the support through the
+android.hardware.opengles.aep feature flag.</p>
 
 <p>Also, device implementations MAY implement any desired OpenGL ES extensions.
 However, device implementations MUST report via the OpenGL ES managed and
 native APIs all extension strings that they do support, and conversely MUST NOT
 report extension strings that they do not support.</p>
 
-<p>Note that Android includes support for applications to optionally specify that
-they require specific OpenGL texture compression formats. These formats are
+<p>Note that Android includes support for applications to optionally specify
+that they require specific OpenGL texture compression formats. These formats are
 typically vendor-specific. Device implementations are not required by Android
 to implement any specific texture compression format. However, they SHOULD
 accurately report any texture compression formats that they do support, via the
@@ -3069,15 +3230,18 @@
 <p>Android includes a mechanism for applications to declare that they want to
 enable hardware acceleration for 2D graphics at the Application, Activity,
 Window, or View level through the use of a manifest tag
-android:hardwareAccelerated or direct API calls [<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">Resources, 82</a>].</p>
+<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">android:hardwareAccelerated</a>
+or direct API calls.</p>
 
 <p>Device implementations MUST enable hardware acceleration by default, and MUST
 disable hardware acceleration if the developer so requests by setting
-android:hardwareAccelerated="false&rdquo; or disabling hardware acceleration directly
-through the Android View APIs.</p>
+android:hardwareAccelerated="false&rdquo; or disabling hardware acceleration
+directly through the Android View APIs.</p>
 
 <p>In addition, device implementations MUST exhibit behavior consistent with the
-Android SDK documentation on hardware acceleration [<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">Resources, 82</a>].</p>
+Android SDK documentation on
+<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">hardware
+acceleration</a>.</p>
 
 <p>Android includes a TextureView object that lets developers directly integrate
 hardware-accelerated OpenGL ES textures as rendering targets in a UI hierarchy.
@@ -3087,23 +3251,25 @@
 <p>Android includes support for EGL_ANDROID_RECORDABLE, an EGLConfig attribute
 that indicates whether the EGLConfig supports rendering to an ANativeWindow
 that records images to a video. Device implementations MUST support
-EGL_ANDROID_RECORDABLE extension [<a href="https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">Resources, 83</a>].</p>
+<a href="https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">EGL_ANDROID_RECORDABLE</a>
+extension.</p>
 
-<h3 id="7_1_5_legacy_application_compatibility_mode">7.1.5. Legacy Application Compatibility Mode</h3>
+<h3 id="7_1_5_legacy_application_compatibility_mode">7.1.5. Legacy Application
+Compatibility Mode</h3>
 
 
-<p>Android specifies a &ldquo;compatibility mode&rdquo; in which the framework operates in a
-'normal' screen size equivalent (320dp width) mode for the benefit of legacy
-applications not developed for old versions of Android that pre-date
+<p>Android specifies a &ldquo;compatibility mode&rdquo; in which the framework
+operates in a 'normal' screen size equivalent (320dp width) mode for the benefit
+of legacy applications not developed for old versions of Android that pre-date
 screen-size independence.</p>
 
 <ul>
-<li>Android Automotive does not support legacy compatibility mode.</li>
-<li>All other 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.</li>
+  <li>Android Automotive does not support legacy compatibility mode.</li>
+  <li>All other 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.</li>
 </ul>
 
 <h3 id="7_1_6_screen_technology">7.1.6. Screen Technology</h3>
@@ -3114,12 +3280,12 @@
 the Android SDK unless specifically allowed in this document. </p>
 
 <ul>
-  <li>Devices MUST support displays capable of rendering 16-bit color graphics and
-SHOULD support displays capable of 24-bit color graphics.</li>
+  <li>Devices MUST support displays capable of rendering 16-bit color graphics
+  and SHOULD support displays capable of 24-bit color graphics.</li>
   <li>Devices MUST support displays capable of rendering animations.</li>
-  <li>The display technology used MUST have a pixel aspect ratio (PAR) between 0.9
-and 1.15. That is, the pixel aspect ratio MUST be near square (1.0) with a 10 ~
-15% tolerance.</li>
+  <li>The display technology used MUST have a pixel aspect ratio (PAR) between
+  0.9 and 1.15. That is, the pixel aspect ratio MUST be near square (1.0) with a
+  10 ~ 15% tolerance.</li>
 </ul>
 
 <h3 id="7_1_7_external_displays">7.1.7. Secondary Displays</h3>
@@ -3129,7 +3295,8 @@
 capabilities and developer APIs for accessing external displays. If a device
 supports an external display either via a wired, wireless, or an embedded
 additional display connection then the device implementation MUST implement the
-display manager API as described in the Android SDK documentation [<a href="http://developer.android.com/reference/android/hardware/display/DisplayManager.html">Resources, 84</a>].</p>
+<a href="http://developer.android.com/reference/android/hardware/display/DisplayManager.html">display
+manager API</a> as described in the Android SDK documentation.</p>
 
 <h2 id="7_2_input_devices">7.2. Input Devices</h2>
 
@@ -3148,15 +3315,18 @@
 
 <ul>
   <li>MUST include support for the Input Management Framework (which allows
-third-party developers to create Input Method Editors&mdash;i.e. soft keyboard) as
-detailed at <a href="http://developer.android.com">http://developer.android.com</a>.</li>
-  <li>MUST provide at least one soft keyboard implementation (regardless of whether a
-hard keyboard is present) except for Android Watch devices where the screen
-size makes it less reasonable to have a soft keyboard.</li>
+  third-party developers to create Input Method Editors&mdash;i.e. soft
+  keyboard) as detailed at
+  <a href="http://developer.android.com">http://developer.android.com</a>.</li>
+  <li>MUST provide at least one soft keyboard implementation (regardless of
+  whether a hard keyboard is present) except for Android Watch devices where the
+  screen size makes it less reasonable to have a soft keyboard.</li>
   <li>MAY include additional soft keyboard implementations.</li>
   <li>MAY include a hardware keyboard.</li>
-  <li>MUST NOT include a hardware keyboard that does not match one of the formats
-specified in android.content.res.Configuration.keyboard [<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 85</a>] (QWERTY or 12-key).</li>
+  <li>MUST NOT include a hardware keyboard that does not match one of the
+  formats specified in
+  <a href="http://developer.android.com/reference/android/content/res/Configuration.html">android.content.res.Configuration.keyboard</a>
+  (QWERTY or 12-key).</li>
 </ul>
 
 <h3 id="7_2_2_non-touch_navigation">7.2.2. Non-touch Navigation</h3>
@@ -3169,13 +3339,14 @@
 
 <ul>
   <li>MAY omit a non-touch navigation option (trackball, d-pad, or wheel) if the
-device implementation is not an Android Television device.</li>
-  <li>MUST report the correct value for android.content.res.Configuration.navigation
-[<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 85</a>].</li>
+  device implementation is not an Android Television device.</li>
+  <li>MUST report the correct value for
+  <a href="http://developer.android.com/reference/android/content/res/Configuration.html">android.content.res.Configuration.navigation</a>.
+  </li>
   <li>MUST provide a reasonable alternative user interface mechanism for the
-selection and editing of text, compatible with Input Management Engines. The
-upstream Android open source implementation includes a selection mechanism
-suitable for use with devices that lack non-touch navigation inputs.</li>
+  selection and editing of text, compatible with Input Management Engines. The
+  upstream Android open source implementation includes a selection mechanism
+  suitable for use with devices that lack non-touch navigation inputs.</li>
 </ul>
 
 <h3 id="7_2_3_navigation_keys">7.2.3. Navigation Keys</h3>
@@ -3190,16 +3361,17 @@
 navigation paradigm and therefore:</p>
 
 <ul>
-  <li>Android Handheld device implementations MUST provide the Home, Recents, and
-Back functions.</li>
+  <li>Android Handheld device implementations MUST provide the Home, Recents,
+  and Back functions.</li>
   <li>Android Television device implementations MUST provide the Home and Back
-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>
+  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>
+  provide Back and Recent functions.</li>
   <li>All other types of device implementations MUST provide the Home and Back
-functions.</li>
+  functions.</li>
 </ul>
 
 <p>These functions MAY be implemented via dedicated physical buttons (such as
@@ -3209,60 +3381,63 @@
 accessible with a single action (e.g. tap, double-click or gesture) when
 visible.</p>
 
-<p>Recents function, if provided, MUST have a visible button or icon unless hidden
-together with other navigation functions in full-screen mode. This does not
-apply to devices upgrading from earlier Android versions that have physical
+<p>Recents function, if provided, MUST have a visible button or icon unless
+hidden together with other navigation functions in full-screen mode. This does
+not apply to devices upgrading from earlier Android versions that have physical
 buttons for navigation and no recents key.</p>
 
-<p> The Home and Back functions, if provided, MUST each have a visible button or
+<p>The Home and Back functions, if provided, MUST each have a visible button or
 icon unless hidden together with other navigation functions in full-screen mode
 or when the uiMode UI_MODE_TYPE_MASK is set to UI_MODE_TYPE_WATCH.</p>
 
 <p>The Menu function is deprecated in favor of action bar since Android 4.0.
-Therefore the new device implementations shipping with Android ANDROID_VERSION and later MUST NOT
-implement a dedicated physical button for the Menu function. Older device
-implementations SHOULD NOT implement a dedicated physical button for the Menu
-function, but if the physical Menu button is implemented and the device is
-running applications with targetSdkVersion > 10, the device implementation:</p>
+Therefore the new device implementations shipping with Android ANDROID_VERSION
+and later MUST NOT implement a dedicated physical button for the Menu function.
+Older device implementations SHOULD NOT implement a dedicated physical button
+for the Menu function, but if the physical Menu button is implemented and the
+device is running applications with targetSdkVersion > 10, the device
+implementation:</p>
 
 <ul>
-  <li>MUST display the action overflow button on the action bar when it is visible
-and the resulting action overflow menu popup is not empty. For a device
-implementation launched before Android 4.4 but upgrading to Android ANDROID_VERSION, this
-is RECOMMENDED.</li>
+  <li>MUST display the action overflow button on the action bar when it is
+  visible and the resulting action overflow menu popup is not empty. For a
+  device implementation launched before Android 4.4 but upgrading to Android
+  ANDROID_VERSION, this is RECOMMENDED.</li>
   <li>MUST NOT modify the position of the action overflow popup displayed by
-selecting the overflow button in the action bar.</li>
-  <li>MAY render the action overflow popup at a modified position on the screen when
-it is displayed by selecting the physical menu button.</li>
+  selecting the overflow button in the action bar.</li>
+  <li>MAY render the action overflow popup at a modified position on the screen
+  when it is displayed by selecting the physical menu button.</li>
 </ul>
 
-<p>For backwards compatibility, device implementations MUST make the Menu function
-available to applications when targetSdkVersion is less than 10, either by a physical
-button, a software key, or gestures. This Menu function should be presented
-unless hidden together with other navigation functions.</p>
+<p>For backwards compatibility, device implementations MUST make the Menu
+function available to applications when targetSdkVersion is less than 10, either
+by a physical button, a software key, or gestures. This Menu function should be
+presented unless hidden together with other navigation functions.</p>
 
-<p>Android device implementations with the support of the Assist action [<a
-href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">Resources,
-30</a>] MUST make this accessisble with a single action (e.g. tap, double-click,
-or gesture) when other navigation keys are visible, and are STRONGLY RECOMMENDED to
-use the long-press on the Home button or software key as the single action.</p>
+<p>Android device implementations with the support of the
+<a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">Assist
+action</a> MUST make this accessisble with a single action (e.g. tap,
+double-click, or gesture) when other navigation keys are visible, and are
+STRONGLY RECOMMENDED to use the long-press on the Home button or software key as
+the single action.</p>
 
-<p>Device implementations MAY use a distinct portion of the screen to display the
-navigation keys, but if so, MUST meet these requirements:</p>
+<p>Device implementations MAY use a distinct portion of the screen to display
+the navigation keys, but if so, MUST meet these requirements:</p>
 
 <ul>
   <li>Device implementation navigation keys MUST use a distinct portion of the
-screen, not available to applications, and MUST NOT obscure or otherwise
-interfere with the portion of the screen available to applications.</li>
+  screen, not available to applications, and MUST NOT obscure or otherwise
+  interfere with the portion of the screen available to applications.</li>
   <li>Device implementations MUST make available a portion of the display to
-applications that meets the requirements defined in <a href="#7_1_1_screen_configuration">section 7.1.1</a>.</li>
-  <li>Device implementations MUST display the navigation keys when applications do
-not specify a system UI mode, or specify SYSTEM_UI_FLAG_VISIBLE.</li>
-  <li>Device implementations MUST present the navigation keys in an unobtrusive &ldquo;low
-profile&rdquo; (eg. dimmed) mode when applications specify
-SYSTEM_UI_FLAG_LOW_PROFILE.</li>
-  <li>Device implementations MUST hide the navigation keys when applications specify
-SYSTEM_UI_FLAG_HIDE_NAVIGATION.</li>
+  applications that meets the requirements defined in
+  <a href="#7_1_1_screen_configuration">section 7.1.1</a>.</li>
+  <li>Device implementations MUST display the navigation keys when applications
+  do not specify a system UI mode, or specify SYSTEM_UI_FLAG_VISIBLE.</li>
+  <li>Device implementations MUST present the navigation keys in an unobtrusive
+  &ldquo;low profile&rdquo; (eg. dimmed) mode when applications specify
+  SYSTEM_UI_FLAG_LOW_PROFILE.</li>
+  <li>Device implementations MUST hide the navigation keys when applications
+  specify SYSTEM_UI_FLAG_HIDE_NAVIGATION.</li>
 </ul>
 
 <h3 id="7_2_4_touchscreen_input">7.2.4. Touchscreen Input</h3>
@@ -3272,35 +3447,39 @@
 </div>
 
 
-<p>Device implementations SHOULD have a pointer input system of some kind (either
-mouse-like or touch). However, if a device implementation does not support a
-pointer input system, it MUST NOT report the android.hardware.touchscreen or
-android.hardware.faketouch feature constant. Device implementations that do
-include a pointer input system:</p>
+<p>Device implementations SHOULD have a pointer input system of some kind
+(either mouse-like or touch). However, if a device implementation does not
+support a pointer input system, it MUST NOT report the
+android.hardware.touchscreen or android.hardware.faketouch feature constant.
+Device implementations that do include a pointer input system:</p>
 
 <ul>
-  <li>SHOULD support fully independently tracked pointers, if the device input system
-supports multiple pointers.</li>
-  <li>MUST report the value of android.content.res.Configuration.touchscreen [<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 85</a>] corresponding to the type of the specific touchscreen on the device.</li>
+  <li>SHOULD support fully independently tracked pointers, if the device input
+  system supports multiple pointers.</li>
+  <li>MUST report the value of
+  <a href="http://developer.android.com/reference/android/content/res/Configuration.html">android.content.res.Configuration.touchscreen</a>
+  corresponding to the type of the specific touchscreen on the device.</li>
 </ul>
 
 <p>Android includes support for a variety of touchscreens, touch pads, and fake
-touch input devices. Touchscreen based device implementations are associated
-with a display [<a href="http://source.android.com/devices/tech/input/touch-devices.html">Resources, 86</a>] such that the user has the impression of directly manipulating items on
-screen. Since the user is directly touching the screen, the system does not
-require any additional affordances to indicate the objects being manipulated.
-In contrast, a fake touch interface provides a user input system that
-approximates a subset of touchscreen capabilities. For example, a mouse or
-remote control that drives an on-screen cursor approximates touch, but requires
-the user to first point or focus then click. Numerous input devices like the
-mouse, trackpad, gyro-based air mouse, gyro-pointer, joystick, and multi-touch
-trackpad can support fake touch interactions. Android includes the feature
-constant android.hardware.faketouch, which corresponds to a high-fidelity
-non-touch (pointer-based) input device such as a mouse or trackpad that can
-adequately emulate touch-based input (including basic gesture support), and
-indicates that the device supports an emulated subset of touchscreen
-functionality. Device implementations that declare the fake touch feature MUST
-meet the fake touch requirements in <a href="#7_2_5_fake_touch_input">section 7.2.5</a>.</p>
+touch input devices.
+<a href="http://source.android.com/devices/tech/input/touch-devices.html">Touchscreen
+based device implementations</a> are associated with a display such that the
+user has the impression of directly manipulating items on screen. Since the user
+is directly touching the screen, the system does not require any additional
+affordances to indicate the objects being manipulated. In contrast, a fake touch
+interface provides a user input system that approximates a subset of touchscreen
+capabilities. For example, a mouse or remote control that drives an on-screen
+cursor approximates touch, but requires the user to first point or focus then
+click. Numerous input devices like the mouse, trackpad, gyro-based air mouse,
+gyro-pointer, joystick, and multi-touch trackpad can support fake touch
+interactions. Android includes the feature constant android.hardware.faketouch,
+which corresponds to a high-fidelity non-touch (pointer-based) input device such
+as a mouse or trackpad that can adequately emulate touch-based input (including
+basic gesture support), and indicates that the device supports an emulated
+subset of touchscreen functionality. Device implementations that declare the
+fake touch feature MUST meet the fake touch requirements in
+<a href="#7_2_5_fake_touch_input">section 7.2.5</a>.</p>
 
 <p>Device implementations MUST report the correct feature corresponding to the
 type of input used. Device implementations that include a touchscreen
@@ -3310,7 +3489,8 @@
 feature constant android.hardware.faketouch. Device implementations that do not
 include a touchscreen (and rely on a pointer device only) MUST NOT report any
 touchscreen feature, and MUST report only android.hardware.faketouch if they
-meet the fake touch requirements in <a href="#7_2_5_fake_touch_input">section 7.2.5</a>.</p>
+meet the fake touch requirements in <a href="#7_2_5_fake_touch_input">section
+7.2.5</a>.</p>
 
 <h3 id="7_2_5_fake_touch_input">7.2.5. Fake Touch Input</h3>
 
@@ -3318,26 +3498,33 @@
 <p>Device implementations that declare support for android.hardware.faketouch:</p>
 
 <ul>
-  <li>MUST report the absolute X and Y screen positions of the pointer location and
-display a visual pointer on the screen [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>].</li>
-  <li>MUST report touch event with the action code that specifies the state change
-that occurs on the pointer going down or up on the screen [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>].</li>
-  <li>MUST support pointer down and up on an object on the screen, which allows users
-to emulate tap on an object on the screen.</li>
-  <li>MUST support pointer down, pointer up, pointer down then pointer up in the same
-place on an object on the screen within a time threshold, which allows users to
-emulate double tap on an object on the screen [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>].</li>
-  <li>MUST support pointer down on an arbitrary point on the screen, pointer move to
-any other arbitrary point on the screen, followed by a pointer up, which allows
-users to emulate a touch drag.</li>
+  <li>MUST report the
+  <a href="http://developer.android.com/reference/android/view/MotionEvent.html">absolute
+  X and Y screen positions</a>of the pointer location and display a visual
+  pointer on the screen.</li>
+  <li>MUST report touch event with the action code that specifies the state
+  change that occurs on the pointer
+  <a href="http://developer.android.com/reference/android/view/MotionEvent.html">going
+  down or up on the screen</a>.</li>
+  <li>MUST support pointer down and up on an object on the screen, which allows
+  users to emulate tap on an object on the screen.</li>
+  <li>MUST support pointer down, pointer up, pointer down then pointer up in the
+  same place on an object on the screen within a time threshold, which allows
+  users to
+  <a href="http://developer.android.com/reference/android/view/MotionEvent.html">emulate
+  double tap</a> on an object on the screen.</li>
+  <li>MUST support pointer down on an arbitrary point on the screen, pointer
+  move to any other arbitrary point on the screen, followed by a pointer up,
+  which allows users to emulate a touch drag.</li>
   <li>MUST support pointer down then allow users to quickly move the object to a
-different position on the screen and then pointer up on the screen, which
-allows users to fling an object on the screen.</li>
+  different position on the screen and then pointer up on the screen, which
+  allows users to fling an object on the screen.</li>
 </ul>
 
-<p>Devices that declare support for android.hardware.faketouch.multitouch.distinct
-MUST meet the requirements for faketouch above, and MUST also support distinct
-tracking of two or more independent pointer inputs.</p>
+<p>Devices that declare support for
+android.hardware.faketouch.multitouch.distinct MUST meet the requirements for
+faketouch above, and MUST also support distinct tracking of two or more
+independent pointer inputs.</p>
 
 <h3 id="7_2_6_game_controller_support">7.2.6. Game Controller Support</h3>
 
@@ -3424,18 +3611,19 @@
 </table>
 
 
-<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 88</a>]</p>
+<p class="table_footnote">1 <a href="http://developer.android.com/reference/android/view/KeyEvent.html">KeyEvent</a></p>
 
 <p class="table_footnote">2 The above HID usages must be declared within a Game pad CA (0x01 0x0005).</p>
 
-<p class="table_footnote">3 This usage must have a Logical Minimum of 0, a Logical Maximum of 7, a
-Physical Minimum of 0, a Physical Maximum of 315, Units in Degrees, and a
-Report Size of 4. The logical value is defined to be the clockwise rotation
-away from the vertical axis; for example, a logical value of 0 represents no
-rotation and the up button being pressed, while a logical value of 1 represents
-a rotation of 45 degrees and both the up and left keys being pressed.</p>
+<p class="table_footnote">3 This usage must have a Logical Minimum of 0, a
+Logical Maximum of 7, a Physical Minimum of 0, a Physical Maximum of 315, Units
+in Degrees, and a Report Size of 4. The logical value is defined to be the
+clockwise rotation away from the vertical axis; for example, a logical value of
+0 represents no rotation and the up button being pressed, while a logical value
+of 1 represents a rotation of 45 degrees and both the up and left keys being
+pressed.</p>
 
-<p class="table_footnote">4 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>]</p>
+<p class="table_footnote">4 <a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></p>
 
 <table>
  <tr>
@@ -3474,7 +3662,7 @@
 </table>
 
 
-<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>]</p>
+<p class="table_footnote">1 <a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></p>
 
 <h3 id="7_2_7_remote_control">7.2.7. Remote Control</h3>
 
@@ -3485,9 +3673,12 @@
 or tablet. The remote control MUST meet the requirements defined below.</p>
 
 <ul>
-  <li><strong>Search affordance</strong>. Device implementations MUST fire KEYCODE_SEARCH when the user invokes voice search either on the physical or software-based remote.</li>
-  <li><strong>Navigation</strong>. All Android Television remotes MUST include Back, Home, and Select buttons and
-support for D-pad events [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 88</a>].</li>
+  <li><strong>Search affordance</strong>. Device implementations MUST fire
+  KEYCODE_SEARCH when the user invokes voice search either on the physical or
+  software-based remote.</li>
+  <li><strong>Navigation</strong>. All Android Television remotes MUST include
+  <a href="http://developer.android.com/reference/android/view/KeyEvent.html">Back,
+  Home, and Select buttons and support for D-pad events</a>.</li>
 </ul>
 
 <h2 id="7_3_sensors">7.3. Sensors</h2>
@@ -3498,49 +3689,66 @@
 following subsections. If a device includes a particular sensor type that has a
 corresponding API for third-party developers, the device implementation MUST
 implement that API as described in the Android SDK documentation and the
-Android Open Source documentation on sensors [<a href="http://source.android.com/devices/sensors/">Resources, 89</a>]. For example, device implementations:</p>
+Android Open Source documentation on
+<a href="http://source.android.com/devices/sensors/">sensors</a>. For example,
+device implementations:</p>
 
 <ul>
   <li>MUST accurately report the presence or absence of sensors per the
-android.content.pm.PackageManager class [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70]</a>.</li>
+  <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager</a>
+  class.</li>
   <li>MUST return an accurate list of supported sensors via the
-SensorManager.getSensorList() and similar methods.</li>
-  <li>MUST behave reasonably for all other sensor APIs (for example, by returning
-true or false as appropriate when applications attempt to register listeners,
-not calling sensor listeners when the corresponding sensors are not present;
-etc.).</li>
-  <li>MUST report all sensor measurements using the relevant International System of
-Units (metric) values for each sensor type as defined in the Android SDK
-documentation [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Resources, 90</a>].</li>
-  <li>SHOULD report the event time in nanoseconds as defined in the Android SDK
-documentation, representing the time the event happened and synchronized with
-the SystemClock.elapsedRealtimeNano() clock. Existing and new Android devices
-are <strong>STRONGLY RECOMMENDED</strong> to meet these requirement so they will be able to upgrade to the future
-platform releases where this might become a REQUIRED component. The
-synchronization error SHOULD be below 100 milliseconds [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">Resources, 91</a>].</li>
-  <li>MUST report sensor data with a maximum latency of 100 milliseconds + 2 * sample_time for the case of a sensor streamed
-    with a minimum required latency of 5 ms + 2 * sample_time when the application processor is active. This delay does not include any filtering delays.</li>
-  <li>MUST report the first sensor sample within 400 milliseconds + 2 * sample_time of the sensor being activated. It is acceptable for this sample to have an accuracy of 0.</li>
+  SensorManager.getSensorList() and similar methods.</li>
+  <li>MUST behave reasonably for all other sensor APIs (for example, by
+  returning true or false as appropriate when applications attempt to register
+  listeners, not calling sensor listeners when the corresponding sensors are not
+  present; etc.).</li>
+  <li>MUST
+  <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">report
+  all sensor measurements</a> using the relevant International System of Units
+  (metric) values for each sensor type as defined in the Android SDK
+  documentation.</li>
+  <li>SHOULD
+  <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">report
+  the event time</a> in nanoseconds as defined in the Android SDK documentation,
+  representing the time the event happened and synchronized with the
+  SystemClock.elapsedRealtimeNano() clock. Existing and new Android devices are
+  <strong>STRONGLY RECOMMENDED</strong> to meet these requirements so they will
+  be able to upgrade to the future platform releases where this might become a
+  REQUIRED component. The synchronization error SHOULD be below 100
+  milliseconds.</li>
+  <li>MUST report sensor data with a maximum latency of 100 milliseconds + 2 *
+  sample_time for the case of a sensor streamed with a minimum required latency
+  of 5 ms + 2 * sample_time when the application processor is active. This delay
+  does not include any filtering delays.</li>
+  <li>MUST report the first sensor sample within 400 milliseconds + 2 *
+  sample_time of the sensor being activated. It is acceptable for this sample to
+  have an accuracy of 0.</li>
 </ul>
 
-<p>The list above is not comprehensive; the documented behavior of the Android SDK
-and the Android Open Source Documentations on Sensors [<a href="http://source.android.com/devices/sensors/">Resources, 89</a>] is to be considered authoritative.</p>
+<p>The list above is not comprehensive; the documented behavior of the Android
+SDK and the Android Open Source Documentations on
+<a href="http://source.android.com/devices/sensors/">sensors</a> is to be
+considered authoritative.</p>
 
-<p>Some sensor types are composite, meaning they can be derived from data provided
-by one or more other sensors. (Examples include the orientation sensor, and the
-linear acceleration sensor.) Device implementations SHOULD implement these
-sensor types, when they include the prerequisite physical sensors as described
-in [<a href="https://source.android.com/devices/sensors/sensor-types.html">Resources, 92</a>].
-If a device implementation includes a composite sensor it MUST implement the
-sensor as described in the Android Open Source documentation on composite
-sensors [<a href="https://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary">Resources, 92</a>].</p>
+<p>Some sensor types are composite, meaning they can be derived from data
+provided by one or more other sensors. (Examples include the orientation sensor
+and the linear acceleration sensor.) Device implementations SHOULD implement
+these sensor types, when they include the prerequisite physical sensors as
+described in
+<a href="https://source.android.com/devices/sensors/sensor-types.html">sensor
+types</a>. If a device implementation includes a composite sensor it MUST
+implement the sensor as described in the Android Open Source documentation on
+<a href="https://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary">composite
+sensors</a>.</p>
 
-<p>Some Android sensors support a &ldquo;continuous&rdquo; trigger mode, which returns data
-continuously [<a href="https://source.android.com/devices/sensors/report-modes.html#continuous">Resources, 93</a>]. For any API indicated by the Android SDK documentation to be a continuous
-sensor, device implementations MUST continuously provide periodic data samples
-that SHOULD have a jitter below 3%, where jitter is defined as the standard
-deviation of the difference of the reported timestamp values between
-consecutive events.</p>
+<p>Some Android sensors support a
+<a href="https://source.android.com/devices/sensors/report-modes.html#continuous">&ldquo;continuous&rdquo;
+trigger mode</a>, which returns data continuously. For any API indicated by the
+Android SDK documentation to be a continuous sensor, device implementations MUST
+continuously provide periodic data samples that SHOULD have a jitter below 3%,
+where jitter is defined as the standard deviation of the difference of the
+reported timestamp values between consecutive events.</p>
 
 <p>Note that the device implementations MUST ensure that the sensor event stream
 MUST NOT prevent the device CPU from entering a suspend state or waking up from
@@ -3552,41 +3760,48 @@
 <h3 id="7_3_1_accelerometer">7.3.1. Accelerometer</h3>
 
 
-<p>Device implementations SHOULD include a 3-axis accelerometer. Android Handheld
-devices and Android Watch devices are STRONGLY RECOMMENDED to include this
-sensor. If a device implementation does include a 3-axis accelerometer, it:</p>
+<p>Device implementations SHOULD include a 3-axis accelerometer. Android
+Handheld devices and Android Watch devices are STRONGLY RECOMMENDED to include
+this sensor. If a device implementation does include a 3-axis accelerometer, it:
+</p>
 
 <ul>
-  <li>MUST implement and report TYPE_ACCELEROMETER sensor [<a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">Resources, 94</a>].</li>
+  <li>MUST implement and report
+  <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">TYPE_ACCELEROMETER sensor</a>.
+  </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, 90</a>].</li>
-  <li>MUST be capable of measuring from freefall up to four times the gravity (4g) or
-more on any axis.</li>
-  <li>MUST have a resolution of at least 12-bits and SHOULD have a resolution of at
-least 16-bits.</li>
-  <li>SHOULD be calibrated while in use if the characteristics changes over the life
-cycle and compensated, and preserve the compensation parameters between device
-reboots.</li>
+  <li>MUST comply with the
+  <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Android
+  sensor coordinate system</a> as detailed in the Android APIs.</li>
+  <li>MUST be capable of measuring from freefall up to four times the gravity
+  (4g) or more on any axis.</li>
+  <li>MUST have a resolution of at least 12-bits and SHOULD have a resolution of
+  at least 16-bits.</li>
+  <li>SHOULD be calibrated while in use if the characteristics changes over the
+  life cycle and compensated, and preserve the compensation parameters between
+  device reboots.</li>
   <li>SHOULD be temperature compensated.</li>
-  <li>MUST have a standard deviation no greater than 0.05 m/s^, where the standard
-deviation should be calculated on a per axis basis on samples collected over a
-period of at least 3 seconds at the fastest sampling rate.</li>
+  <li>MUST have a standard deviation no greater than 0.05 m/s^, where the
+  standard deviation should be calculated on a per axis basis on samples
+  collected over a period of at least 3 seconds at the fastest sampling rate.
+  </li>
   <li>SHOULD implement the TYPE_SIGNIFICANT_MOTION, TYPE_TILT_DETECTOR,
-TYPE_STEP_DETECTOR, TYPE_STEP_COUNTER composite sensors as described in the
-Android SDK document. Existing and new Android devices are <strong>STRONGLY RECOMMENDED</strong> to implement the TYPE_SIGNIFICANT_MOTION composite sensor. If any of these
-sensors are implemented, the sum of their power consumption MUST always be less
-than 4 mW and SHOULD each be below 2 mW and 0.5 mW for when the device is in a
-dynamic or static condition.</li>
+  TYPE_STEP_DETECTOR, TYPE_STEP_COUNTER composite sensors as described in the
+  Android SDK document. Existing and new Android devices are <strong>STRONGLY
+  RECOMMENDED</strong> to implement the TYPE_SIGNIFICANT_MOTION composite
+  sensor. If any of these sensors are implemented, the sum of their power
+  consumption MUST always be less than 4 mW and SHOULD each be below 2 mW and
+  0.5 mW for when the device is in a dynamic or static condition.</li>
   <li>If a gyroscope sensor is included, MUST implement the TYPE_GRAVITY and
-TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
-TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
-are STRONGLY RECOMMENDED to implement the TYPE_GAME_ROTATION_VECTOR sensor.</li>
-  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if a gyroscope sensor
-and a magnetometer sensor is also included.</li>
+  TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
+  TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
+  are STRONGLY RECOMMENDED to implement the TYPE_GAME_ROTATION_VECTOR sensor.
+  </li>
+  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if a gyroscope
+  sensor and a magnetometer sensor is also included.</li>
 </ul>
 
 <h3 id="7_3_2_magnetometer">7.3.2. Magnetometer</h3>
@@ -3597,40 +3812,43 @@
 
 <ul>
   <li>MUST implement the TYPE_MAGNETIC_FIELD sensor and SHOULD also implement
-TYPE_MAGNETIC_FIELD_UNCALIBRATED sensor. Existing and new Android devices are
-STRONGLY RECOMMENDED to implement the TYPE_MAGNETIC_FIELD_UNCALIBRATED sensor.</li>
-  <li>MUST be able to report events up to a frequency of at least 10 Hz and SHOULD
-report events up to at least 50 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, 90</a>].</li>
-  <li>MUST be capable of measuring between -900 &micro;T and +900 &micro;T on each axis before
-saturating.</li>
-  <li>MUST have a hard iron offset value less than 700 &micro;T and SHOULD have a value
-below 200 &micro;T, by placing the magnetometer far from dynamic (current-induced)
-and static (magnet-induced) magnetic fields.</li>
-  <li>MUST have a resolution equal or denser than 0.6 &micro;T and SHOULD have a resolution
-equal or denser than 0.2 &micro;.</li>
+  TYPE_MAGNETIC_FIELD_UNCALIBRATED sensor. Existing and new Android devices are
+  STRONGLY RECOMMENDED to implement the TYPE_MAGNETIC_FIELD_UNCALIBRATED sensor.
+  </li>
+  <li>MUST be able to report events up to a frequency of at least 10 Hz and
+  SHOULD report events up to at least 50 Hz.</li>
+  <li>MUST comply with the
+  <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Android
+  sensor coordinate system</a> as detailed in the Android APIs.</li>
+  <li>MUST be capable of measuring between -900 &micro;T and +900 &micro;T on
+  each axis before saturating.</li>
+  <li>MUST have a hard iron offset value less than 700 &micro;T and SHOULD have
+  a value below 200 &micro;T, by placing the magnetometer far from dynamic
+  (current-induced) and static (magnet-induced) magnetic fields.</li>
+  <li>MUST have a resolution equal or denser than 0.6 &micro;T and SHOULD have a
+  resolution equal or denser than 0.2 &micro;.</li>
   <li>SHOULD be temperature compensated.</li>
-  <li>MUST support online calibration and compensation of the hard iron bias, and
-preserve the compensation parameters between device reboots.</li>
-  <li>MUST have the soft iron compensation applied&mdash;the calibration can be done either
-while in use or during the production of the device.</li>
-  <li>SHOULD have a standard deviation, calculated on a per axis basis on samples
-collected over a period of at least 3 seconds at the fastest sampling rate, no
-greater than 0.5 &micro;T.</li>
-  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
-sensor and a gyroscope sensor is also included.</li>
-  <li>MAY implement the TYPE_GEOMAGNETIC_ROTATION_VECTOR sensor if an accelerometer
-sensor is also implemented. However if implemented, it MUST consume less than
-10 mW and SHOULD consume less than 3 mW when the sensor is registered for batch
-mode at 10 Hz.</li>
+  <li>MUST support online calibration and compensation of the hard iron bias,
+  and preserve the compensation parameters between device reboots.</li>
+  <li>MUST have the soft iron compensation applied&mdash;the calibration can be
+  done either while in use or during the production of the device.</li>
+  <li>SHOULD have a standard deviation, calculated on a per axis basis on
+  samples collected over a period of at least 3 seconds at the fastest sampling
+  rate, no greater than 0.5 &micro;T.</li>
+  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if an
+  accelerometer sensor and a gyroscope sensor is also included.</li>
+  <li>MAY implement the TYPE_GEOMAGNETIC_ROTATION_VECTOR sensor if an
+  accelerometer sensor is also implemented. However if implemented, it MUST
+  consume less than 10 mW and SHOULD consume less than 3 mW when the sensor is
+  registered for batch mode at 10 Hz.</li>
 </ul>
 
 <h3 id="7_3_3_gps">7.3.3. GPS</h3>
 
 
 <p>Device implementations SHOULD include a GPS receiver. If a device
-implementation does include a GPS receiver, it SHOULD include some form of&ldquo;assisted GPS&rdquo; technique to minimize GPS lock-on time.</p>
+implementation does include a GPS receiver, it SHOULD include some form
+of&ldquo;assisted GPS&rdquo; technique to minimize GPS lock-on time.</p>
 
 <h3 id="7_3_4_gyroscope">7.3.4. Gyroscope</h3>
 
@@ -3641,28 +3859,32 @@
 
 <ul>
   <li>MUST implement the TYPE_GYROSCOPE sensor and SHOULD also implement
-TYPE_GYROSCOPE_UNCALIBRATED sensor. Existing and new Android devices are
-STRONGLY RECOMMENDED 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>
+  TYPE_GYROSCOPE_UNCALIBRATED sensor. Existing and new Android devices are
+  STRONGLY RECOMMENDED 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 50 Hz for
-  Android Watch devices as such devices have a stricter power constraint and 
-  100 Hz for all other device types.</li>
+  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>
+  16-bits or more.</li>
   <li>MUST be temperature compensated.</li>
-  <li>MUST be calibrated and compensated while in use, and preserve the compensation
-parameters between device reboots.</li>
-  <li>MUST have a variance no greater than 1e-7 rad^2 / s^2 per Hz (variance per Hz,
-or rad^2 / s). The variance is allowed to vary with the sampling rate, but must
-be constrained by this value. In other words, if you measure the variance of
-the gyro at 1 Hz sampling rate it should be no greater than 1e-7 rad^2/s^2.</li>
-  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
-sensor and a magnetometer sensor is also included.</li>
-  <li>If an accelerometer sensor is included, MUST implement the TYPE_GRAVITY and
-TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
-TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
-are STRONGLY RECOMMENDED to implement the TYPE_GAME_ROTATION_VECTOR sensor.</li>
+  <li>MUST be calibrated and compensated while in use, and preserve the
+  compensation parameters between device reboots.</li>
+  <li>MUST have a variance no greater than 1e-7 rad^2 / s^2 per Hz (variance per
+  Hz, or rad^2 / s). The variance is allowed to vary with the sampling rate, but
+  must be constrained by this value. In other words, if you measure the variance
+  of the gyro at 1 Hz sampling rate it should be no greater than 1e-7 rad^2/s^2.
+  </li>
+  <li>MUST implement a TYPE_ROTATION_VECTOR composite sensor, if an
+  accelerometer sensor and a magnetometer sensor is also included.</li>
+  <li>If an accelerometer sensor is included, MUST implement the TYPE_GRAVITY
+  and TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
+  TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
+  are STRONGLY RECOMMENDED to implement the TYPE_GAME_ROTATION_VECTOR sensor.
+  </li>
 </ul>
 
 <h3 id="7_3_5_barometer">7.3.5. Barometer</h3>
@@ -3681,12 +3903,12 @@
 <h3 id="7_3_6_thermometer">7.3.6. Thermometer</h3>
 
 
-<p>Device implementations MAY include an ambient thermometer (temperature sensor).
-If present, it MUST be defined as SENSOR_TYPE_AMBIENT_TEMPERATURE and it MUST
-measure the ambient (room) temperature in degrees Celsius.</p>
+<p>Device implementations MAY include an ambient thermometer (temperature
+sensor). If present, it MUST be defined as SENSOR_TYPE_AMBIENT_TEMPERATURE and
+it MUST measure the ambient (room) temperature in degrees Celsius.</p>
 
-<p>Device implementations MAY but SHOULD NOT include a CPU temperature sensor. If
-present, it MUST be defined as SENSOR_TYPE_TEMPERATURE, it MUST measure the
+<p>Device implementations MAY but SHOULD NOT include a CPU temperature sensor.
+If present, it MUST be defined as SENSOR_TYPE_TEMPERATURE, it MUST measure the
 temperature of the device CPU, and it MUST NOT measure any other temperature.
 Note the SENSOR_TYPE_TEMPERATURE sensor type was deprecated in Android 4.0.</p>
 
@@ -3698,109 +3920,114 @@
 <h3 id="7_3_8_proximity_sensor">7.3.8. Proximity Sensor</h3>
 
 
-<p>Device implementations MAY include a proximity sensor. Devices that can make a
-voice call and indicate any value other than PHONE_TYPE_NONE in getPhoneType
+<p>Device implementations MAY include a proximity sensor. Devices that can make
+a voice call and indicate any value other than PHONE_TYPE_NONE in getPhoneType
 SHOULD include a proximity sensor. If a device implementation does include a
 proximity sensor, it:</p>
 
 <ul>
-  <li>MUST measure the proximity of an object in the same direction as the screen.
-That is, the proximity sensor MUST be oriented to detect objects close to the
-screen, as the primary intent of this sensor type is to detect a phone in use
-by the user. If a device implementation includes a proximity sensor with any
-other orientation, it MUST NOT be accessible through this API.</li>
+  <li>MUST measure the proximity of an object in the same direction as the
+  screen. That is, the proximity sensor MUST be oriented to detect objects close
+  to the screen, as the primary intent of this sensor type is to detect a phone
+  in use by the user. If a device implementation includes a proximity sensor
+  with any other orientation, it MUST NOT be accessible through this API.</li>
   <li>MUST have 1-bit of accuracy or more.</li>
 </ul>
 
 
 <h3 id="7_3_9_hifi_sensors">7.3.9. High Fidelity Sensors</h3>
 
-<p>Device implementations supporting a set of higher quality sensors that can meet all
-the requirements listed in this section MUST identify the support through the
-<code>android.hardware.sensor.hifi_sensors</code> feature flag.</p>
+<p>Device implementations supporting a set of higher quality sensors that can
+meet all the requirements listed in this section MUST identify the support
+through the <code>android.hardware.sensor.hifi_sensors</code> feature flag.</p>
 
-<p>A device declaring android.hardware.sensor.hifi_sensors MUST support all of the following
-sensor types meeting the quality requirements as below:</p>
+<p>A device declaring android.hardware.sensor.hifi_sensors MUST support all of
+the following sensor types meeting the quality requirements as below:</p>
 
 <ul>
   <li>SENSOR_TYPE_ACCELEROMETER
   <ul>
-    <li>MUST have a measurement range between at least -8g and +8g</li>
-    <li>MUST have a measurement resolution of at least 1024 LSB/G</li>
-    <li>MUST have a minimum measurement frequency of 12.5 Hz or lower</li>
-    <li>MUST have a maxmium measurement frequency of 200 Hz or higher</li>
-    <li>MUST have a measurement noise not above 400uG/&radic;Hz</li>
-    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 3000 sensor events</li>
-    <li>MUST have a batching power consumption not worse than 3 mW</li>
+    <li>MUST have a measurement range between at least -8g and +8g.</li>
+    <li>MUST have a measurement resolution of at least 1024 LSB/G.</li>
+    <li>MUST have a minimum measurement frequency of 12.5 Hz or lower.</li>
+    <li>MUST have a maxmium measurement frequency of 200 Hz or higher.</li>
+    <li>MUST have a measurement noise not above 400uG/&radic;Hz.</li>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering
+    capability of at least 3000 sensor events.</li>
+    <li>MUST have a batching power consumption not worse than 3 mW.</li>
   </ul>
   </li>
   <li>SENSOR_TYPE_GYROSCOPE
   <ul>
-    <li>MUST have a measurement range between at least -1000 and +1000 dps</li>
-    <li>MUST have a measurement resolution of at least 16 LSB/dps</li>
-    <li>MUST have a minimum measurement frequency of 12.5 Hz or lower</li>
-    <li>MUST have a maxmium measurement frequency of 200 Hz or higher</li>
-    <li>MUST have a measurement noise not above 0.014&deg;/s/&radic;Hz</li>
+    <li>MUST have a measurement range between at least -1000 and +1000 dps.</li>
+    <li>MUST have a measurement resolution of at least 16 LSB/dps.</li>
+    <li>MUST have a minimum measurement frequency of 12.5 Hz or lower.</li>
+    <li>MUST have a maxmium measurement frequency of 200 Hz or higher.</li>
+    <li>MUST have a measurement noise not above 0.014&deg;/s/&radic;Hz.</li>
   </ul>
   </li>
   <li>SENSOR_TYPE_GYROSCOPE_UNCALIBRATED with the same quality requirements as
-    SENSOR_TYPE_GYROSCOPE</li>
+    SENSOR_TYPE_GYROSCOPE.</li>
   <li>SENSOR_TYPE_GEOMAGNETIC_FIELD
   <ul>
-    <li>MUST have a measurement range between at least -900 and +900 uT</li>
-    <li>MUST have a measurement resolution of at least 5 LSB/uT</li>
-    <li>MUST have a minimum measurement frequency of 5 Hz or lower</li>
-    <li>MUST have a maxmium measurement frequency of 50 Hz or higher</li>
-    <li>MUST have a measurement noise not above 0.5 uT</li>
+    <li>MUST have a measurement range between at least -900 and +900 uT.</li>
+    <li>MUST have a measurement resolution of at least 5 LSB/uT.</li>
+    <li>MUST have a minimum measurement frequency of 5 Hz or lower.</li>
+    <li>MUST have a maxmium measurement frequency of 50 Hz or higher.</li>
+    <li>MUST have a measurement noise not above 0.5 uT.</li>
   </ul>
   </li>
-  <li>SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED with the same quality requirements as
-    SENSOR_TYPE_GEOMAGNETIC_FIELD and in addition:
+  <li>SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED with the same quality requirements
+  as SENSOR_TYPE_GEOMAGNETIC_FIELD and in addition:
   <ul>
-    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 600 sensor events</li>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering
+    capability of at least 600 sensor events.</li>
   </ul>
   </li>
   <li>SENSOR_TYPE_PRESSURE
   <ul>
-    <li>MUST have a measurement range between at least 300 and 1100 hPa</li>
-    <li>MUST have a measurement resolution of at least 80 LSB/hPa</li>
-    <li>MUST have a minimum measurement frequency of 1 Hz or lower</li>
-    <li>MUST have a maximum measurement frequency of 10 Hz or higher</li>
-    <li>MUST have a measurement noise not above 2 Pa/&radic;Hz</li>
-    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 300 sensor events</li>
-    <li>MUST have a batching power consumption not worse than 2 mW</li>
+    <li>MUST have a measurement range between at least 300 and 1100 hPa.</li>
+    <li>MUST have a measurement resolution of at least 80 LSB/hPa.</li>
+    <li>MUST have a minimum measurement frequency of 1 Hz or lower.</li>
+    <li>MUST have a maximum measurement frequency of 10 Hz or higher.</li>
+    <li>MUST have a measurement noise not above 2 Pa/&radic;Hz.</li>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering
+    capability of at least 300 sensor events.</li>
+    <li>MUST have a batching power consumption not worse than 2 mW.</li>
   </ul>
   </li>
   <li>SENSOR_TYPE_ROTATION_VECTOR
   <ul>
-    <li>MUST have a batching power consumption not worse than 4 mW</li>
+    <li>MUST have a batching power consumption not worse than 4 mW.</li>
   </ul>
   </li>
-  <li>SENSOR_TYPE_GAME_ROTATION_VECTOR MUST implement a non-wake-up form of this sensor with a buffering capability of at least 300 sensor events</li>
+  <li>SENSOR_TYPE_GAME_ROTATION_VECTOR MUST implement a non-wake-up form of this
+  sensor with a buffering capability of at least 300 sensor events.</li>
   <li>SENSOR_TYPE_SIGNIFICANT_MOTION
   <ul>
-    <li>MUST have a power consumption not worse than 0.5 mW when device is static
-      and 1.5 mW when device is moving</li>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is
+    static and 1.5 mW when device is moving.</li>
   </ul>
   </li>
   <li>SENSOR_TYPE_STEP_DETECTOR
   <ul>
-    <li>MUST implement a non-wake-up form of this sensor with a buffering capability of at least 100 sensor events</li>
-    <li>MUST have a power consumption not worse than 0.5 mW when device is static
-      and 1.5 mW when device is moving</li>
-    <li>MUST have a batching power consumption not worse than 4 mW</li>
+    <li>MUST implement a non-wake-up form of this sensor with a buffering
+    capability of at least 100 sensor events.</li>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is
+    static and 1.5 mW when device is moving.</li>
+    <li>MUST have a batching power consumption not worse than 4 mW.</li>
   </ul>
   </li>
   <li>SENSOR_TYPE_STEP_COUNTER
   <ul>
-    <li>MUST have a power consumption not worse than 0.5 mW when device is static
-      and 1.5 mW when device is moving</li>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is
+    static and 1.5 mW when device is moving.</li>
   </ul>
   </li>
   <li>SENSOR_TILT_DETECTOR
   <ul>
-    <li>MUST have a power consumption not worse than 0.5 mW when device is static
-      and 1.5 mW when device is moving</li>
+    <li>MUST have a power consumption not worse than 0.5 mW when device is
+    static and 1.5 mW when device is moving.</li>
   </ul>
   </li>
 </ul>
@@ -3808,14 +4035,17 @@
 <p>Also such a device MUST meet the following sensor subsystem requirements:</p>
 
 <ul>
-  <li>The event timestamp of the same physical event reported by the Accelerometer, Gyroscope
-    sensor and Magnetometer MUST be within 2.5 milliseconds of each other.</li>
-  <li>The Gyroscope sensor event timestamps MUST be on the same time base as the camera
-    subsystem and within 1 millisconds of error.</li>
-  <li>The latency of delivery of samples to the HAL SHOULD be below 5 milliseconds from
-    the instant the data is available on the physical sensor hardware.</li>
-  <li>The power consumption MUST not be higher than 0.5 mW when device is static and 2.0 mW
-    when device is moving when any combination of the following sensors are enabled:
+  <li>The event timestamp of the same physical event reported by the
+  Accelerometer, Gyroscope sensor and Magnetometer MUST be within 2.5
+  milliseconds of each other.</li>
+  <li>The Gyroscope sensor event timestamps MUST be on the same time base as the
+  camera subsystem and within 1 millisconds of error.</li>
+  <li>The latency of delivery of samples to the HAL SHOULD be below 5
+  milliseconds from the instant the data is available on the physical sensor
+  hardware.</li>
+  <li>The power consumption MUST not be higher than 0.5 mW when device is static
+  and 2.0 mW when device is moving when any combination of the following sensors
+  are enabled:
   <ul>
     <li>SENSOR_TYPE_SIGNIFICANT_MOTION</li>
     <li>SENSOR_TYPE_STEP_DETECTOR</li>
@@ -3825,14 +4055,15 @@
   </li>
 </ul>
 
-<p>Note that all power consumption requirements in this section do not include the power
-  consumption of the Application Processor. It is inclusive of the power drawn by the entire
-  sensor chain - the sensor, any supporting circuitry, any dedicated sensor processing system,
-  etc.</p>
+<p>Note that all power consumption requirements in this section do not include
+the power consumption of the Application Processor. It is inclusive of the power
+drawn by the entire sensor chain&mdash;the sensor, any supporting circuitry, any
+dedicated sensor processing system, etc.</p>
 
-<p>The following sensor types MAY also be supported on a device implementation declaring
-  android.hardware.sensor.hifi_sensors, but if these sensor types are present they MUST meet the
-  following minimum buffering capability requirement:</p>
+<p>The following sensor types MAY also be supported on a device implementation
+declaring android.hardware.sensor.hifi_sensors, but if these sensor types are
+present they MUST meet the following minimum buffering capability requirement:
+</p>
 
 <ul>
   <li>SENSOR_TYPE_PROXIMITY: 100 sensor events</li>
@@ -3840,39 +4071,42 @@
 
 <h3 id="7_3_10_fingeprint">7.3.10. Fingerprint Sensor</h3>
 
-<p>Device implementations with a secure lock screen SHOULD include a fingerprint sensor.
-If a device implementation includes a fingerprint sensor and has a corresponding API for
-third-party developers, it:</p>
+<p>Device implementations with a secure lock screen SHOULD include a fingerprint
+sensor. If a device implementation includes a fingerprint sensor and has a
+corresponding API for third-party developers, it:</p>
 
 <ul>
   <li>MUST declare support for the android.hardware.fingerprint feature.</li>
-  <li>MUST fully implement the corresponding API as described in the Android SDK documentation
-[<a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">Resources, 95</a>].
-  </li>
+  <li>MUST fully implement the
+  <a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">corresponding
+  API</a> as described in the Android SDK documentation.</li>
   <li>MUST have a false acceptance rate not higher than 0.002%.</li>
-  <li>Is STRONGLY RECOMMENDED to have a false rejection rate not higher than 10%, and a
-    latency from when the fingerprint sensor is touched until the screen is unlocked below
-    1 second, for 1 enrolled finger.</li>
-  <li>MUST rate limit attempts for at least 30 seconds after 5 false trials for fingerprint
-    verification.</li>
-  <li>MUST have a hardware-backed keystore implementation, and perform the fingerprint matching
-    in a Trusted Execution Environment (TEE) or on a chip with a secure channel to the TEE.
-  </li>
-  <li>MUST have all identifiable fingerprint data encrypted and cryptographically
-    authenticated such that they cannot be acquired, read or altered outside of the
-    Trusted Execution Environment (TEE) as documented in the implementation guidelines
-    on the Android Open Source Project site
-    [<a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">Resources, 96</a>].
-  </li>
-  <li>MUST prevent adding a fingerprint without first establishing a chain of trust by
-    having the user confirm existing or add a new device credential (PIN/pattern/password)
-    using the TEE as implemented in the Android Open Source project.</li>
-  <li>MUST NOT enable 3rd-party applications to distinguish between individual fingerprints.
-  </li>
+  <li>Is STRONGLY RECOMMENDED to have a false rejection rate not higher than
+  10%, and a latency from when the fingerprint sensor is touched until the
+  screen is unlocked below 1 second, for 1 enrolled finger.</li>
+  <li>MUST rate limit attempts for at least 30 seconds after 5 false trials for
+  fingerprint verification.</li>
+  <li>MUST have a hardware-backed keystore implementation, and perform the
+  fingerprint matching in a Trusted Execution Environment (TEE) or on a chip
+  with a secure channel to the TEE.</li>
+  <li>MUST have all identifiable fingerprint data encrypted and
+  cryptographically authenticated such that they cannot be acquired, read or
+  altered outside of the Trusted Execution Environment (TEE) as documented in
+  the
+  <a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">implementation
+  guidelines</a> on the Android Open Source Project site.</li>
+  <li>MUST prevent adding a fingerprint without first establishing a chain of
+  trust by having the user confirm existing or add a new device credential
+  (PIN/pattern/password) using the TEE as implemented in the Android Open Source
+  project.</li>
+  <li>MUST NOT enable 3rd-party applications to distinguish between individual
+  fingerprints.</li>
   <li>MUST honor the DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT flag.</li>
-  <li>MUST, when upgraded from a version earlier than Android 6.0, have the fingerprint
-    data securely migrated to meet the above requirements or removed.</li>
-  <li>SHOULD use the Android Fingerprint icon provided in the Android Open Source Project.</li>
+  <li>MUST, when upgraded from a version earlier than Android 6.0, have the
+  fingerprint data securely migrated to meet the above requirements or removed.
+  </li>
+  <li>SHOULD use the Android Fingerprint icon provided in the Android Open
+  Source Project.</li>
 </ul>
 
 <h2 id="7_4_data_connectivity">7.4. Data Connectivity</h2>
@@ -3881,19 +4115,19 @@
 <h3 id="7_4_1_telephony">7.4.1. Telephony</h3>
 
 
-<p>&ldquo;Telephony&rdquo; as used by the Android APIs and this document refers specifically
-to hardware related to placing voice calls and sending SMS messages via a GSM
-or CDMA network. While these voice calls may or may not be packet-switched,
-they are for the purposes of Android considered independent of any data
-connectivity that may be implemented using the same network. In other words,
-the Android &ldquo;telephony&rdquo; functionality and APIs refer specifically to voice
-calls and SMS. For instance, device implementations that cannot place calls or
-send/receive SMS messages MUST NOT report the android.hardware.telephony
-feature or any subfeatures, regardless of whether they use a cellular network
-for data connectivity.</p>
+<p>&ldquo;Telephony&rdquo; as used by the Android APIs and this document refers
+specifically to hardware related to placing voice calls and sending SMS messages
+via a GSM or CDMA network. While these voice calls may or may not be
+packet-switched, they are for the purposes of Android considered independent of
+any data connectivity that may be implemented using the same network. In other
+words, the Android &ldquo;telephony&rdquo; functionality and APIs refer
+specifically to voice calls and SMS. For instance, device implementations that
+cannot place calls or send/receive SMS messages MUST NOT report the
+android.hardware.telephony feature or any subfeatures, regardless of whether
+they use a cellular network for data connectivity.</p>
 
-<p>Android MAY be used on devices that do not include telephony hardware. That is,
-Android is compatible with devices that are not phones. However, if a device
+<p>Android MAY be used on devices that do not include telephony hardware. That
+is, Android is compatible with devices that are not phones. However, if a device
 implementation does include GSM or CDMA telephony, it MUST implement full
 support for the API for that technology. Device implementations that do not
 include telephony hardware MUST implement the full APIs as no-ops.</p>
@@ -3905,8 +4139,8 @@
 </div>
 
 
-<p>Android Television device implementations MUST include support for one or more
-forms of 802.11 (b/g/a/n, etc.) and other types of Android device
+<p>Android Television device implementations MUST include support for one or
+more forms of 802.11 (b/g/a/n, etc.) and other types of Android device
 implementation SHOULD include support for one or more forms of 802.11. If a
 device implementation does include support for 802.11 and exposes the
 functionality to a third-party application, it MUST implement the corresponding
@@ -3914,12 +4148,15 @@
 
 <ul>
   <li>MUST report the hardware feature flag android.hardware.wifi.</li>
-  <li>MUST implement the multicast API as described in the SDK documentation [<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">Resources, 97</a>].</li>
+  <li>MUST implement the
+  <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">multicast
+  API</a> as described in the SDK documentation.</li>
   <li>MUST support multicast DNS (mDNS) and MUST NOT filter mDNS packets
-(224.0.0.251) at any time of operation including:
-    <ul>
-      <li>Even when the screen is not in an active state.</li>
-      <li>For Android Television device implementations, even when in standby power states.</li>
+  (224.0.0.251) at any time of operation including:
+   <ul>
+    <li>Even when the screen is not in an active state.</li>
+    <li>For Android Television device implementations, even when in standby
+    power states.</li>
     </ul>
 </ul>
 
@@ -3927,9 +4164,11 @@
 
 
 <p>Device implementations SHOULD include support for Wi-Fi Direct (Wi-Fi
-peer-to-peer). If a device implementation does include support for Wi-Fi
-Direct, it MUST implement the corresponding Android API as described in the SDK
-documentation [<a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">Resources, 98</a>]. If a device implementation includes support for Wi-Fi Direct, then it:</p>
+peer-to-peer). If a device implementation does include support for Wi-Fi Direct,
+it MUST implement the
+<a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">corresponding
+Android API</a> as described in the SDK documentation. If a device
+implementation includes support for Wi-Fi Direct, then it:</p>
 
 <ul>
   <li>MUST report the hardware feature android.hardware.wifi.direct.</li>
@@ -3937,7 +4176,8 @@
   <li>SHOULD support concurrent Wi-Fi and Wi-Fi Direct operation.</li>
 </ul>
 
-<h4 id="7_4_2_2_wi-fi_tunneled_direct_link_setup">7.4.2.2. Wi-Fi Tunneled Direct Link Setup</h4>
+<h4 id="7_4_2_2_wi-fi_tunneled_direct_link_setup">7.4.2.2. Wi-Fi Tunneled Direct
+Link Setup</h4>
 
 <div class="note">
 <p>Android Television device implementations MUST include support for Wi-Fi
@@ -3945,16 +4185,17 @@
 </div>
 
 
-<p>Android Television device implementations MUST include support for Wi-Fi
-Tunneled Direct Link Setup (TDLS) and other types of Android device
+<p>Android Television device implementations MUST include support for
+<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">Wi-Fi
+Tunneled Direct Link Setup (TDLS)</a> and other types of Android device
 implementations SHOULD include support for Wi-Fi TDLS as described in the
-Android SDK Documentation [<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">Resources, 99</a>]. If a device implementation does include support for TDLS and TDLS is enabled
-by the WiFiManager API, the device:</p>
+Android SDK Documentation. If a device implementation does include support for
+TDLS and TDLS is enabled by the WiFiManager API, the device:</p>
 
 <ul>
   <li>SHOULD use TDLS only when it is possible AND beneficial.</li>
-  <li>SHOULD have some heuristic and NOT use TDLS when its performance might be worse
-than going through the Wi-Fi access point.</li>
+  <li>SHOULD have some heuristic and NOT use TDLS when its performance might be
+  worse than going through the Wi-Fi access point.</li>
 </ul>
 
 <h3 id="7_4_3_bluetooth">7.4.3. Bluetooth</h3>
@@ -3965,30 +4206,42 @@
 </div>
 
 
-<p>Android includes support for Bluetooth and Bluetooth Low Energy [<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Resources, 100</a>]. Device implementations that include support for Bluetooth and Bluetooth Low
-Energy MUST declare the relevant platform features (android.hardware.bluetooth
-and android.hardware.bluetooth_le respectively) and implement the platform
-APIs. Device implementations SHOULD implement relevant Bluetooth profiles such
-as A2DP, AVCP, OBEX, etc. as appropriate for the device. Android Television
-device implementations MUST support Bluetooth and Bluetooth LE. </p>
+<p>Android includes support for
+<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Bluetooth
+and Bluetooth Low Energy </a>. Device implementations that include support for
+Bluetooth and Bluetooth Low Energy MUST declare the relevant platform features
+(android.hardware.bluetooth and android.hardware.bluetooth_le respectively) and
+implement the platform APIs. Device implementations SHOULD implement relevant
+Bluetooth profiles such as A2DP, AVCP, OBEX, etc. as appropriate for the device.
+Android Television device implementations MUST support Bluetooth and Bluetooth
+LE.</p>
 
 <p>Device implementations including support for Bluetooth Low Energy:</p>
 
 <ul>
   <li>MUST declare the hardware feature android.hardware.bluetooth_le.</li>
   <li>MUST enable the GATT (generic attribute profile) based Bluetooth APIs as
-described in the SDK documentation and [<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Resources, 100</a>].</li>
+  described in the SDK documentation and
+  <a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">android.bluetooth</a>.
+  </li>
   <li>MUST implement a Resolvable Private Address (RPA) timeout no longer than
-15 minutes, and rotate the address at timeout to protect user privacy.</li>
-  <li>SHOULD support offloading of the filtering logic to the bluetooth chipset when
-implementing the ScanFilter API [<a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">Resources, 101</a>], and MUST report the correct value of where the filtering logic is implemented whenever queried via the
-android.bluetooth.BluetoothAdapter.isOffloadedFilteringSupported() method.</li>
-  <li>SHOULD support offloading of the batched scanning to the bluetooth chipset, but
-if not supported, MUST report &lsquo;false&rsquo; whenever queried via the
-android.bluetooth.BluetoothAdapater.isOffloadedScanBatchingSupported() method.</li>
-  <li>SHOULD support multi advertisement with at least 4 slots, but if not supported,
-MUST report &lsquo;false&rsquo; whenever queried via the
-android.bluetooth.BluetoothAdapter.isMultipleAdvertisementSupported() method.</li>
+  15 minutes, and rotate the address at timeout to protect user privacy.</li>
+  <li>SHOULD support offloading of the filtering logic to the bluetooth chipset
+  when implementing the
+  <a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">ScanFilter
+  API</a>, and MUST report the correct value of where the filtering logic is
+  implemented whenever queried via the
+  android.bluetooth.BluetoothAdapter.isOffloadedFilteringSupported() method.
+  </li>
+  <li>SHOULD support offloading of the batched scanning to the bluetooth
+  chipset, but if not supported, MUST report &lsquo;false&rsquo; whenever
+  queried via the
+  android.bluetooth.BluetoothAdapter.isOffloadedScanBatchingSupported() method.
+  </li>
+  <li>SHOULD support multi advertisement with at least 4 slots, but if not
+  supported, MUST report &lsquo;false&rsquo; whenever queried via the
+  android.bluetooth.BluetoothAdapter.isMultipleAdvertisementSupported() method.
+  </li>
 </ul>
 
 <h3 id="7_4_4_near-field_communications">7.4.4. Near-Field Communications</h3>
@@ -4000,13 +4253,14 @@
 
 <ul>
   <li>MUST report the android.hardware.nfc feature from the
-android.content.pm.PackageManager.hasSystemFeature() method [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>].</li>
+  <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager.hasSystemFeature()
+  method</a>.</li>
   <li>MUST be capable of reading and writing NDEF messages via the following NFC
-standards:
+  standards:
   <ul>
-    <li>MUST be capable of acting as an NFC Forum reader/writer (as defined by the NFC
-Forum technical specification NFCForum-TS-DigitalProtocol-1.0) via the
-following NFC standards:
+    <li>MUST be capable of acting as an NFC Forum reader/writer (as defined by
+    the NFC Forum technical specification NFCForum-TS-DigitalProtocol-1.0) via
+    the following NFC standards:
     <ul>
       <li>NfcA (ISO14443-3A)</li>
       <li>NfcB (ISO14443-3B)</li>
@@ -4014,70 +4268,78 @@
       <li>IsoDep (ISO 14443-4)</li>
       <li>NFC Forum Tag Types 1, 2, 3, 4 (defined by the NFC Forum)</li>
     </ul>
-  <li>STRONGLY RECOMMENDED to be capable of reading and writing NDEF messages as well
-      as raw data via the following NFC standards. Note that while the NFC standards
-      below are stated as STRONGLY RECOMMENDED, the Compatibility Definition for a
-      future version is planned to change these to MUST. These standards are optional
-      in this version but will be required in future versions. Existing and new devices
-      that run this version of Android are very strongly encouraged to meet these
-      requirements now so they will be able to upgrade to the future platform releases.
+  <li>STRONGLY RECOMMENDED to be capable of reading and writing NDEF messages as
+  well as raw data via the following NFC standards. Note that while the NFC
+  standards below are stated as STRONGLY RECOMMENDED, the Compatibility
+  Definition for a future version is planned to change these to MUST. These
+  standards are optional in this version but will be required in future
+  versions. Existing and new devices that run this version of Android are very
+  strongly encouraged to meet these requirements now so they will be able to
+  upgrade to the future platform releases.
   <ul>
     <li>NfcV (ISO 15693)</li>
   </ul></li>
   <li>SHOULD be capable of reading the barcode and URL (if encoded) of
-      Thinfilm NFC Barcode
-      [<a href="http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html">Resources, 102</a>] products.
-  </li>
+  <a href="http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html">Thinfilm
+  NFC Barcode</a> products.</li>
   <li>MUST be capable of transmitting and receiving data via the following
-peer-to-peer standards and protocols:
+  peer-to-peer standards and protocols:
   <ul>
     <li>ISO 18092</li>
     <li>LLCP 1.2 (defined by the NFC Forum)</li>
     <li>SDP 1.0 (defined by the NFC Forum)</li>
-    <li>NDEF Push Protocol [<a href="http://static.googleusercontent.com/media/source.android.com/en/us/compatibility/ndef-push-protocol.pdf">Resources, 103</a>]</li>
+    <li><a href="http://static.googleusercontent.com/media/source.android.com/en/us/compatibility/ndef-push-protocol.pdf">NDEF
+    Push Protocol</a></li>
     <li>SNEP 1.0 (defined by the NFC Forum)</li>
   </ul></li>
-  <li>MUST include support for Android Beam [<a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">Resources, 104</a>]:
+  <li>MUST include support for <a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">Android Beam</a>:
   <ul>
-    <li>MUST implement the SNEP default server. Valid NDEF messages received by the
-default SNEP server MUST be dispatched to applications using the
-android.nfc.ACTION_NDEF_DISCOVERED intent. Disabling Android Beam in settings
-MUST NOT disable dispatch of incoming NDEF message.</li>
-    <li>MUST honor the android.settings.NFCSHARING_SETTINGS intent to show NFC sharing
-settings [<a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">Resources, 105</a>].</li>
-    <li>MUST implement the NPP server. Messages received by the NPP server MUST be
-processed the same way as the SNEP default server.</li>
-    <li>MUST implement a SNEP client and attempt to send outbound P2P NDEF to the
-default SNEP server when Android Beam is enabled. If no default SNEP server is
-found then the client MUST attempt to send to an NPP server.</li>
-    <li>MUST allow foreground activities to set the outbound P2P NDEF message using
-android.nfc.NfcAdapter.setNdefPushMessage, and
-android.nfc.NfcAdapter.setNdefPushMessageCallback, and
-android.nfc.NfcAdapter.enableForegroundNdefPush.</li>
-    <li>SHOULD use a gesture or on-screen confirmation, such as 'Touch to Beam', before
-sending outbound P2P NDEF messages.</li>
-    <li>SHOULD enable Android Beam by default and MUST be able to send and receive
-using Android Beam, even when another proprietary NFC P2p mode is turned on.</li>
-    <li>MUST support NFC Connection handover to Bluetooth when the device supports
-Bluetooth Object Push Profile. Device implementations MUST support connection
-handover to Bluetooth when using android.nfc.NfcAdapter.setBeamPushUris, by
-implementing the &ldquo;Connection Handover version 1.2&rdquo; [<a href="http://members.nfc-forum.org/specs/spec_list/#conn_handover">Resources, 106</a>] and &ldquo;Bluetooth Secure Simple Pairing Using NFC version 1.0&rdquo; [<a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">Resources, 107</a>] specs from the NFC Forum. Such an implementation MUST implement the handover
-LLCP service with service name &ldquo;urn:nfc:sn:handover&rdquo; for exchanging the
-handover request/select records over NFC, and it MUST use the Bluetooth Object
-Push Profile for the actual Bluetooth data transfer. For legacy reasons (to
-remain compatible with Android 4.1 devices), the implementation SHOULD still
-accept SNEP GET requests for exchanging the handover request/select records
-over NFC. However an implementation itself SHOULD NOT send SNEP GET requests
-for performing connection handover.</li>
+    <li>MUST implement the SNEP default server. Valid NDEF messages received by
+    the default SNEP server MUST be dispatched to applications using the
+    android.nfc.ACTION_NDEF_DISCOVERED intent. Disabling Android Beam in
+    settings MUST NOT disable dispatch of incoming NDEF message.</li>
+    <li>MUST honor the android.settings.NFCSHARING_SETTINGS intent to show
+    <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">NFC
+    sharing settings</a>.</li>
+    <li>MUST implement the NPP server. Messages received by the NPP server MUST
+    be processed the same way as the SNEP default server.</li>
+    <li>MUST implement a SNEP client and attempt to send outbound P2P NDEF to
+    the default SNEP server when Android Beam is enabled. If no default SNEP
+    server is found then the client MUST attempt to send to an NPP server.</li>
+    <li>MUST allow foreground activities to set the outbound P2P NDEF message
+    using android.nfc.NfcAdapter.setNdefPushMessage, and
+    android.nfc.NfcAdapter.setNdefPushMessageCallback, and
+    android.nfc.NfcAdapter.enableForegroundNdefPush.</li>
+    <li>SHOULD use a gesture or on-screen confirmation, such as 'Touch to Beam',
+    before sending outbound P2P NDEF messages.</li>
+    <li>SHOULD enable Android Beam by default and MUST be able to send and
+    receive using Android Beam, even when another proprietary NFC P2p mode is
+    turned on.</li>
+    <li>MUST support NFC Connection handover to Bluetooth when the device
+    supports Bluetooth Object Push Profile. Device implementations MUST support
+    connection handover to Bluetooth when using
+    android.nfc.NfcAdapter.setBeamPushUris, by implementing the
+    &ldquo;<a href="http://members.nfc-forum.org/specs/spec_list/#conn_handover">Connection
+    Handover version 1.2</a>&rdquo; and
+    &ldquo;<a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">Bluetooth
+    Secure Simple Pairing Using NFC version 1.0</a>&rdquo; specs from the NFC
+    Forum. Such an implementation MUST implement the handover LLCP service with
+    service name &ldquo;urn:nfc:sn:handover&rdquo; for exchanging the handover
+    request/select records over NFC, and it MUST use the Bluetooth Object Push
+    Profile for the actual Bluetooth data transfer. For legacy reasons (to
+    remain compatible with Android 4.1 devices), the implementation SHOULD still
+    accept SNEP GET requests for exchanging the handover request/select records
+    over NFC. However an implementation itself SHOULD NOT send SNEP GET requests
+    for performing connection handover.</li>
   </ul></li>
   <li>MUST poll for all supported technologies while in NFC discovery mode.</li>
   <li>SHOULD be in NFC discovery mode while the device is awake with the screen
-active and the lock-screen unlocked.</li>
+  active and the lock-screen unlocked.</li>
 </ul>
 </ul>
 
-<p>(Note that publicly available links are not available for the JIS, ISO, and NFC
-Forum specifications cited above.)</p>
+<p>(Note that publicly available links are not available for the JIS, ISO, and
+NFC Forum specifications cited above.)</p>
 
 <p>Android includes support for NFC Host Card Emulation (HCE) mode. If a
 device implementation does include an NFC controller chipset capable of HCE and
@@ -4085,11 +4347,13 @@
 
 <ul>
   <li>MUST report the android.hardware.nfc.hce feature constant.</li>
-  <li>MUST support NFC HCE APIs as defined in the Android SDK [<a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">Resources, 108</a>].</li>
+  <li>MUST support
+  <a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">NFC
+  HCE APIs</a> as defined in the Android SDK.</li>
 </ul>
 
-<p>Additionally, device implementations MAY include reader/writer support for the
-following MIFARE technologies.</p>
+<p>Additionally, device implementations MAY include reader/writer support for
+the following MIFARE technologies.</p>
 
 <ul>
   <li>MIFARE Classic</li>
@@ -4101,18 +4365,21 @@
 implementation supports MIFARE in the reader/writer role, it:</p>
 
 <ul>
-  <li>MUST implement the corresponding Android APIs as documented by the Android SDK.</li>
+  <li>MUST implement the corresponding Android APIs as documented by the Android
+  SDK.</li>
   <li>MUST report the feature com.nxp.mifare from the
-android.content.pm.PackageManager.hasSystemFeature() method [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>]. Note that this is not a standard Android feature and as such does not appear
-as a constant in the android.content.pm.PackageManager class.</li>
-  <li>MUST NOT implement the corresponding Android APIs nor report the com.nxp.mifare
-feature unless it also implements general NFC support as described in this
-section.</li>
+  <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager.hasSystemFeature()</a>
+  method. Note that this is not a standard Android feature and as such does not
+  appear as a constant in the android.content.pm.PackageManager class.</li>
+  <li>MUST NOT implement the corresponding Android APIs nor report the
+  com.nxp.mifare feature unless it also implements general NFC support as
+  described in this section.</li>
 </ul>
 
 <p>If a device implementation does not include NFC hardware, it MUST NOT declare
 the android.hardware.nfc feature from the
-android.content.pm.PackageManager.hasSystemFeature() method [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>], and MUST implement the Android NFC API as a no-op.</p>
+<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">android.content.pm.PackageManager.hasSystemFeature()</a>
+method, and MUST implement the Android NFC API as a no-op.</p>
 
 <p>As the classes android.nfc.NdefMessage and android.nfc.NdefRecord represent a
 protocol-independent data representation format, device implementations MUST
@@ -4128,9 +4395,9 @@
 technologies that satisfy this requirement include EDGE, HSPA, EV-DO, 802.11g,
 Ethernet, Bluetooth PAN, etc.</p>
 
-<p>Device implementations where a physical networking standard (such as Ethernet)
-is the primary data connection SHOULD also include support for at least one
-common wireless data standard, such as 802.11 (Wi-Fi).</p>
+<p>Device implementations where a physical networking standard (such as
+Ethernet) is the primary data connection SHOULD also include support for at
+least one common wireless data standard, such as 802.11 (Wi-Fi).</p>
 
 <p>Devices MAY implement more than one form of data connectivity.</p>
 
@@ -4167,7 +4434,9 @@
 
 
 <p>Device implementations MUST have the master auto-sync setting on by default so
-that the method getMasterSyncAutomatically() returns &ldquo;true&rdquo; [<a href="http://developer.android.com/reference/android/content/ContentResolver.html">Resources, 109</a>].</p>
+that the method
+<a href="http://developer.android.com/reference/android/content/ContentResolver.html">getMasterSyncAutomatically()</a>
+returns &ldquo;true&rdquo;.</p>
 
 <h2 id="7_5_cameras">7.5. Cameras</h2>
 
@@ -4180,9 +4449,10 @@
 typically used to image the user, such as for video conferencing and similar
 applications.</p>
 
-<p>If a device implementation includes at least one camera, it SHOULD be possible
-for an application to simultaneously allocate 3 bitmaps equal to the size of
-the images produced by the largest-resolution camera sensor on the device.</p>
+<p>If a device implementation includes at least one camera, it SHOULD be
+possible for an application to simultaneously allocate 3 bitmaps equal to the
+size of the images produced by the largest-resolution camera sensor on the
+device.</p>
 
 <h3 id="7_5_1_rear-facing_camera">7.5.1. Rear-Facing Camera</h3>
 
@@ -4192,18 +4462,18 @@
 
 <ul>
   <li>MUST report the feature flag android.hardware.camera and
-android.hardware.camera.any.</li>
+  android.hardware.camera.any.</li>
   <li>MUST have a resolution of at least 2 megapixels.</li>
-  <li>SHOULD have either hardware auto-focus or software auto-focus implemented in
-the camera driver (transparent to application software).</li>
+  <li>SHOULD have either hardware auto-focus or software auto-focus implemented
+  in the camera driver (transparent to application software).</li>
   <li>MAY have fixed-focus or EDOF (extended depth of field) hardware.</li>
-  <li>MAY include a flash. If the Camera includes a flash, the flash lamp MUST NOT be
-lit while an android.hardware.Camera.PreviewCallback instance has been
-registered on a Camera preview surface, unless the application has explicitly
-enabled the flash by enabling the FLASH_MODE_AUTO or FLASH_MODE_ON attributes
-of a Camera.Parameters object. Note that this constraint does not apply to the
-device&rsquo;s built-in system camera application, but only to third-party
-applications using Camera.PreviewCallback.</li>
+  <li>MAY include a flash. If the Camera includes a flash, the flash lamp MUST
+  NOT be lit while an android.hardware.Camera.PreviewCallback instance has been
+  registered on a Camera preview surface, unless the application has explicitly
+  enabled the flash by enabling the FLASH_MODE_AUTO or FLASH_MODE_ON attributes
+  of a Camera.Parameters object. Note that this constraint does not apply to the
+  device&rsquo;s built-in system camera application, but only to third-party
+  applications using Camera.PreviewCallback.</li>
 </ul>
 
 <h3 id="7_5_2_front-facing_camera">7.5.2. Front-Facing Camera</h3>
@@ -4214,32 +4484,36 @@
 
 <ul>
   <li>MUST report the feature flag android.hardware.camera.any and
-android.hardware.camera.front.</li>
+  android.hardware.camera.front.</li>
   <li>MUST have a resolution of at least VGA (640x480 pixels).</li>
   <li>MUST NOT use a front-facing camera as the default for the Camera API. The
-camera API in Android has specific support for front-facing cameras and device
-implementations MUST NOT configure the API to to treat a front-facing camera as
-the default rear-facing camera, even if it is the only camera on the device.</li>
-  <li>MAY include features (such as auto-focus, flash, etc.) available to rear-facing
-cameras as described in <a href="#7_5_1_rear-facing_camera">section 7.5.1</a>.</li>
-  <li>MUST horizontally reflect (i.e. mirror) the stream displayed by an app in a
-CameraPreview, as follows:
+  camera API in Android has specific support for front-facing cameras and device
+  implementations MUST NOT configure the API to to treat a front-facing camera
+  as the default rear-facing camera, even if it is the only camera on the
+  device.</li>
+  <li>MAY include features (such as auto-focus, flash, etc.) available to
+  rear-facing cameras as described in
+  <a href="#7_5_1_rear-facing_camera">section 7.5.1</a>.</li>
+  <li>MUST horizontally reflect (i.e. mirror) the stream displayed by an app in
+  a CameraPreview, as follows:
   <ul>
-    <li>If the device implementation is capable of being rotated by user (such as
-automatically via an accelerometer or manually via user input), the camera
-preview MUST be mirrored horizontally relative to the device&rsquo;s current
-orientation.</li>
-    <li>If the current application has explicitly requested that the Camera display be
-rotated via a call to the android.hardware.Camera.setDisplayOrientation()[<a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)">Resources, 110</a>] method, the camera preview MUST be mirrored horizontally relative to the
-orientation specified by the application.</li>
-    <li>Otherwise, the preview MUST be mirrored along the device&rsquo;s default horizontal
-axis.</li>
+    <li>If the device implementation is capable of being rotated by user (such
+    as automatically via an accelerometer or manually via user input), the
+    camera preview MUST be mirrored horizontally relative to the device&rsquo;s
+    current orientation.</li>
+    <li>If the current application has explicitly requested that the Camera
+    display be rotated via a call to the
+    <a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)">android.hardware.Camera.setDisplayOrientation()</a>
+    method, the camera preview MUST be mirrored horizontally relative to the
+    orientation specified by the application.</li>
+    <li>Otherwise, the preview MUST be mirrored along the device&rsquo;s default
+    horizontal axis.</li>
   </ul></li>
   <li>MUST mirror the image displayed by the postview in the same manner as the
-camera preview image stream. If the device implementation does not support
-postview, this requirement obviously does not apply.</li>
-  <li>MUST NOT mirror the final captured still image or video streams returned to
-application callbacks or committed to media storage.</li>
+  camera preview image stream. If the device implementation does not support
+  postview, this requirement obviously does not apply.</li>
+  <li>MUST NOT mirror the final captured still image or video streams returned
+  to application callbacks or committed to media storage.</li>
 </ul>
 
 <h3 id="7_5_3_external_camera">7.5.3. External Camera</h3>
@@ -4281,52 +4555,61 @@
 
 <ul>
   <li>If an application has never called
-android.hardware.Camera.Parameters.setPreviewFormat(int), then the device MUST
-use android.hardware.PixelFormat.YCbCr_420_SP for preview data provided to
-application callbacks.</li>
-  <li>If an application registers an android.hardware.Camera.PreviewCallback instance
-and the system calls the onPreviewFrame() method when the preview format is
-YCbCr_420_SP, the data in the byte[] passed into onPreviewFrame() must further
-be in the NV21 encoding format. That is, NV21 MUST be the default.</li>
+  android.hardware.Camera.Parameters.setPreviewFormat(int), then the device MUST
+  use android.hardware.PixelFormat.YCbCr_420_SP for preview data provided to
+  application callbacks.</li>
+  <li>If an application registers an android.hardware.Camera.PreviewCallback
+  instance and the system calls the onPreviewFrame() method when the preview
+  format is YCbCr_420_SP, the data in the byte[] passed into onPreviewFrame()
+  must further be in the NV21 encoding format. That is, NV21 MUST be the
+  default.</li>
   <li>For android.hardware.Camera, device implementations MUST support the YV12
-format (as denoted by the android.graphics.ImageFormat.YV12 constant) for
-camera previews for both front- and rear-facing cameras. (The hardware video
-encoder and camera may use any native pixel format, but the device
-implementation MUST support conversion to YV12.)</li>
+  format (as denoted by the android.graphics.ImageFormat.YV12 constant) for
+  camera previews for both front- and rear-facing cameras. (The hardware video
+  encoder and camera may use any native pixel format, but the device
+  implementation MUST support conversion to YV12.)</li>
   <li>For android.hardware.camera2, device implementations must support the
-android.hardware.ImageFormat.YUV_420_888 and android.hardware.ImageFormat.JPEG
-formats as outputs through the android.media.ImageReader API.</li>
+  android.hardware.ImageFormat.YUV_420_888 and android.hardware.ImageFormat.JPEG
+  formats as outputs through the android.media.ImageReader API.</li>
 </ul>
 
-<p>Device implementations MUST still implement the full Camera API included in the
-Android SDK documentation [<a href="http://developer.android.com/reference/android/hardware/Camera.html">Resources, 111</a>],
-regardless of whether the device includes hardware autofocus or other
-capabilities. For instance, cameras that lack autofocus MUST still call any
-registered android.hardware.Camera.AutoFocusCallback instances (even though
-this has no relevance to a non-autofocus camera.) Note that this does apply to
-front-facing cameras; for instance, even though most front-facing cameras do
-not support autofocus, the API callbacks must still be &ldquo;faked&rdquo; as described.</p>
+<p>Device implementations MUST still implement the full
+<a href="http://developer.android.com/reference/android/hardware/Camera.html">Camera
+API</a> included in the Android SDK documentation, regardless of whether the
+device includes hardware autofocus or other capabilities. For instance, cameras
+that lack autofocus MUST still call any registered
+android.hardware.Camera.AutoFocusCallback instances (even though this has no
+relevance to a non-autofocus camera.) Note that this does apply to front-facing
+cameras; for instance, even though most front-facing cameras do not support
+autofocus, the API callbacks must still be &ldquo;faked&rdquo; as described.</p>
 
-<p>Device implementations MUST recognize and honor each parameter name defined as
-a constant on the android.hardware.Camera.Parameters class, if the underlying
-hardware supports the feature. If the device hardware does not support a
-feature, the API must behave as documented. Conversely, device implementations
-MUST NOT honor or recognize string constants passed to the
-android.hardware.Camera.setParameters() method other than those documented as
-constants on the android.hardware.Camera.Parameters. That is, device
+<p>Device implementations MUST recognize and honor each parameter name defined
+as a constant on the
+<a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html">android.hardware.Camera.Parameters</a>
+class, if the underlying hardware supports the feature. If the device hardware
+does not support a feature, the API must behave as documented. Conversely,
+device implementations MUST NOT honor or recognize string constants passed to
+the android.hardware.Camera.setParameters() method other than those documented
+as constants on the android.hardware.Camera.Parameters. That is, device
 implementations MUST support all standard Camera parameters if the hardware
-allows, and MUST NOT support custom Camera parameter types. For instance,
-device implementations that support image capture using high dynamic range
-(HDR) imaging techniques MUST support camera parameter Camera.SCENE_MODE_HDR [<a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html">Resources, 112</a>].</p>
+allows, and MUST NOT support custom Camera parameter types. For instance, device
+implementations that support image capture using high dynamic range (HDR)
+imaging techniques MUST support camera parameter Camera.SCENE_MODE_HDR.</p>
 
 <p>Because not all device implementations can fully support all the features of
 the android.hardware.camera2 API, device implementations MUST report the proper
-level of support with the android.info.supportedHardwareLevel property as
-described in the Android SDK [<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">Resources, 113</a>] and report the appropriate framework feature flags [<a href="http://source.android.com/devices/camera/versioning.html">Resources, 114</a>].</p>
+level of support with the
+<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">android.info.supportedHardwareLevel</a>
+property as described in the Android SDK and report the appropriate
+<a href="http://source.android.com/devices/camera/versioning.html">framework
+feature flags</a>.</p>
 
-<p>Device implementations MUST also declare its Individual camera capabilities of
-android.hardware.camera2 via the android.request.availableCapabilities property
-and declare the appropriate feature flags [<a href="http://source.android.com/devices/camera/versioning.html">Resources, 114</a>]; a device must define the feature flag if any of its attached camera devices supports the feature.</p>
+<p>Device implementations MUST also declare its Individual camera capabilities
+of android.hardware.camera2 via the android.request.availableCapabilities
+property and declare the appropriate
+<a href="http://source.android.com/devices/camera/versioning.html">feature
+flags</a>; a device must define the feature flag if any of its attached camera
+devices supports the feature.</p>
 
 <p>Device implementations MUST broadcast the Camera.ACTION_NEW_PICTURE intent
 whenever a new picture is taken by the camera and the entry of the picture has
@@ -4340,11 +4623,11 @@
 
 
 <p>Both front- and rear-facing cameras, if present, MUST be oriented so that the
-long dimension of the camera aligns with the screen&rsquo;s long dimension. That is,
-when the device is held in the landscape orientation, cameras MUST capture
-images in the landscape orientation. This applies regardless of the device&rsquo;s
-natural orientation; that is, it applies to landscape-primary devices as well
-as portrait-primary devices.</p>
+long dimension of the camera aligns with the screen&rsquo;s long dimension. That
+is, when the device is held in the landscape orientation, cameras MUST capture
+images in the landscape orientation. This applies regardless of the
+device&rsquo;s natural orientation; that is, it applies to landscape-primary
+devices as well as portrait-primary devices.</p>
 
 <h2 id="7_6_memory_and_storage">7.6. Memory and Storage</h2>
 
@@ -4357,9 +4640,10 @@
 </div>
 
 
-<p>The memory available to the kernel and userspace on device implementations MUST
-be at least equal or larger than the minimum values specified by the following
-table. (See <a href="#7_1_1_screen_configuration">section 7.1.1</a> for screen size and density definitions.)</p>
+<p>The memory available to the kernel and userspace on device implementations
+MUST be at least equal or larger than the minimum values specified by the
+following table. (See <a href="#7_1_1_screen_configuration">section 7.1.1</a>
+for screen size and density definitions.)</p>
 <table>
  <tr>
     <th>Density and screen size</th>
@@ -4419,35 +4703,38 @@
 implementations MUST have at least 1.5GB of non-volatile storage available for
 application private data. That is, the /data partition MUST be at least 5GB for
 Android Television devices and at least 1.5GB for other device implementations.
-Device implementations that run Android are <strong>STRONGLY RECOMMENDED</strong> to have at least 3GB of non-volatile storage for application private data so
-they will be able to upgrade to the future platform releases.</p>
+Device implementations that run Android are <strong>STRONGLY
+RECOMMENDED</strong> to have at least 3GB of non-volatile storage for
+application private data so they will be able to upgrade to the future platform
+releases.</p>
 
-<p>The Android APIs include a Download Manager that applications MAY use to
-download data files [<a href="http://developer.android.com/reference/android/app/DownloadManager.html">Resources, 115</a>]. The device implementation of the Download Manager MUST be capable of
-downloading individual files of at least 100MB in size to the default &ldquo;cache"
-location.</p>
+<p>The Android APIs include a
+<a href="http://developer.android.com/reference/android/app/DownloadManager.html">Download
+Manager</a> that applications MAY use to download data files. The device
+implementation of the Download Manager MUST be capable of downloading individual
+files of at least 100MB in size to the default &ldquo;cache&rdquo; location.</p>
 
 <h3 id="7_6_2_application_shared_storage">7.6.2. Application Shared Storage</h3>
 
 
 <p>Device implementations MUST offer shared storage for applications also often
-referred as &ldquo;shared external storage&rdquo;. </p>
+referred as &ldquo;shared external storage&rdquo;.</p>
 
 <p>Device implementations MUST be configured with shared storage mounted by
-default, &ldquo;out of the box&rdquo;. If the shared storage is not mounted on the Linux
-path /sdcard, then the device MUST include a Linux symbolic link from /sdcard
-to the actual mount point.</p>
+default, &ldquo;out of the box&rdquo;. If the shared storage is not mounted on
+the Linuxpath /sdcard, then the device MUST include a Linux symbolic link from
+/sdcard to the actual mount point.</p>
 
-<p>Device implementations MAY have hardware for user-accessible removable storage,
-such as a Secure Digital (SD) card slot. If this slot is used to satisfy the
-shared storage requirement, the device implementation:</p>
+<p>Device implementations MAY have hardware for user-accessible removable
+storage, such as a Secure Digital (SD) card slot. If this slot is used to
+satisfy the shared storage requirement, the device implementation:</p>
 
 <ul>
-  <li>MUST implement a toast or pop-up user interface warning the user when there is
-no SD card.</li>
-  <li>MUST include a FAT-formatted SD card 1GB in size or larger OR show on the box
-and other material available at time of purchase that the SD card has to be
-separately purchased.</li>
+  <li>MUST implement a toast or pop-up user interface warning the user when
+  there is no SD card.</li>
+  <li>MUST include a FAT-formatted SD card 1GB in size or larger OR show on the
+  box and other material available at time of purchase that the SD card has to
+  be separately purchased.</li>
   <li>MUST mount the SD card by default.</li>
 </ul>
 
@@ -4464,12 +4751,12 @@
 Shared storage MUST otherwise be writable by any application that obtains that
 permission.</p>
 
-<p>Device implementations that include multiple shared storage paths (such as both
-an SD card slot and shared internal storage) MUST NOT allow Android
+<p>Device implementations that include multiple shared storage paths (such as
+both an SD card slot and shared internal storage) MUST NOT allow Android
 applications to write to the secondary external storage, except for their
 package-specific directories on the secondary external storage, but SHOULD
-expose content from both storage paths transparently through Android&rsquo;s media
-scanner service and android.provider.MediaStore.</p>
+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, if the device implementation
 has a USB port with USB peripheral mode support, it MUST provide some mechanism
@@ -4479,26 +4766,24 @@
 Transfer Protocol, it:</p>
 
 <ul>
-  <li>SHOULD be compatible with the reference Android MTP host, Android File Transfer
-[<a href="http://www.android.com/filetransfer">Resources, 116</a>].</li>
+  <li>SHOULD be compatible with the reference Android MTP host,
+  <a href="http://www.android.com/filetransfer">Android File Transfer</a>.</li>
   <li>SHOULD report a USB device class of 0x00.</li>
   <li>SHOULD report a USB interface name of 'MTP'.</li>
 </ul>
 
 <h3 id="7_6_3_adoptable_storage">7.6.3. Adoptable Storage</h3>
 
-<p>Device implementations are STRONGLY RECOMMENDED to implement adoptable
-storage if the removable storage device port is in a long-term stable location,
-such as within the battery compartment or other protective cover
-[<a
-href="http://source.android.com/devices/storage/adoptable.html">Resources,
-117</a>].</p>
+<p>Device implementations are STRONGLY RECOMMENDED to implement
+<a href="http://source.android.com/devices/storage/adoptable.html">adoptable
+storage</a> if the removable storage device port is in a long-term stable
+location, such as within the battery compartment or other protective cover.</p>
 
 <p>Device implementations such as a television, MAY enable adoption through USB
 ports as the device is expected to be static and not mobile. But for other
 device implementations that are mobile in nature, it is STRONGLY RECOMMENDED to
-implement the adoptable storage in a long-term stable location, since accidentally
-disconnecting them can cause data loss/corruption.</p>
+implement the adoptable storage in a long-term stable location, since
+accidentally disconnecting them can cause data loss/corruption.</p>
 
 <h2 id="7_7_usb">7.7. USB</h2>
 
@@ -4506,54 +4791,72 @@
 <p>Device implementations SHOULD support USB peripheral mode and SHOULD support
 USB host mode.</p>
 
-<p>If a device implementation includes a USB port supporting peripheral mode:</p>
+<p>If a device implementation includes a USB port supporting peripheral mode:
+</p>
 
 <ul>
-  <li>The port MUST be connectable to a USB host that has a standard type-A or type
--C USB port.</li>
-  <li>The port SHOULD use micro-A, micro-AB or type-C USB form factor. Existing and
-new Android devices are <strong>STRONGLY RECOMMENDED to meet these requirements</strong> so they will be able to upgrade to the future platform releases.</li>
-  <li>The port SHOULD be centered in the middle of an edge. Device implementations
-SHOULD either locate the port on the bottom of the device (according to natural
-orientation) or enable software screen rotation for all apps (including home
-screen), so that the display draws correctly when the device is oriented with
-the port at bottom. Existing and new Android devices are <strong>STRONGLY RECOMMENDED to meet these requirements</strong> so they will be able to upgrade to future platform releases.</li>
+  <li>The port MUST be connectable to a USB host that has a standard type-A or
+  type-C USB port.</li>
+  <li>The port SHOULD use micro-A, micro-AB or type-C USB form factor. Existing
+  and new Android devices are <strong>STRONGLY RECOMMENDED to meet these
+  requirements</strong> so they will be able to upgrade to the future platform
+  releases.</li>
+  <li>The port SHOULD be centered in the middle of an edge. Device
+  implementations SHOULD either locate the port on the bottom of the device
+  (according to natural orientation) or enable software screen rotation for all
+  apps (including home screen), so that the display draws correctly when the
+  device is oriented with the port at bottom. Existing and new Android devices
+  are <strong>STRONGLY RECOMMENDED 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.</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
-device it MUST implement the AOA API. Device implementations implementing the
-AOA specification:
+  contents of the shared storage volume using either USB mass storage or Media
+  Transfer Protocol.</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 device it MUST implement the AOA API. Device implementations
+  implementing the AOA specification:
   <ul>
-    <li>MUST declare support for the hardware feature android.hardware.usb.accessory [<a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html">Resources, 118</a>].</li>
-    <li>MUST implement the USB audio class as documented in the Android SDK
-documentation [<a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">Resources, 119</a>].</li>
-    <li>And also the USB mass storage class, MUST include the string "android"
-at the end of the interface description <code>iInterface</code> string of the
-USB mass storage</li>
+    <li>MUST declare support for the hardware feature
+    <a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html">android.hardware.usb.accessory</a>.
+    </li>
+    <li>MUST implement the
+    <a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">USB
+    audio class</a>as documented in the Android SDK documentation.</li>
+    <li>The USB mass storage class MUST include the string "android" at the end
+    of the interface description <code>iInterface</code> string of the USB mass
+    storage</li>
   </ul>
   </li>
-  <li>It SHOULD implement support to draw 1.5 A current during HS chirp and traffic
-as specified in the USB battery charging specification [<a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">Resources, 120</a>]. Existing and new Android devices are <strong>STRONGLY RECOMMENDED to meet these requirements</strong> so they will be able to upgrade to the future platform releases.</li>
-  <li>The value of iSerialNumber in USB standard device descriptor MUST be equal to
-the value of android.os.Build.SERIAL.</li>
+  <li>It SHOULD implement support to draw 1.5 A current during HS chirp and
+  traffic as specified in the
+  <a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">USB
+  battery charging specification</a>. Existing and new Android devices are
+  <strong>STRONGLY RECOMMENDED to meet these requirements</strong> so they will
+  be able to upgrade to the future platform releases.</li>
+  <li>The value of iSerialNumber in USB standard device descriptor MUST be equal
+  to the value of android.os.Build.SERIAL.</li>
 </ul>
 
 <p>If a device implementation includes a USB port supporting host mode, it:</p>
 
 <ul>
-  <li>SHOULD use a type-C USB port, if the device implementation supports USB 3.1.</li>
-  <li>MAY use a non-standard port form factor, but if so MUST ship with a cable or
-cables adapting the port to a standard type-A or type-C USB port.</li>
+  <li>SHOULD use a type-C USB port, if the device implementation supports USB
+  3.1.</li>
+  <li>MAY use a non-standard port form factor, but if so MUST ship with a cable
+  or cables adapting the port to a standard type-A or type-C USB port.</li>
   <li>MAY use a micro-AB USB port, but if so SHOULD ship with a cable or cables
-adapting the port to a standard type-A or type-C USB port.</li>
-  <li>is <strong>STRONGLY RECOMMENDED</strong> to implement the USB audio class as documented in the Android SDK
-documentation [<a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">Resources, 119</a>].</li>
-  <li>MUST implement the Android USB host API as documented in the Android SDK, and
-MUST declare support for the hardware feature android.hardware.usb.host [<a href="http://developer.android.com/guide/topics/connectivity/usb/host.html">Resources, 121</a>].</li>
-  <li>SHOULD support the Charging Downstream Port output current range of 1.5 A ~ 5 A
-as specified in the USB Battery Charging Specifications [<a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">Resources, 120</a>].</li>
+  adapting the port to a standard type-A or type-C USB port.</li>
+  <li>is <strong>STRONGLY RECOMMENDED</strong> to implement the
+  <a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">USB
+  audio class</a> as documented in the Android SDK documentation.</li>
+  <li>MUST implement the Android USB host API as documented in the Android SDK,
+  and MUST declare support for the hardware feature
+  <a href="http://developer.android.com/guide/topics/connectivity/usb/host.html">android.hardware.usb.host</a>.
+  </li>
+  <li>SHOULD support the Charging Downstream Port output current range of 1.5 A
+  ~ 5 A as specified in the
+  <a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">USB
+  Battery Charging Specifications</a>.</li>
 </ul>
 
 <h2 id="7_8_audio">7.8. Audio</h2>
@@ -4570,15 +4873,18 @@
 <p>Device implementations MAY omit a microphone. However, if a device
 implementation omits a microphone, it MUST NOT report the
 android.hardware.microphone feature constant, and MUST implement the audio
-recording API at least as no-ops, per <a href="#7_hardware_compatibility">section 7</a>.
-Conversely, device implementations that do possess a microphone:</p>
+recording API at least as no-ops, per
+<a href="#7_hardware_compatibility">section 7</a>. Conversely, device
+implementations that do possess a microphone:</p>
 
 <ul>
-  <li>MUST report the android.hardware.microphone feature constant</li>
-  <li>MUST meet the audio recording requirements in <a href="#5_4_audio_recording">section 5.4</a></li>
-  <li>MUST meet the audio latency requirements in <a href="#5_6_audio_latency">section 5.6</a></li>
+  <li>MUST report the android.hardware.microphone feature constant.</li>
+  <li>MUST meet the audio recording requirements in
+  <a href="#5_4_audio_recording">section 5.4</a>.</li>
+  <li>MUST meet the audio latency requirements in
+  <a href="#5_6_audio_latency">section 5.6</a>.</li>
   <li>STRONGLY RECOMMENDED to support near-ultrasound recording as described in
-    <a href="#7_8_3_near_ultrasound">section 7.8.3</a></li>
+  <a href="#7_8_3_near_ultrasound">section 7.8.3</a>.</li>
 </ul>
 
 <h3 id="7_8_2_audio_output">7.8.2. Audio Output</h3>
@@ -4592,10 +4898,12 @@
 
 <ul>
   <li>MUST report the android.hardware.audio.output feature constant.</li>
-  <li>MUST meet the audio playback requirements in <a href="#5_5_audio_playback">section 5.5</a>.</li>
-  <li>MUST meet the audio latency requirements in <a href="#5_6_audio_latency">section 5.6</a>.</li>
+  <li>MUST meet the audio playback requirements in
+  <a href="#5_5_audio_playback">section 5.5</a>.</li>
+  <li>MUST meet the audio latency requirements in
+  <a href="#5_6_audio_latency">section 5.6</a>.</li>
   <li>STRONGLY RECOMMENDED to support near-ultrasound playback as described in
-    <a href="#7_8_3_near_ultrasound">section 7.8.3</a></li>
+  <a href="#7_8_3_near_ultrasound">section 7.8.3</a>.</li>
 </ul>
 
 <p>Conversely, if a device implementation does not include a speaker or audio
@@ -4609,46 +4917,48 @@
 <h4 id="7_8_2_1_analog_audio_ports">7.8.2.1. Analog Audio Ports</h4>
 
 
-<p>In order to be compatible with the headsets and other audio accessories using
-the 3.5mm audio plug across the Android ecosystem [<a href="http://source.android.com/accessories/headset-spec.html">Resources, 122</a>], if a device implementation includes one or more analog audio ports, at least
-one of the audio port(s) SHOULD be a 4 conductor 3.5mm audio jack. If a device
-implementation has a 4 conductor 3.5mm audio jack, it:</p>
+<p>In order to be compatible with the
+<a href="http://source.android.com/accessories/headset-spec.html">headsets and
+other audio accessories</a> using the 3.5mm audio plug across the Android
+ecosystem, if a device implementation includes one or more analog audio ports,
+at least one of the audio port(s) SHOULD be a 4 conductor 3.5mm audio jack. If a
+device implementation has a 4 conductor 3.5mm audio jack, it:</p>
 
 <ul>
-  <li>MUST support audio playback to stereo headphones and stereo headsets with a
-microphone, and SHOULD support audio recording from stereo headsets with a
-microphone.</li>
-  <li>MUST support TRRS audio plugs with the CTIA pin-out order, and SHOULD support
-audio plugs with the OMTP pin-out order.</li>
-  <li>MUST support the detection of microphone on the plugged in audio accessory, if
-the device implementation supports a microphone, and broadcast the
-android.intent.action.HEADSET_PLUG with the extra value microphone set as 1.</li>
-  <li>SHOULD support the detection and mapping to the keycodes for the following 3
-ranges of equivalent impedance between the microphone and ground conductors on
-the audio plug:
+  <li>MUST support audio playback to stereo headphones and stereo headsets with
+  a microphone, and SHOULD support audio recording from stereo headsets with a
+  microphone.</li>
+  <li>MUST support TRRS audio plugs with the CTIA pin-out order, and SHOULD
+  support audio plugs with the OMTP pin-out order.</li>
+  <li>MUST support the detection of microphone on the plugged in audio
+  accessory, if the device implementation supports a microphone, and broadcast
+  the android.intent.action.HEADSET_PLUG with the extra value microphone set as
+  1.</li>
+  <li>SHOULD support the detection and mapping to the keycodes for the following
+  3 ranges of equivalent impedance between the microphone and ground conductors
+  on the audio plug:
   <ul>
     <li><strong>70 ohm or less</strong>: KEYCODE_HEADSETHOOK</li>
     <li><strong>210&#45;290 Ohm</strong>: KEYCODE_VOLUME_UP</li>
     <li><strong>360&#45;680 Ohm</strong>: KEYCODE_VOLUME_DOWN</li>
   </ul></li>
-  <li>SHOULD support the detection and mapping to the keycode for the following range
-of equivalent impedance between the microphone and ground conductors on the
-audio plug:
+  <li>SHOULD support the detection and mapping to the keycode for the following
+  range of equivalent impedance between the microphone and ground conductors on
+  the audio plug:
   <ul>
     <li><strong>110&#45;180 Ohm: </strong>KEYCODE_VOICE_ASSIST</li>
   </ul></li>
   <li>MUST trigger ACTION_HEADSET_PLUG upon a plug insert, but only after all
-contacts on plug are touching their relevant segments on the jack.</li>
-  <li>MUST be capable of driving at least 150mV &plusmn; 10% of output voltage on a 32 Ohm
-speaker impedance.</li>
+  contacts on plug are touching their relevant segments on the jack.</li>
+  <li>MUST be capable of driving at least 150mV &plusmn; 10% of output voltage
+  on a 32 Ohm speaker impedance.</li>
   <li>MUST have a microphone bias voltage between 1.8V ~ 2.9V.</li>
 </ul>
 
 <h3 id="7_8_3_near_ultrasound">7.8.3. Near-Ultrasound </h3>
 
-<p>Near-Ultrasound audio is the 18.5 kHz to 20 kHz band.
-Device implementations MUST correctly report the support
-of near-ultrasound audio capability via the
+<p>Near-Ultrasound audio is the 18.5 kHz to 20 kHz band. Device implementations
+MUST correctly report the support of near-ultrasound audio capability via the
 <a href="http://developer.android.com/reference/android/media/AudioManager.html#getProperty(java.lang.String)">AudioManager.getProperty</a>
 API as follows:
 </p>
@@ -4658,58 +4968,65 @@
   <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND">PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND</a>
   is "true", then
   <ul>
-    <li>The microphone's mean power response in the 18.5 kHz to 20 kHz band MUST be no more than
-    15 dB below the response at 2 kHz.</li>
-    <li>The signal to noise ratio of the microphone MUST be no lower than 80 dB.</li>
+    <li>The microphone's mean power response in the 18.5 kHz to 20 kHz band MUST
+    be no more than 15 dB below the response at 2 kHz.</li>
+    <li>The signal to noise ratio of the microphone MUST be no lower than 80 dB.
+    </li>
   </ul>
   </li>
   <li>If
   <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND">PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND</a>
-  is "true", then the speaker's mean response in 18.5 kHz - 20 kHz MUST be no lower than 40 dB
-  below the response at 2 kHz.
-  </li>
+  is "true", then the speaker's mean response in 18.5 kHz - 20 kHz MUST be no
+  lower than 40 dB below the response at 2 kHz.</li>
 </ul>
 
 <h1 id="8_performance_power">8. Performance and Power</h1>
 
 
-<p>Some minimum performance and power criteria are critical to the user experience
-and impact the baseline assumptions developers would have when developing an app.
-Android Watch devices SHOULD and other type of device implementations MUST meet
-the following criteria:</p>
+<p>Some minimum performance and power criteria are critical to the user
+experience and impact the baseline assumptions developers would have when
+developing an app. Android Watch devices SHOULD and other type of device
+implementations MUST meet the following criteria.</p>
 
 <h2 id="8_1_user_experience_consistency">8.1. User Experience Consistency</h2>
 
 
 <p>Device implementations MUST provide a smooth user interface by ensuring a
 consistent frame rate and response times for applications and games. Device
-implementations MUST meet the following requirements: </p>
+implementations MUST meet the following requirements:</p>
 
 <ul>
-  <li><strong>Consistent frame latency</strong>. 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.</li>
-  <li><strong>User interface latency</strong>. 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.</li>
-  <li><strong>Task switching</strong>. When multiple applications have been launched, re-launching an already-running
-application after it has been launched MUST take less than 1 second.</li>
+  <li><strong>Consistent frame latency</strong>. 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.</li>
+  <li><strong>User interface latency</strong>. 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.
+  </li>
+  <li><strong>Task switching</strong>. When multiple applications have been
+  launched, re-launching an already-running application after it has been
+  launched MUST take less than 1 second.</li>
 </ul>
 
 <h2 id="8_2_file_i_o_access_performance">8.2. File I/O Access Performance</h2>
 
 
-<p>Device implementations MUST ensure internal storage file access performance consistency for read
-and write operations. </p>
+<p>Device implementations MUST ensure internal storage file access performance
+consistency for read and write operations.</p>
 
 <ul>
-  <li><strong>Sequential write</strong>. Device implementations MUST ensure a sequential write performance of at least 5MB/s
-for a 256MB file using 10MB write buffer.</li>
-  <li><strong>Random write</strong>. Device implementations MUST ensure a random write performance of at least 0.5MB/s for a
-256MB file using 4KB write buffer.</li>
-  <li><strong>Sequential read</strong>. Device implementations MUST ensure a sequential read performance of at least 15MB/s for
-a 256MB file using 10MB write buffer.</li>
-  <li><strong>Random read</strong>. Device implementations MUST ensure a random read performance of at least 3.5MB/s for a
-256MB file using 4KB write buffer.</li>
+  <li><strong>Sequential write</strong>. Device implementations MUST ensure a
+  sequential write performance of at least 5MB/s for a 256MB file using 10MB
+  write buffer.</li>
+  <li><strong>Random write</strong>. Device implementations MUST ensure a random
+  write performance of at least 0.5MB/s for a 256MB file using 4KB write buffer.
+  </li>
+  <li><strong>Sequential read</strong>. Device implementations MUST ensure a
+  sequential read performance of at least 15MB/s for a 256MB file using 10MB
+  write buffer.</li>
+  <li><strong>Random read</strong>. Device implementations MUST ensure a random
+  read performance of at least 3.5MB/s for a 256MB file using 4KB write buffer.
+  </li>
 </ul>
 
 <h2 id="8_3_power_saving_modes">8.3. Power-Saving Modes</h2>
@@ -4721,70 +5038,75 @@
 
 <h2 id="8_4_power_consumption_accounting">8.4. Power Consumption Accounting</h2>
 
-<p>A more accurate accounting and reporting of the power consumption provides the
-app developer both the incentives and the tools to optimize the power usage pattern
-of the application. Therefore, device implementations:</p>
+<p>A more accurate accounting and reporting of the power consumption provides
+the app developer both the incentives and the tools to optimize the power usage
+pattern of the application. Therefore, device implementations:</p>
 
 <ul>
-  <li>MUST be able to track hardware component power usage and attribute that power
-    usage to specific applications. Specifically, implementations:
+  <li>MUST be able to track hardware component power usage and attribute that
+  power usage to specific applications. Specifically, implementations:
     <ul>
-      <li>MUST provide a per-component power profile that defines the current consumption
-        value 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
-href="http://source.android.com/devices/tech/power/values.html">Resources, 123</a>].</li>
-      <li>MUST report all power consumption values in milliampere hours (mAh)</li>
+      <li>MUST provide a per-component power profile that defines the
+      <a href="http://source.android.com/devices/tech/power/values.html">current
+      consumption value</a> for each hardware component and the approximate
+      battery drain caused by the components over time as documented in the
+      Android Open Source Project site.</li>
+      <li>MUST report all power consumption values in milliampere hours (mAh).
+      </li>
       <li>SHOULD be attributed to the hardware component itself if unable to
-        attribute hardware component power usage to an application.</li>
-      <li>MUST report CPU power consumption per each process's UID. The Android Open
-        Source Project meets the requirement through the <code>uid_cputime</code>
-        kernel module implementation.</li>
+      attribute hardware component power usage to an application.</li>
+      <li>MUST report CPU power consumption per each process's UID. The Android
+      Open Source Project meets the requirement through the
+      <code>uid_cputime</code> kernel module implementation.</li>
     </ul>
   </li>
-  <li>MUST make this power usage available via the <code>adb shell dumpsys
-    batterystats</code> shell command to the app developer [<a
-href="http://source.android.com/devices/tech/power/batterystats.html">Resources, 124</a>].</li>
-  <li>MUST honor the android.intent.action.POWER_USAGE_SUMMARY intent and display
-    a settings menu that shows this power usage [<a
-href="http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY">Resources,
-125</a>].</li>
+  <li>MUST make this power usage available via the
+  <a href="http://source.android.com/devices/tech/power/batterystats.html"><code>adb
+  shell dumpsys batterystats</code></a> shell command to the app developer.</li>
+  <li>MUST honor the
+  <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY">android.intent.action.POWER_USAGE_SUMMARY</a>
+  intent and display a settings menu that shows this power usage.</li>
 </ul>
 
 <h1 id="9_security_model_compatibility">9. Security Model Compatibility</h1>
 
 
 <p>Device implementations MUST implement a security model consistent with the
-Android platform security model as defined in Security and Permissions
-reference document in the APIs [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>] in the Android developer documentation. Device implementations MUST support
-installation of self-signed applications without requiring any additional
-permissions/certificates from any third parties/authorities. Specifically,
-compatible devices MUST support the security mechanisms described in the follow
-subsections.</p>
+Android platform security model as defined in
+<a href="http://developer.android.com/guide/topics/security/permissions.html">Security
+and Permissions reference document</a> in the APIs in the Android developer
+documentation. Device implementations MUST support installation of self-signed
+applications without requiring any additional permissions/certificates from any
+third parties/authorities. Specifically, compatible devices MUST support the
+security mechanisms described in the follow subsections.</p>
 
 <h2 id="9_1_permissions">9.1. Permissions</h2>
 
 
-<p>Device implementations MUST support the Android permissions model as defined in
-the Android developer documentation [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>]. Specifically, implementations MUST enforce each permission defined as
-described in the SDK documentation; no permissions may be omitted, altered, or
-ignored. Implementations MAY add additional permissions, provided the new
-permission ID strings are not in the android.* namespace.</p>
+<p>Device implementations MUST support the
+<a href="http://developer.android.com/guide/topics/security/permissions.html">Android
+permissions model</a> as defined in the Android developer documentation.
+Specifically, implementations MUST enforce each permission defined as described
+in the SDK documentation; no permissions may be omitted, altered, or ignored.
+Implementations MAY add additional permissions, provided the new permission ID
+strings are not in the android.* namespace.</p>
 
-<p>Permissions with a protection level of dangerous are runtime permissions. Applications
-with targetSdkVersion > 22 request them at runtime. Device implementations:</p>
+<p>Permissions with a protection level of dangerous are runtime permissions.
+Applications with targetSdkVersion > 22 request them at runtime. Device
+implementations:</p>
 
 <ul>
-<li>MUST show a dedicated interface for the user to decide whether to grant the
-requested runtime permissions and also provide an interface for the user to manage
-runtime permissions.</li>
-<li>MUST have one and only one implementation of both user interfaces.</li>
-<li>MUST NOT grant any runtime permissions to preinstalled apps unless:
+  <li>MUST show a dedicated interface for the user to decide whether to grant
+  the requested runtime permissions and also provide an interface for the user
+  to manage runtime permissions.</li>
+  <li>MUST have one and only one implementation of both user interfaces.</li>
+  <li>MUST NOT grant any runtime permissions to preinstalled apps unless:
   <ul>
     <li>the user's consent can be obtained before the application uses it</li>
-    <li>the runtime permissions are associated with an intent pattern for which the preinstalled
-    application is set as the default handler</li>
+    <li>the runtime permissions are associated with an intent pattern for which
+    the preinstalled application is set as the default handler</li>
   </ul>
-</li>
+  </li>
 </ul>
 
 <h2 id="9_2_uid_and_process_isolation">9.2. UID and Process Isolation</h2>
@@ -4794,15 +5116,20 @@
 which each application runs as a unique Unixstyle UID and in a separate
 process. Device implementations MUST support running multiple applications as
 the same Linux user ID, provided that the applications are properly signed and
-constructed, as defined in the Security and Permissions reference [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>].</p>
+constructed, as defined in the
+<a href="http://developer.android.com/guide/topics/security/permissions.html">Security
+and Permissions reference</a>.</p>
 
 <h2 id="9_3_filesystem_permissions">9.3. Filesystem Permissions</h2>
 
 
 <p>Device implementations MUST support the Android file access permissions model
-as defined in the Security and Permissions reference [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>].</p>
+as defined in the
+<a href="http://developer.android.com/guide/topics/security/permissions.html">Security
+and Permissions reference</a>.</p>
 
-<h2 id="9_4_alternate_execution_environments">9.4. Alternate Execution Environments</h2>
+<h2 id="9_4_alternate_execution_environments">9.4. Alternate Execution
+Environments</h2>
 
 
 <p>Device implementations MAY include runtime environments that execute
@@ -4812,11 +5139,12 @@
 applications, as described in this section.</p>
 
 <p>Alternate runtimes MUST themselves be Android applications, and abide by the
-standard Android security model, as described elsewhere in <a href="#9_security_model_compatibility">section 9</a>.</p>
+standard Android security model, as described elsewhere in
+<a href="#9_security_model_compatibility">section 9</a>.</p>
 
 <p>Alternate runtimes MUST NOT be granted access to resources protected by
-permissions not requested in the runtime&rsquo;s AndroidManifest.xml file via the
-&lt;uses-permission&gt; mechanism.</p>
+permissions not requested in the runtime&rsquo;s AndroidManifest.xml file via
+the &lt;uses-permission&gt; mechanism.</p>
 
 <p>Alternate runtimes MUST NOT permit applications to make use of features
 protected by Android permissions restricted to system applications.</p>
@@ -4825,17 +5153,17 @@
 alternate runtimes:</p>
 
 <ul>
-  <li>SHOULD install apps via the PackageManager into separate Android sandboxes (
-Linux user IDs, etc.).</li>
+  <li>SHOULD install apps via the PackageManager into separate Android sandboxes
+  (Linux user IDs, etc.).</li>
   <li>MAY provide a single Android sandbox shared by all applications using the
-alternate runtime.</li>
-  <li>and installed applications using an alternate runtime, MUST NOT reuse the
-sandbox of any other app installed on the device, except through the standard
-Android mechanisms of shared user ID and signing certificate.</li>
+  alternate runtime.</li>
+  <li>Installed applications using an alternate runtime MUST NOT reuse the
+  sandbox of any other app installed on the device, except through the standard
+  Android mechanisms of shared user ID and signing certificate.</li>
   <li>MUST NOT launch with, grant, or be granted access to the sandboxes
-corresponding to other Android applications.</li>
+  corresponding to other Android applications.</li>
   <li>MUST NOT be launched with, be granted, or grant to other applications any
-privileges of the superuser (root), or of any other user ID.</li>
+  privileges of the superuser (root), or of any other user ID.</li>
 </ul>
 
 <p>The .apk files of alternate runtimes MAY be included in the system image of a
@@ -4843,13 +5171,13 @@
 to sign other applications included with the device implementation.</p>
 
 <p>When installing applications, alternate runtimes MUST obtain user consent for
-the Android permissions used by the application. If an application needs to
-make use of a device resource for which there is a corresponding Android
-permission (such as Camera, GPS, etc.), the alternate runtime MUST inform the
-user that the application will be able to access that resource. If the runtime
-environment does not record application capabilities in this manner, the
-runtime environment MUST list all permissions held by the runtime itself when
-installing any application using that runtime.</p>
+the Android permissions used by the application. If an application needs to make
+use of a device resource for which there is a corresponding Android permission
+(such as Camera, GPS, etc.), the alternate runtime MUST inform the user that the
+application will be able to access that resource. If the runtime environment
+does not record application capabilities in this manner, the runtime environment
+MUST list all permissions held by the runtime itself when installing any
+application using that runtime.</p>
 
 <h2 id="9_5_multi-user_support">9.5. Multi-User Support</h2>
 
@@ -4858,48 +5186,56 @@
 </div>
 
 
-<p>Android includes support for multiple users and provides support for full user
-isolation [<a href="http://developer.android.com/reference/android/os/UserManager.html">Resources, 127</a>]. Device implementations MAY enable multiple users, but when enabled MUST meet
-the following requirements related to multi-user support [<a href="http://source.android.com/devices/storage/traditional.html">Resources, 128</a>]:</p>
+<p>Android includes
+<a href="http://developer.android.com/reference/android/os/UserManager.html">support
+for multiple users</a> and provides support for full user isolation. Device
+implementations MAY enable multiple users, but when enabled MUST meet the
+following requirements related to
+<a href="http://source.android.com/devices/storage/traditional.html">multi-user
+support</a>:</p>
 
 <ul>
   <li>Device implementations that do not declare the android.hardware.telephony
-feature flag MUST support restricted profiles, a feature that allows device
-owners to manage additional users and their capabilities on the device. With
-restricted profiles, device owners can quickly set up separate environments for
-additional users to work in, with the ability to manage finer-grained
-restrictions in the apps that are available in those environments.</li>
-  <li>Conversely device implementations that declare the android.hardware.telephony
-feature flag MUST NOT support restricted profiles but MUST align with the AOSP
-implementation of controls to enable /disable other users from accessing the
-voice calls and SMS.</li>
+  feature flag MUST support restricted profiles, a feature that allows device
+  owners to manage additional users and their capabilities on the device. With
+  restricted profiles, device owners can quickly set up separate environments
+  for additional users to work in, with the ability to manage finer-grained
+  restrictions in the apps that are available in those environments.</li>
+  <li>Conversely device implementations that declare the
+  android.hardware.telephony feature flag MUST NOT support restricted profiles
+  but MUST align with the AOSP implementation of controls to enable /disable
+  other users from accessing the voice calls and SMS.</li>
   <li>Device implementations MUST, for each user, implement a security model
-consistent with the Android platform security model as defined in Security and
-Permissions reference document in the APIs [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>].</li>
+  consistent with the Android platform security model as defined in
+  <a href="http://developer.android.com/guide/topics/security/permissions.html">Security
+  and Permissions reference document</a> in the APIs.</li>
   <li>Each user instance on an Android device MUST have separate and isolated
-external storage directories. Device implementations MAY store multiple users'
-data on the same volume or filesystem. However, the device implementation MUST
-ensure that applications owned by and running on behalf a given user cannot
-list, read, or write to data owned by any other user. Note that removable
-media, such as SD card slots, can allow one user to access another&rsquo;s data by
-means of a host PC. For this reason, device implementations that use removable
-media for the external storage APIs MUST encrypt the contents of the SD card if
-multiuser is enabled using a key stored only on non-removable media accessible
-only to the system. As this will make the media unreadable by a host PC, device
-implementations will be required to switch to MTP or a similar system to
-provide host PCs with access to the current user&rsquo;s data. Accordingly, device
-implementations MAY but SHOULD NOT enable multi-user if they use removable
-media [<a href="http://developer.android.com/reference/android/os/Environment.html">Resources, 129</a>] for primary external storage.</li>
+  external storage directories. Device implementations MAY store multiple users'
+  data on the same volume or filesystem. However, the device implementation MUST
+  ensure that applications owned by and running on behalf a given user cannot
+  list, read, or write to data owned by any other user. Note that removable
+  media, such as SD card slots, can allow one user to access another&rsquo;s
+  data by means of a host PC. For this reason, device implementations that use
+  removable media for the external storage APIs MUST encrypt the contents of the
+  SD card if multiuser is enabled using a key stored only on non-removable media
+  accessible only to the system. As this will make the media unreadable by a
+  host PC, device implementations will be required to switch to MTP or a similar
+  system to provide host PCs with access to the current user&rsquo;s data.
+  Accordingly, device implementations MAY but SHOULD NOT enable multi-user if
+  they use
+  <a href="http://developer.android.com/reference/android/os/Environment.html">removable
+  media</a> for primary external storage.</li>
 </ul>
 
 <h2 id="9_6_premium_sms_warning">9.6. Premium SMS Warning</h2>
 
 
-<p>Android includes support for warning users of any outgoing premium SMS message
-[<a href="http://en.wikipedia.org/wiki/Short_code">Resources, 130</a>]. Premium SMS messages are text messages sent to a service registered with a
-carrier that may incur a charge to the user. Device implementations that
-declare support for android.hardware.telephony MUST warn users before sending a
-SMS message to numbers identified by regular expressions defined in
+<p>Android includes support for warning users of any outgoing
+<a href="http://en.wikipedia.org/wiki/Short_code">premium SMS message</a>.
+Premium SMS messages are text messages sent to a service registered with a
+carrier that may incur a charge to the user. Device implementations that declare
+support for android.hardware.telephony MUST warn users before sending a SMS
+message to numbers identified by regular expressions defined in
 /data/misc/sms/codes.xml file in the device. The upstream Android Open Source
 Project provides an implementation that satisfies this requirement.</p>
 
@@ -4913,9 +5249,9 @@
 
 <ul>
   <li>MUST maintain compatibility with existing applications.</li>
-  <li>MUST NOT have a visible user interface when a security violation is detected
-and successfully blocked, but MAY have a visible user interface when an
-unblocked security violation occurs resulting in a successful exploit.</li>
+  <li>MUST NOT have a visible user interface when a security violation is
+  detected and successfully blocked, but MAY have a visible user interface when
+  an unblocked security violation occurs resulting in a successful exploit.</li>
   <li>SHOULD NOT be user or developer configurable.</li>
 </ul>
 
@@ -4933,25 +5269,25 @@
 <ul>
   <li>MUST set SELinux to global enforcing mode.</li>
   <li>MUST configure all domains in enforcing mode. No permissive mode domains
-are allowed, including domains specific to a device/vendor.</li>
+  are allowed, including domains specific to a device/vendor.</li>
   <li>MUST NOT modify, omit, or replace the neverallow rules present within the
-external/sepolicy folder provided in the upstream Android Open Source Project (AOSP) and
-the policy MUST compile with all neverallow rules present, for both AOSP SELinux
-domains as well as device/vendor specific domains.</li>
+  external/sepolicy folder provided in the upstream Android Open Source Project
+  (AOSP) and the policy MUST compile with all neverallow rules present, for both
+  AOSP SELinux domains as well as device/vendor specific domains.</li>
 </ul>
 
-<p>Device implementations SHOULD retain the default SELinux policy provided in the
-external/sepolicy folder of the upstream Android Open Source Project and only
-further add to this policy for their own device-specific configuration. Device
-implementations MUST be compatible with the upstream Android Open Source Project.
-</p>
+<p>Device implementations SHOULD retain the default SELinux policy provided in
+the external/sepolicy folder of the upstream Android Open Source Project and
+only further add to this policy for their own device-specific configuration.
+Device implementations MUST be compatible with the upstream Android Open Source
+Project.</p>
 
 <h2 id="9_8_privacy">9.8. Privacy</h2>
 
-<p>If the device implements functionality in the system that captures the contents
-displayed on the screen and/or records the audio stream played on the device,
-it MUST continuously notify the user whenever this functionality is enabled and
-actively capturing/recording.</p>
+<p>If the device implements functionality in the system that captures the
+contents displayed on the screen and/or records the audio stream played on the
+device, it MUST continuously notify the user whenever this functionality is
+enabled and actively capturing/recording.</p>
 
 <p>If a device implementation has a mechanism that routes network data traffic
 through a proxy server or VPN gateway by default (for example, preloading a VPN
@@ -4968,22 +5304,23 @@
 <p>Optional for Android device implementations without a lock screen.</p>
 </div>
 
-<p>If the device implementation supports a secure lock screen reporting "<code>true</code>"
-for KeyguardManager.isDeviceSecure()
-[<a href="http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()">Resources, 131</a>],
+<p>If the device implementation supports a secure lock screen reporting
+"<code>true</code>" for
+<a href="http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()">KeyguardManager.isDeviceSecure()</a>,
 and is not a device with restricted memory as reported through the
-ActivityManager.isLowRamDevice() method, then the device MUST support full-disk encryption
-[<a href="http://source.android.com/devices/tech/security/encryption/index.html">Resources, 132</a>]
+ActivityManager.isLowRamDevice() method, then the device MUST support full-disk
+<a href="http://source.android.com/devices/tech/security/encryption/index.html">encryption</a>
 of the application private data (/data partition), as well as the application
 shared storage partition (/sdcard partition) if it is a permanent, non-removable
 part of the device.</p>
 
 <p>For device implementations supporting full-disk encryption and with Advanced
 Encryption Standard (AES) crypto performance above 50MiB/sec, the full-disk
-encryption MUST be enabled by default at the time the user has completed the out-of-box
-setup experience. If a device implementation is already launched on an earlier Android
-version with full-disk encryption disabled by default, such a device cannot
-meet the requirement through a system software update and thus MAY be exempted.</p>
+encryption MUST be enabled by default at the time the user has completed the
+out-of-box setup experience. If a device implementation is already launched on
+an earlier Android version with full-disk encryption disabled by default, such a
+device cannot meet the requirement through a system software update and thus MAY
+be exempted.</p>
 
 <p>Encryption MUST use AES with a key of 128-bits (or greater) and a mode designed
 for storage (for example, AES-XTS, AES-CBC-ESSIV). The encryption key MUST NOT
@@ -5006,101 +5343,113 @@
 If a device implementation supports the feature, it MUST:
 </p>
 <ul>
-<li>Declare the platform feature flag android.software.verified_boot</li>
-<li>Perform verification on every boot sequence</li>
-<li>Start verification from an immutable hardware key that is the root of trust, 
-and go all the way up to the system partition</li>
-<li>Implement each stage of verification to check the integrity and authenticity
-of all the bytes in the next stage before executing the code in the next stage</li>
-<li>Use verification algorithms as strong as current recommendations
-from NIST for hashing algorithms (SHA-256) and public key sizes (RSA-2048)</li>
+  <li>Declare the platform feature flag android.software.verified_boot.</li>
+  <li>Perform verification on every boot sequence.</li>
+  <li>Start verification from an immutable hardware key that is the root of
+  trust and go all the way up to the system partition.</li>
+  <li>Implement each stage of verification to check the integrity and
+  authenticity of all the bytes in the next stage before executing the code in
+  the next stage.</li>
+  <li>Use verification algorithms as strong as current recommendations from NIST
+  for hashing algorithms (SHA-256) and public key sizes (RSA-2048).</li>
 </ul>
 
-<p>The upstream Android Open Source Project provides a preferred implementation of this 
-feature based on the Linux kernel feature dm-verity.</p>
+<p>The upstream Android Open Source Project provides a preferred implementation
+of this feature based on the Linux kernel feature dm-verity.</p>
 
-<p>Starting from Android 6.0, device implementations with Advanced Encryption Standard (AES)
-crypto perfomance above 50MiB/seconds MUST support verified boot for device integrity.
-If a device implementation is already launched without supporting verified boot on an earlier
-version of Android, such a device can not add support for this feature with a system software
-update and thus are exempted from the requirement.</p>
+<p>Starting from Android 6.0, device implementations with Advanced Encryption
+Standard (AES) crypto perfomance above 50MiB/seconds MUST support verified boot
+for device integrity. If a device implementation is already launched without
+supporting verified boot on an earlier version of Android, such a device can not
+add support for this feature with a system software update and thus are exempted
+from the requirement.</p>
 
 <h2 id="9_11_keys_and_credentials">9.11. Keys and Credentials</h2>
 
-<p>The Android Keystore System
-[<a href="https://developer.android.com/training/articles/keystore.html">Resources, 133</a>]
-allows app developers to store cryptographic keys in a container and use them in cryptographic
-operations through the KeyChain API
-[<a href="https://developer.android.com/reference/android/security/KeyChain.html">Resources, 134</a>]
-or the Keystore API
-  [<a href="https://developer.android.com/reference/java/security/KeyStore.html">Resources, 135</a>].
-</p>
+<p>The <a href="https://developer.android.com/training/articles/keystore.html">Android
+Keystore System</a> allows app developers to store cryptographic keys in a
+container and use them in cryptographic
+operations through the
+<a href="https://developer.android.com/reference/android/security/KeyChain.html">KeyChain
+API</a> or the
+<a href="https://developer.android.com/reference/java/security/KeyStore.html">Keystore
+API</a>.</p>
 
 <p>All Android device implementations MUST meet the following requirements:</p>
 
 <ul>
-<li>SHOULD not limit the number of keys that can be generated, and MUST at least allow more
-than 8,192 keys to be imported.</li>
-<li>The lock screen authentication MUST rate limit attempts and SHOULD have an exponential
-  backoff algorithm as implemented in the Android Open Source Project.</li>
-<li>When the device implementation supports a secure lock screen and has a secure hardware
-  such as a Secure Element (SE) where a Trusted Execution Environment (TEE) can be implemented,
-  then it:
-  <ul>
-  <li>Is STRONGLY RECOMMENDED to back up the keystore implementation with the secure hardware.
-    The upstream Android Open Source Project provides the Keymaster Hardware Abstraction Layer
-    (HAL) implementation that can be used to satisfy this requirement.</li>
-  <li>MUST perform the lock screen authentication in the secure hardware if the device has a
-    hardware-backed keystore implementation and only when successful allow the authentication-bound
-    keys to be used. The upstream Android Open Source Project provides the Gatekeeper Hardware
-    Abstraction Layer (HAL) that can be used to satisfy this requirement
-    [<a href="http://source.android.com/devices/tech/security/authentication/gatekeeper.html">Resources, 136</a>].</li>
-  </ul>
+  <li>SHOULD not limit the number of keys that can be generated, and MUST at
+  least allow more than 8,192 keys to be imported.</li>
+  <li>The lock screen authentication MUST rate limit attempts and SHOULD have an
+  exponential backoff algorithm as implemented in the Android Open Source
+  Project.</li>
+  <li>When the device implementation supports a secure lock screen and has a
+  secure hardware such as a Secure Element (SE) where a Trusted Execution
+  Environment (TEE) can be implemented, then it:
+   <ul>
+    <li>Is STRONGLY RECOMMENDED to back up the keystore implementation with the
+    secure hardware. The upstream Android Open Source Project provides the
+    Keymaster Hardware Abstraction Layer (HAL) implementation that can be used
+    to satisfy this requirement.</li>
+    <li>MUST perform the lock screen authentication in the secure hardware if
+    the device has a hardware-backed keystore implementation and only when
+    successful allow the authentication-bound keys to be used. The upstream
+    Android Open Source Project provides the
+    <a href="http://source.android.com/devices/tech/security/authentication/gatekeeper.html">Gatekeeper
+    Hardware Abstraction Layer (HAL)</a> that can be used to satisfy this
+    requirement.</li>
+   </ul>
 </li>
 </ul>
 
-<p>Note that while the above TEE-related requirements are stated as STRONGLY RECOMMENDED, the
-  Compatibility Definition for the next API version is planned to changed these to REQIUIRED. If a
-  device implementation is already launched on an earlier Android version and has not implemented a
-  trusted operating system on the secure hardware, such a device might not be able to meet the
-  requirements through a system software update and thus is STRONGLY RECOMMENDED to implement a
-  TEE.</p>
+<p>Note that while the above TEE-related requirements are stated as STRONGLY
+RECOMMENDED, the Compatibility Definition for the next API version is planned to
+changed these to REQIUIRED. If a device implementation is already launched on an
+earlier Android version and has not implemented a trusted operating system on
+the secure hardware, such a device might not be able to meet the requirements
+through a system software update and thus is STRONGLY RECOMMENDED to implement a
+TEE.</p>
 
 <h2 id="9_12_data_deletion">9.12. Data Deletion</h2>
 
 <p>Devices MUST provide users with a mechanism to perform a "Factory Data Reset"
-that allows logical and physical deletion of all data. This MUST satisfy relevant
-industry standards for data deletion such as NIST SP800-88. This MUST be used for
-the implementation of the wipeData() API (part of the Android Device Administration API)
-described in <a href="#3_9_device_administration">section 3.9 Device Administration</a>.</p>
+that allows logical and physical deletion of all data. This MUST satisfy
+relevant industry standards for data deletion such as NIST SP800-88. This MUST
+be used for the implementation of the wipeData() API (part of the Android Device
+Administration API) described in <a href="#3_9_device_administration">section
+3.9 Device Administration</a>.</p>
 
 <p>Devices MAY provide a fast data wipe that conducts a logical data erase.</p>
 
-<h1 id="10_software_compatibility_testing">10. Software Compatibility Testing</h1>
+<h1 id="10_software_compatibility_testing">10. Software Compatibility
+Testing</h1>
 
 
 <p>Device implementations MUST pass all tests described in this section.</p>
 
 <p>However, note that no software test package is fully comprehensive. For this
-reason, device implementers are <strong>STRONGLY RECOMMENDED</strong> to make the minimum number of changes as possible to the reference and
-preferred implementation of Android available from the Android Open Source
-Project. This will minimize the risk of introducing bugs that create
-incompatibilities requiring rework and potential device updates.</p>
+reason, device implementers are <strong>STRONGLY RECOMMENDED</strong> to make
+the minimum number of changes as possible to the reference and preferred
+implementation of Android available from the Android Open Source Project. This
+will minimize the risk of introducing bugs that create incompatibilities
+requiring rework and potential device updates.</p>
 
 <h2 id="10_1_compatibility_test_suite">10.1. Compatibility Test Suite</h2>
 
 
-<p>Device implementations MUST pass the Android Compatibility Test Suite (CTS) [<a href="http://source.android.com/compatibility/index.html">Resources, 137</a>] available from the Android Open Source Project, using the final shipping
-software on the device. Additionally, device implementers SHOULD use the
-reference implementation in the Android Open Source tree as much as possible,
-and MUST ensure compatibility in cases of ambiguity in CTS and for any
-reimplementations of parts of the reference source code.</p>
+<p>Device implementations MUST pass the
+<a href="http://source.android.com/compatibility/index.html">Android
+Compatibility Test Suite (CTS)</a> available from the Android Open Source
+Project, using the final shipping software on the device. Additionally, device
+implementers SHOULD use the reference implementation in the Android Open Source
+tree as much as possible, and MUST ensure compatibility in cases of ambiguity in
+CTS and for any reimplementations of parts of the reference source code.</p>
 
 <p>The CTS is designed to be run on an actual device. Like any software, the CTS
 may itself contain bugs. The CTS will be versioned independently of this
 Compatibility Definition, and multiple revisions of the CTS may be released for
-Android ANDROID_VERSION. Device implementations MUST pass the latest CTS version available
-at the time the device software is completed.</p>
+Android ANDROID_VERSION. Device implementations MUST pass the latest CTS version
+available at the time the device software is completed.</p>
 
 <h2 id="10_2_cts_verifier">10.2. CTS Verifier</h2>
 
@@ -5111,12 +5460,12 @@
 tested by an automated system, such as correct functioning of a camera and
 sensors.</p>
 
-<p>The CTS Verifier has tests for many kinds of hardware, including some hardware
-that is optional. Device implementations MUST pass all tests for hardware that
-they possess; for instance, if a device possesses an accelerometer, it MUST
-correctly execute the Accelerometer test case in the CTS Verifier. Test cases
-for features noted as optional by this Compatibility Definition Document MAY be
-skipped or omitted.</p>
+<p>The CTS Verifier has tests for many kinds of hardware, including some
+hardware that is optional. Device implementations MUST pass all tests for
+hardware that they possess; for instance, if a device possesses an
+accelerometer, it MUST correctly execute the Accelerometer test case in the CTS
+Verifier. Test cases for features noted as optional by this Compatibility
+Definition Document MAY be skipped or omitted.</p>
 
 <p>Every device and every build MUST correctly run the CTS Verifier, as noted
 above. However, since many builds are very similar, device implementers are not
@@ -5128,28 +5477,30 @@
 <h1 id="11_updatable_software">11. Updatable Software</h1>
 
 
-<p>Device implementations MUST include a mechanism to replace the entirety of the
-system software. The mechanism need not perform &ldquo;live&rdquo; upgrades&mdash;that is, a
-device restart MAY be required.</p>
+<p>Device implementations MUST include a mechanism to replace the entirety of
+the system software. The mechanism need not perform &ldquo;live&rdquo;
+upgrades&mdash;that is, a device restart MAY be required.</p>
 
 <p>Any method can be used, provided that it can replace the entirety of the
 software preinstalled on the device. For instance, any of the following
 approaches will satisfy this requirement:</p>
 
 <ul>
-  <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>
+  <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:</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>
+  <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
@@ -5157,24 +5508,24 @@
 shared data. Note that the upstream Android software includes an update
 mechanism that satisfies this requirement.</p>
 
-<p>For device implementations that are launching with Android ANDROID_VERSION and later, the
-update mechanism SHOULD support verifying that the system image is binary
-identical to expected result following an OTA. The block-based OTA
+<p>For device implementations that are launching with Android ANDROID_VERSION
+and later, the update mechanism SHOULD support verifying that the system image
+is binary identical to expected result following an OTA. The block-based OTA
 implementation in the upstream Android Open Source Project, added since Android
 5.1, satisfies this requirement.</p>
 
-<p>If an error is found in a device implementation after it has been released but
-within its reasonable product lifetime that is determined in consultation with
-the Android Compatibility Team to affect the compatibility of third-party
+<p>If an error is found in a device implementation after it has been released
+but within its reasonable product lifetime that is determined in consultation
+with the Android Compatibility Team to affect the compatibility of third-party
 applications, the device implementer MUST correct the error via a software
 update available that can be applied per the mechanism just described.</p>
 
-<p>Android includes features that allow the Device Owner app (if present) to control the
-installation of system updates. To facilitate this, the system update subsystem
-for devices that report android.software.device_admin MUST implement the behavior
-described in the SystemUpdatePolicy class
-[<a href="http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html">
-Resources, 138</a>].</p>
+<p>Android includes features that allow the Device Owner app (if present) to
+control the installation of system updates. To facilitate this, the system
+update subsystem for devices that report android.software.device_admin MUST
+implement the behavior described in the
+<a href="http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html">SystemUpdatePolicy</a>
+class.</p>
 
 <h1 id="12_document_changelog">12. Document Changelog</h1>
 
@@ -5375,302 +5726,10 @@
 <h1 id="13_contact_us">13. Contact Us</h1>
 
 
-<p>You can join the android-compatibility forum <a href="https://groups.google.com/forum/#!forum/android-compatibility">[Resources, 139</a>] and ask for clarifications or bring up any issues that you think the document
-does not cover.</p>
-
-<h1 id="14_resources">14. Resources</h1>
-
-<p>1. IETF RFC2119 Requirement Levels: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a></p>
-
-<p>2. Android Open Source Project: <a href="http://source.android.com/">http://source.android.com/</a></p>
-
-<p>3. Android Television features: <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK">http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK</a></p>
-
-<p>4. Android Watch feature: <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH">http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH</a></p>
-
-<p>5. Android UI_MODE_TYPE_CAR API: <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR">http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_CAR</a></p>
-
-<p>6. API definitions and documentation: <a href="http://developer.android.com/reference/packages.html">http://developer.android.com/reference/packages.html</a></p>
-
-<p>7. Android Permissions reference: <a href="http://developer.android.com/reference/android/Manifest.permission.html">http://developer.android.com/reference/android/Manifest.permission.html</a></p>
-
-<p>8. android.os.Build reference: <a href="http://developer.android.com/reference/android/os/Build.html">http://developer.android.com/reference/android/os/Build.html</a></p>
-
-<p>9. Android ANDROID_VERSION allowed version strings: <a href="http://source.android.com/compatibility/ANDROID_VERSION/versions.html">http://source.android.com/compatibility/ANDROID_VERSION/versions.html</a></p>
-
-<p>10. Android Developer Settings: <a href="http://developer.android.com/reference/android/provider/Settings.html">http://developer.android.com/reference/android/provider/Settings.html</a></p>
-
-<p>11. Telephony Provider: <a href="http://developer.android.com/reference/android/provider/Telephony.html">http://developer.android.com/reference/android/provider/Telephony.html</a></p>
-
-<p>12. Android NDK ABI Management: <a href="https://developer.android.com/ndk/guides/abis.html">https://developer.android.com/ndk/guides/abis.html</a></p>
-
-<p>13. Advanced SIMD architecture: <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html</a></p>
-
-<p>14. Android Extension Pack: <a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">http://developer.android.com/guide/topics/graphics/opengl.html#aep</a></p>
-
-<p>15. android.webkit.WebView class: <a href="http://developer.android.com/reference/android/webkit/WebView.html">http://developer.android.com/reference/android/webkit/WebView.html</a></p>
-
-<p>16. WebView compatibility: <a href="http://www.chromium.org/">http://www.chromium.org/</a></p>
-
-<p>17. HTML5: <a href="http://html.spec.whatwg.org/multipage/">http://html.spec.whatwg.org/multipage/</a></p>
-
-<p>18. HTML5 offline capabilities:<a href="http://dev.w3.org/html5/spec/Overview.html#offline"> http://dev.w3.org/html5/spec/Overview.html#offline</a></p>
-
-<p>19. HTML5 video tag: <a href="http://dev.w3.org/html5/spec/Overview.html#video">http://dev.w3.org/html5/spec/Overview.html#video</a></p>
-
-<p>20. HTML5/W3C geolocation API: <a href="http://www.w3.org/TR/geolocation-API/">http://www.w3.org/TR/geolocation-API/</a></p>
-
-<p>21. HTML5/W3C webstorage API: <a href="http://www.w3.org/TR/webstorage/">http://www.w3.org/TR/webstorage/</a></p>
-
-<p>22. HTML5/W3C IndexedDB API: <a href="http://www.w3.org/TR/IndexedDB/">http://www.w3.org/TR/IndexedDB/</a></p>
-
-<p>23. Dalvik Executable Format and bytecode specification: available in the
-Android source code, at dalvik/docs</p>
-
-<p>24. AppWidgets: <a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">http://developer.android.com/guide/practices/ui_guidelines/widget_design.html</a></p>
-
-<p>25. Notifications: <a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">http://developer.android.com/guide/topics/ui/notifiers/notifications.html</a></p>
-
-<p>26. Application Resources: <a href="https://developer.android.com/guide/topics/resources/available-resources.html">https://developer.android.com/guide/topics/resources/available-resources.html</a></p>
-
-<p>27. Status Bar icon style guide: <a href="http://developer.android.com/design/style/iconography.html">http://developer.android.com/design/style/iconography.html</a></p>
-
-<p>28. Notifications Resources: <a href="https://developer.android.com/design/patterns/notifications.html">https://developer.android.com/design/patterns/notifications.html</a></p>
-
-<p>29. Search Manager: <a href="http://developer.android.com/reference/android/app/SearchManager.html">http://developer.android.com/reference/android/app/SearchManager.html</a></p>
-
-<p>30. Action Assist: <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST</a></p>
-
-<p>31. Android Assist APIs: <a href="https://developer.android.com/reference/android/app/assist/package-summary.html">https://developer.android.com/reference/android/app/assist/package-summary.html</a></p>
-
-<p>32. Toasts: <a href="http://developer.android.com/reference/android/widget/Toast.html">http://developer.android.com/reference/android/widget/Toast.html</a></p>
-
-<p>33. Themes: <a href="http://developer.android.com/guide/topics/ui/themes.html">http://developer.android.com/guide/topics/ui/themes.html</a></p>
-
-<p>34. R.style class: <a href="http://developer.android.com/reference/android/R.style.html">http://developer.android.com/reference/android/R.style.html</a></p>
-
-<p>35. Material design: <a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">http://developer.android.com/reference/android/R.style.html#Theme_Material</a></p>
-
-<p>36. Live Wallpapers: <a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html</a></p>
-
-<p>37. Overview screen resources: <a href="http://developer.android.com/guide/components/recents.html">http://developer.android.com/guide/components/recents.html</a></p>
-
-<p>38. Screen pinning: <a href="https://developer.android.com/about/versions/android-5.0.html#ScreenPinning">https://developer.android.com/about/versions/android-5.0.html#ScreenPinning</a></p>
-
-<p>39. Input methods: <a href="http://developer.android.com/guide/topics/text/creating-input-method.html">http://developer.android.com/guide/topics/text/creating-input-method.html</a></p>
-
-<p>40. Media Notification: <a href="https://developer.android.com/reference/android/app/Notification.MediaStyle.html">https://developer.android.com/reference/android/app/Notification.MediaStyle.html</a></p>
-
-<p>41. Dreams: <a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">http://developer.android.com/reference/android/service/dreams/DreamService.html</a></p>
-
-<p>42. Settings.Secure LOCATION_MODE: <a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE</a></p>
-
-<p>43. Unicode 6.1.0: <a href="http://www.unicode.org/versions/Unicode6.1.0/">http://www.unicode.org/versions/Unicode6.1.0/</a></p>
-
-<p>44. Android Device Administration: <a href="http://developer.android.com/guide/topics/admin/device-admin.html">http://developer.android.com/guide/topics/admin/device-admin.html</a></p>
-
-<p>45. DevicePolicyManager reference: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html</a></p>
-
-<p>46. Device Owner App: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)</a></p>
-
-
-<p>47. Android Device Owner Provisioning Flow: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE</a></p>
-
-<p>48. Device Owner Provisioning via NFC: <a href="https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc">https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc</a></p>
-
-<p>49. Android Profile Owner App:<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp(java.lang.String)">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp(java.lang.String)</a></p>
-
-<p>50. Android Managed Profile Provisioning flow: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE</a></p>
-
-<p>51. Android Accessibility Service APIs: <a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html">http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html</a></p>
-
-<p>52. Android Accessibility APIs: <a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">http://developer.android.com/reference/android/view/accessibility/package-summary.html</a></p>
-
-<p>53. Eyes Free project: <a href="http://code.google.com/p/eyes-free/">http://code.google.com/p/eyes-free</a></p>
-
-<p>54. Text-To-Speech APIs: <a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">http://developer.android.com/reference/android/speech/tts/package-summary.html</a></p>
-
-<p>55. Television Input Framework: <a href="https://source.android.com/devices/tv/index.html">https://source.android.com/devices/tv/index.html</a></p>
-
-<p>56. TV App channels: <a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html">http://developer.android.com/reference/android/media/tv/TvContract.Channels.html</a></p>
-
-<p>57. Third-party TV inputs: <a href="https://source.android.com/devices/tv/index.html#third-party_input_example">https://source.android.com/devices/tv/index.html#third-party_input_example</a></p>
-
-<p>58. TV inputs: <a href="https://source.android.com/devices/tv/index.html#tv_inputs">https://source.android.com/devices/tv/index.html#tv_inputs</a></p>
-
-<p>59. TV channel EPG fields: <a href="https://developer.android.com/reference/android/media/tv/TvContract.Programs.html">https://developer.android.com/reference/android/media/tv/TvContract.Programs.html</a></p>
-
-<p>60. TV input app linking: <a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI">http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI</a></p>
-
-<p>61. Reference tool documentation (for adb, aapt, ddms, systrace): <a href="http://developer.android.com/tools/help/index.html">http://developer.android.com/tools/help/index.html</a></p>
-
-<p>62. Android apk file description: <a href="http://developer.android.com/guide/components/fundamentals.html">http://developer.android.com/guide/components/fundamentals.html</a></p>
-
-<p>63. Manifest files: <a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">http://developer.android.com/guide/topics/manifest/manifest-intro.html</a></p>
-
-<p>64. Android Media Formats: <a href="http://developer.android.com/guide/appendix/media-formats.html">http://developer.android.com/guide/appendix/media-formats.html</a></p>
-
-<p>65. Android MediaCodecList API: <a href="http://developer.android.com/reference/android/media/MediaCodecList.html">http://developer.android.com/reference/android/media/MediaCodecList.html</a></p>
-
-<p>66. Android CamcorderProfile API: <a href="http://developer.android.com/reference/android/media/CamcorderProfile.html">http://developer.android.com/reference/android/media/CamcorderProfile.html</a></p>
-
-<p>67. WebM project: <a href="http://www.webmproject.org/">http://www.webmproject.org/</a></p>
-
-<p>68. RTC Hardware Coding Requirements: <a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">http://www.webmproject.org/hardware/rtc-coding-requirements/</a></p>
-
-<p>69. AudioEffect API: <a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">http://developer.android.com/reference/android/media/audiofx/AudioEffect.html</a></p>
-
-<p>70. Android android.content.pm.PackageManager class and Hardware Features List: <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">http://developer.android.com/reference/android/content/pm/PackageManager.html</a></p>
-
-<p>71. HTTP Live Streaming Draft Protocol: <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-03">http://tools.ietf.org/html/draft-pantos-http-live-streaming-03</a></p>
-
-<p>72. ADB: <a href="http://developer.android.com/tools/help/adb.html">http://developer.android.com/tools/help/adb.html</a></p>
-
-<p>73. Dumpsys: <a href="https://source.android.com/devices/input/diagnostics.html">https://source.android.com/devices/input/diagnostics.html</a></p>
-
-<p>74. DDMS: <a href="http://developer.android.com/tools/debugging/ddms.html">http://developer.android.com/tools/debugging/ddms.html</a></p>
-
-<p>75. Monkey testing tool: <a href="http://developer.android.com/tools/help/monkey.html">http://developer.android.com/tools/help/monkey.html</a></p>
-
-<p>76. SysyTrace tool: <a href="http://developer.android.com/tools/help/systrace.html">http://developer.android.com/tools/help/systrace.html</a></p>
-
-<p>77. Android Application Development-Related Settings: <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS</a></p>
-
-<p>78. Supporting Multiple Screens: <a href="http://developer.android.com/guide/practices/screens_support.html">http://developer.android.com/guide/practices/screens_support.html</a></p>
-
-<p>79. android.util.DisplayMetrics: <a href="http://developer.android.com/reference/android/util/DisplayMetrics.html">http://developer.android.com/reference/android/util/DisplayMetrics.html</a></p>
-
-<p>80. RenderScript: <a href="http://developer.android.com/guide/topics/renderscript/">http://developer.android.com/guide/topics/renderscript/</a></p>
-
-<p>81. Android extension pack for OpenGL ES: <a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">https://developer.android.com/reference/android/opengl/GLES31Ext.html</a></p>
-
-<p>82. Hardware Acceleration: <a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">http://developer.android.com/guide/topics/graphics/hardware-accel.html</a></p>
-
-<p>83. EGL Extension-EGL_ANDROID_RECORDABLE: <a href="http://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">http://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt</a></p>
-
-<p>84. Display Manager: <a href="http://developer.android.com/reference/android/hardware/display/DisplayManager.html">http://developer.android.com/reference/android/hardware/display/DisplayManager.html</a></p>
-
-<p>85. android.content.res.Configuration: <a href="http://developer.android.com/reference/android/content/res/Configuration.html">http://developer.android.com/reference/android/content/res/Configuration.html</a></p>
-
-<p>86. Touch Input Configuration: <a href="http://source.android.com/devices/tech/input/touch-devices.html">http://source.android.com/devices/tech/input/touch-devices.html</a></p>
-
-<p>87. Motion Event API: <a href="http://developer.android.com/reference/android/view/MotionEvent.html">http://developer.android.com/reference/android/view/MotionEvent.html</a></p>
-
-<p>88. Key Event API: <a href="http://developer.android.com/reference/android/view/KeyEvent.html">http://developer.android.com/reference/android/view/KeyEvent.html</a></p>
-
-<p>89. Android Open Source sensors: <a href="http://source.android.com/devices/sensors/">http://source.android.com/devices/sensors</a></p>
-
-<p>90. android.hardware.SensorEvent: <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">http://developer.android.com/reference/android/hardware/SensorEvent.html</a></p>
-
-<p>91. Timestamp sensor event: <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp</a></p>
-
-<p>92. Android Open Source composite sensors: <a href="http://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary">https://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary</a></p>
-
-<p>93. Continuous trigger mode: <a href="http://source.android.com/devices/sensors/report-modes.html#continuous">https://source.android.com/devices/sensors/report-modes.html#continuous</a></p>
-
-<p>94. Accelerometer sensor: <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER</a></p>
-
-<p>95. Android Fingerprint API: <a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html</a></p>
-
-<p>96. Android Fingerprint HAL: <a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html</a></p>
-
-<p>97. Wi-Fi Multicast API: <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html</a></p>
-
-<p>98. Wi-Fi Direct (Wi-Fi P2P): <a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html</a></p>
-
-<p>99. WifiManager API: <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">http://developer.android.com/reference/android/net/wifi/WifiManager.html</a></p>
-
-<p>100. Bluetooth API: <a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">http://developer.android.com/reference/android/bluetooth/package-summary.html</a></p>
-
-<p>101. Bluetooth ScanFilter API: <a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html</a></p>
-
-<p>102. NFC Barcode: <a href="http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html">http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html</a></p>
-
-<p>103. NDEF Push Protocol: <a href="http://source.android.com/compatibility/ndef-push-protocol.pdf">http://source.android.com/compatibility/ndef-push-protocol.pdf</a></p>
-
-<p>104. Android Beam: <a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">http://developer.android.com/guide/topics/connectivity/nfc/nfc.html</a></p>
-
-<p>105. Android NFC Sharing Settings: <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS</a></p>
-
-<p>106. NFC Connection Handover: <a href="http://members.nfc-forum.org/specs/spec_list/#conn_handover">http://members.nfc-forum.org/specs/spec_list/#conn_handover</a></p>
-
-<p>107. Bluetooth Secure Simple Pairing Using NFC: <a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf</a></p>
-
-<p>108. Host-based Card Emulation: <a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">http://developer.android.com/guide/topics/connectivity/nfc/hce.html</a></p>
-
-<p>109. Content Resolver: <a href="http://developer.android.com/reference/android/content/ContentResolver.html">http://developer.android.com/reference/android/content/ContentResolver.html</a></p>
-
-<p>110. Camera orientation API: <a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)">http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)</a></p>
-
-<p>111. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.html">http://developer.android.com/reference/android/hardware/Camera.html</a></p>
-
-<p>112. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html">http://developer.android.com/reference/android/hardware/Camera.Parameters.html</a></p>
-
-<p>113. Camera hardware level: <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL</a></p>
-
-<p>114. Camera version support: <a href="http://source.android.com/devices/camera/versioning.html">http://source.android.com/devices/camera/versioning.html</a></p>
-
-<p>115. Android DownloadManager: <a href="http://developer.android.com/reference/android/app/DownloadManager.html">http://developer.android.com/reference/android/app/DownloadManager.html</a></p>
-
-<p>116. Android File Transfer: <a href="http://www.android.com/filetransfer">http://www.android.com/filetransfer</a></p>
-
-<p>117. Adoptable storage: <a href="http://source.android.com/devices/storage/adoptable.html">http://source.android.com/devices/storage/adoptable.html</a></p>
-
-<p>118. Android Open Accessories: <a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html">http://developer.android.com/guide/topics/connectivity/usb/accessory.html</a></p>
-
-<p>119. Android USB Audio: <a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO</a></p>
-
-<p>120. USB Charging Specification: <a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf</a></p>
-
-<p>121. USB Host API:<a href="http://developer.android.com/guide/topics/connectivity/usb/host.html"> http://developer.android.com/guide/topics/connectivity/usb/host.html</a></p>
-
-<p>122. Wired audio headset: <a href="http://source.android.com/accessories/headset-spec.html">http://source.android.com/accessories/headset-spec.html</a></p>
-
-<p>123. Power profile components: <a href="http://source.android.com/devices/tech/power/values.html">http://source.android.com/devices/tech/power/values.html</a></p>
-
-<p>124. Batterystats: <a href="http://source.android.com/devices/tech/power/batterystats.html">http://source.android.com/devices/tech/power/batterystats.html</a></p>
-
-<p>125. Power usage summary: <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY">http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY</a></p>
-
-<p>126. Android Security and Permissions reference: <a href="http://developer.android.com/guide/topics/security/permissions.html">http://developer.android.com/guide/topics/security/permissions.html</a></p>
-
-<p>127. UserManager reference: <a href="http://developer.android.com/reference/android/os/UserManager.html">http://developer.android.com/reference/android/os/UserManager.html</a></p>
-
-<p>128. External Storage reference: <a href="http://source.android.com/devices/storage/traditional.html">http://source.android.com/devices/storage</a></p>
-
-<p>129. External Storage APIs: <a href="http://developer.android.com/reference/android/os/Environment.html">http://developer.android.com/reference/android/os/Environment.html</a></p>
-
-<p>130. SMS Short Code: <a href="http://en.wikipedia.org/wiki/Short_code">http://en.wikipedia.org/wiki/Short_code</a></p>
-
-<p>131. Secure lock screen reporting: <a href="http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()">http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()</a></p>
-
-<p>132. Android Open Source Encryption: <a href="http://source.android.com/devices/tech/security/encryption/index.html">http://source.android.com/devices/tech/security/encryption/index.html</a></p>
-
-<p>133. Android Keystore System: <a href="https://developer.android.com/training/articles/keystore.html">https://developer.android.com/training/articles/keystore.html</a></p>
-
-<p>134. KeyChain API: <a href="https://developer.android.com/reference/android/security/KeyChain.html">https://developer.android.com/reference/android/security/KeyChain.html</a></p>
-
-<p>135. Keystore API: <a href="https://developer.android.com/reference/java/security/KeyStore.html">https://developer.android.com/reference/java/security/KeyStore.html</a></p>
-
-<p>136. Gatekeeper HAL: <a href="http://source.android.com/devices/tech/security/authentication/gatekeeper.html">http://source.android.com/devices/tech/security/authentication/gatekeeper.html</a></p>
-
-<p>137. Android Compatibility Program Overview: <a href="http://source.android.com/compatibility/index.html">http://source.android.com/compatibility/index.html</a></p>
-
-<p>138. SystemUpdatePolicy class: <a href="http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html">http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html</a></p>
-
-<p>139. Android Compatibility forum: <a href="https://groups.google.com/forum/#!forum/android-compatibility">https://groups.google.com/forum/#!forum/android-compatibility</a></p>
-
-<p>140. Handling app links: <a href="https://developer.android.com/training/app-links">https://developer.android.com/training/app-links/index.html</a></p>
-
-<p>141. Google Digital Asset Links: <a href="https://developers.google.com/digital-asset-links">https://developers.google.com/digital-asset-links</a></p>
-
-<p>Many of these resources are derived directly or indirectly from the Android
-SDK, and will be functionally identical to the information in that SDK&rsquo;s
-documentation. In any cases where this Compatibility Definition or the
-Compatibility Test Suite disagrees with the SDK documentation, the SDK
-documentation is considered authoritative. Any technical details provided in
-the references included above are considered by inclusion to be part of this
-Compatibility Definition.</p>
+<p>You can join the
+<a href="https://groups.google.com/forum/#!forum/android-compatibility">android-compatibility
+forum</a> and ask for clarifications or bring up any issues that you think the
+document does not cover.</p>
 
 </div>
 </body>
