diff --git a/src/compatibility/6.0/android-6.0-cdd.html b/src/compatibility/6.0/android-6.0-cdd.html
new file mode 100644
index 0000000..2b9f32e
--- /dev/null
+++ b/src/compatibility/6.0/android-6.0-cdd.html
@@ -0,0 +1,5677 @@
+<!DOCTYPE html>
+<head>
+<title>Android 6.0 Compatibility Definition</title>
+<link rel="stylesheet" type="text/css" href="source/android-cdd.css"/>
+</head>
+
+<body>
+
+<h6>Table of Contents</h6>
+
+<div id="toc">
+
+<div id="toc_left">
+
+<p class="toc_h1"><a href="#1_introduction">1. Introduction</a></p>
+
+<p class="toc_h1"><a href="#2_device_types">2. Device Types</a></p>
+
+<p class="toc_h2"><a href="#2_1_device_configurations">2.1 Device Configurations</a></p>
+
+<p class="toc_h1"><a href="#3_software">3. Software</a></p>
+
+<p class="toc_h2"><a href="#3_1_managed_api_compatibility">3.1. Managed API Compatibility</a></p>
+
+<p class="toc_h2"><a href="#3_2_soft_api_compatibility">3.2. Soft API Compatibility</a></p>
+
+<p class="toc_h3"><a href="#3_2_1_permissions">3.2.1. Permissions</a></p>
+
+<p class="toc_h3"><a href="#3_2_2_build_parameters">3.2.2. Build Parameters</a></p>
+
+<p class="toc_h3"><a href="#3_2_3_intent_compatibility">3.2.3. Intent Compatibility</a></p>
+
+<p class="toc_h4"><a href="#3_2_3_1_core_application_intents">3.2.3.1. Core Application Intents</a></p>
+
+<p class="toc_h4"><a href="#3_2_3_2_intent_resolution">3.2.3.2. Intent Resolution</a></p>
+
+<p class="toc_h4"><a href="#3_2_3_3_intent_namespaces">3.2.3.3. Intent Namespaces</a></p>
+
+<p class="toc_h4"><a href="#3_2_3_4_broadcast_intents">3.2.3.4. Broadcast Intents</a></p>
+
+<p class="toc_h4"><a href="#3_2_3_5_default_app_settings">3.2.3.5. Default App Settings</a></p>
+
+<p class="toc_h2"><a href="#3_3_native_api_compatibility">3.3. Native API Compatibility</a></p>
+
+<p class="toc_h3"><a href="#3_3_1_application_binary_interfaces">3.3.1. Application Binary Interfaces</a></p>
+
+<p class="toc_h3"><a href="#3_3_2_32-bit_arm_native_code_compatibility">3.3.2. 32-bit ARM Native Code Compatibility</a></p>
+
+<p class="toc_h2"><a href="#3_4_web_compatibility">3.4. Web Compatibility</a></p>
+
+<p class="toc_h3"><a href="#3_4_1_webview_compatibility">3.4.1. WebView Compatibility</a></p>
+
+<p class="toc_h3"><a href="#3_4_2_browser_compatibility">3.4.2. Browser Compatibility</a></p>
+
+<p class="toc_h2"><a href="#3_5_api_behavioral_compatibility">3.5. API Behavioral Compatibility</a></p>
+
+<p class="toc_h2"><a href="#3_6_api_namespaces">3.6. API Namespaces</a></p>
+
+<p class="toc_h2"><a href="#3_7_runtime_compatibility">3.7. Runtime Compatibility</a></p>
+
+<p class="toc_h2"><a href="#3_8_user_interface_compatibility">3.8. User Interface Compatibility</a></p>
+
+<p class="toc_h3"><a href="#3_8_1_launcher_home_screen">3.8.1. Launcher (Home Screen)</a></p>
+
+<p class="toc_h3"><a href="#3_8_2_widgets">3.8.2. Widgets</a></p>
+
+<p class="toc_h3"><a href="#3_8_3_notifications">3.8.3. Notifications</a></p>
+
+<p class="toc_h3"><a href="#3_8_4_search">3.8.4. Search</a></p>
+
+<p class="toc_h3"><a href="#3_8_5_toasts">3.8.5. Toasts</a></p>
+
+<p class="toc_h3"><a href="#3_8_6_themes">3.8.6. Themes</a></p>
+
+<p class="toc_h3"><a href="#3_8_7_live_wallpapers">3.8.7. Live Wallpapers</a></p>
+
+<p class="toc_h3"><a href="#3_8_8_activity_switching">3.8.8. Activity Switching</a></p>
+
+<p class="toc_h3"><a href="#3_8_9_input_management">3.8.9. Input Management</a></p>
+
+<p class="toc_h3"><a href="#3_8_10_lock_screen_media_control">3.8.10. Lock Screen Media Control</a></p>
+
+<p class="toc_h3"><a href="#3_8_11_dreams">3.8.11. Dreams</a></p>
+
+<p class="toc_h3"><a href="#3_8_12_location">3.8.12. Location</a></p>
+
+</div>
+
+<div id="toc_right">
+
+
+<p class="toc_h3"><a href="#3_8_13_unicode_and_font">3.8.13. Unicode and Font</a></p>
+
+<p class="toc_h2"><a href="#3_9_device_administration">3.9. Device Administration</a></p>
+
+<p class="toc_h3"><a href="#3_9_1_device_provisioning">3.9.1 Device Provisioning</a></p>
+
+<p class="toc_h4"><a href="#3_9_1_2_device_owner_provisioning">3.9.1.1 Device Owner provisioning</a></p>
+
+<p class="toc_h4"><a href="#3_9_1_2_managed_profile_provisioning">3.9.1.2 Managed profile provisioning</a></p>
+
+<p class="toc_h3"><a href="#3_9_2_managed_profile_support">3.9.2. Managed Profile Support</a></p>
+
+
+<p class="toc_h2"><a href="#3_10_accessibility">3.10. Accessibility</a></p>
+
+<p class="toc_h2"><a href="#3_11_text-to-speech">3.11. Text-to-Speech</a></p>
+
+<p class="toc_h2"><a href="#3_12_tv_input_framework">3.12. TV Input Framework</a></p>
+
+<p class="toc_h3"><a href="#3_12_1_tv_app">3.12.1. TV App</a></p>
+
+<p class="toc_h4"><a href="#3_12_1_1_electronic_program_guide">3.12.1.1. Electronic Program Guide</a></p>
+
+<p class="toc_h4"><a href="#3_12_1_2_navigation">3.12.1.2. Navigation</a></p>
+
+<p class="toc_h4"><a href="#3_12_1_3_tv_input_app_linking">3.12.1.3. TV input app linking</a></p>
+
+<p class="toc_h1"><a href="#4_application_packaging_compatibility">4. Application Packaging Compatibility</a></p>
+
+<p class="toc_h1"><a href="#5_multimedia_compatibility">5. Multimedia Compatibility</a></p>
+
+<p class="toc_h2"><a href="#5_1_media_codecs">5.1. Media Codecs</a></p>
+
+<p class="toc_h3"><a href="#5_1_1_audio_codecs">5.1.1. Audio Codecs</a></p>
+
+<p class="toc_h3"><a href="#5_1_2_image_codecs">5.1.2. Image Codecs</a></p>
+
+<p class="toc_h3"><a href="#5_1_3_video_codecs">5.1.3. Video Codecs</a></p>
+
+<p class="toc_h2"><a href="#5_2_video_encoding">5.2. Video Encoding</a></p>
+
+<p class="toc_h2"><a href="#5_3_video_decoding">5.3. Video Decoding</a></p>
+
+<p class="toc_h2"><a href="#5_4_audio_recording">5.4. Audio Recording</a></p>
+
+<p class="toc_h3"><a href="#5_4_1_raw_audio_capture">5.4.1. Raw Audio Capture</a></p>
+
+<p class="toc_h3"><a href="#5_4_2_capture_for_voice_recognition">5.4.2. Capture for Voice Recognition</a></p>
+
+<p class="toc_h3"><a href="#5_4_3_capture_for_rerouting_of_playback">5.4.3. Capture for Rerouting of Playback</a></p>
+
+<p class="toc_h2"><a href="#5_5_audio_playback">5.5. Audio Playback</a></p>
+
+<p class="toc_h3"><a href="#5_5_1_raw_audio_playback">5.5.1. Raw Audio Playback</a></p>
+
+<p class="toc_h3"><a href="#5_5_2_audio_effects">5.5.2. Audio Effects</a></p>
+
+<p class="toc_h3"><a href="#5_5_3_audio_output_volume">5.5.3. Audio Output Volume</a></p>
+
+<p class="toc_h2"><a href="#5_6_audio_latency">5.6. Audio Latency</a></p>
+
+<p class="toc_h2"><a href="#5_7_network_protocols">5.7. Network Protocols</a></p>
+
+<p class="toc_h2"><a href="#5_8_secure_media">5.8. Secure Media</a></p>
+
+<p class="toc_h2"><a href="#5_9_midi">5.9. Musical Instrument Digital Interface (MIDI)</a></p>
+
+<p class="toc_h2"><a href="#5_10_pro_audio">5.10. Professional Audio</a></p>
+
+</div>
+
+<div style="clear: both; page-break-after:always; height:1px"></div>
+
+<div id="toc_left">
+
+<p class="toc_h1"><a href="#6_developer_tools_and_options_compatibility">6. Developer Tools and Options Compatibility</a></p>
+
+<p class="toc_h2"><a href="#6_1_developer_tools">6.1. Developer Tools</a></p>
+
+<p class="toc_h2"><a href="#6_2_developer_options">6.2. Developer Options</a></p>
+
+<p class="toc_h1"><a href="#7_hardware_compatibility">7. Hardware Compatibility</a></p>
+
+<p class="toc_h2"><a href="#7_1_display_and_graphics">7.1. Display and Graphics</a></p>
+
+<p class="toc_h3"><a href="#7_1_1_screen_configuration">7.1.1. Screen Configuration</a></p>
+
+<p class="toc_h4"><a href="#7_1_1_1_screen_size">7.1.1.1. Screen Size</a></p>
+
+<p class="toc_h4"><a href="#7_1_1_2_screen_aspect_ratio">7.1.1.2. Screen Aspect Ratio</a></p>
+
+<p class="toc_h4"><a href="#7_1_1_3_screen_density">7.1.1.3. Screen Density</a></p>
+
+<p class="toc_h3"><a href="#7_1_2_display_metrics">7.1.2. Display Metrics</a></p>
+
+<p class="toc_h3"><a href="#7_1_3_screen_orientation">7.1.3. Screen Orientation</a></p>
+
+<p class="toc_h3"><a href="#7_1_4_2d_and_3d_graphics_acceleration">7.1.4. 2D and 3D Graphics Acceleration</a></p>
+
+<p class="toc_h3"><a href="#7_1_5_legacy_application_compatibility_mode">7.1.5. Legacy Application Compatibility Mode</a></p>
+
+<p class="toc_h3"><a href="#7_1_6_screen_technology">7.1.6. Screen Technology</a></p>
+
+<p class="toc_h3"><a href="#7_1_7_external_displays">7.1.7. Secondary Displays</a></p>
+
+<p class="toc_h2"><a href="#7_2_input_devices">7.2. Input Devices</a></p>
+
+<p class="toc_h3"><a href="#7_2_1_keyboard">7.2.1. Keyboard</a></p>
+
+<p class="toc_h3"><a href="#7_2_2_non-touch_navigation">7.2.2. Non-touch Navigation</a></p>
+
+<p class="toc_h3"><a href="#7_2_3_navigation_keys">7.2.3. Navigation Keys</a></p>
+
+<p class="toc_h3"><a href="#7_2_4_touchscreen_input">7.2.4. Touchscreen Input</a></p>
+
+<p class="toc_h3"><a href="#7_2_5_fake_touch_input">7.2.5. Fake Touch Input</a></p>
+
+<p class="toc_h3"><a href="#7_2_6_game_controller_support">7.2.6. Game Controller Support</a></p>
+
+<p class="toc_h4"><a href="#7_2_6_1_button_mapping">7.2.6.1. Button Mappings</a></p>
+
+<p class="toc_h3"><a href="#7_2_7_remote_control">7.2.7. Remote Control</a></p>
+
+<p class="toc_h2"><a href="#7_3_sensors">7.3. Sensors</a></p>
+
+<p class="toc_h3"><a href="#7_3_1_accelerometer">7.3.1. Accelerometer</a></p>
+
+<p class="toc_h3"><a href="#7_3_2_magnetometer">7.3.2. Magnetometer</a></p>
+
+<p class="toc_h3"><a href="#7_3_3_gps">7.3.3. GPS</a></p>
+
+</div>
+
+<div id="toc_right">
+
+<p class="toc_h3"><a href="#7_3_4_gyroscope">7.3.4. Gyroscope</a></p>
+
+<p class="toc_h3"><a href="#7_3_5_barometer">7.3.5. Barometer</a></p>
+
+<p class="toc_h3"><a href="#7_3_6_thermometer">7.3.6. Thermometer</a></p>
+
+<p class="toc_h3"><a href="#7_3_7_photometer">7.3.7. Photometer</a></p>
+
+<p class="toc_h3"><a href="#7_3_8_proximity_sensor">7.3.8. Proximity Sensor</a></p>
+
+<p class="toc_h3"><a href="#7_3_9_hifi_sensors">7.3.9. High Fidelity Sensors</a></p>
+
+<p class="toc_h3"><a href="#7_3_10_fingerprint">7.3.10. Fingerprint Sensor</a></p>
+
+<p class="toc_h2"><a href="#7_4_data_connectivity">7.4. Data Connectivity</a></p>
+
+<p class="toc_h3"><a href="#7_4_1_telephony">7.4.1. Telephony</a></p>
+
+<p class="toc_h3"><a href="#7_4_2_ieee_80211_wi-fi">7.4.2. IEEE 802.11 (Wi-Fi)</a></p>
+
+<p class="toc_h4"><a href="#7_4_2_1_wi-fi_direct">7.4.2.1. Wi-Fi Direct</a></p>
+
+<p class="toc_h4"><a href="#7_4_2_2_wi-fi-tunneled-direct-link-setup">7.4.2.2. Wi-Fi Tunneled Direct Link Setup</a></p>
+
+<p class="toc_h3"><a href="#7_4_3_bluetooth">7.4.3. Bluetooth</a></p>
+
+<p class="toc_h3"><a href="#7_4_4_near-field_communications">7.4.4. Near-Field Communications</a></p>
+
+<p class="toc_h3"><a href="#7_4_5_minimum_network_capability">7.4.5. Minimum Network Capability</a></p>
+
+<p class="toc_h3"><a href="#7_4_6_sync_settings">7.4.6. Sync Settings</a></p>
+
+<p class="toc_h2"><a href="#7_5_cameras">7.5. Cameras</a></p>
+
+<p class="toc_h3"><a href="#7_5_1_rear-facing_camera">7.5.1. Rear-Facing Camera</a></p>
+
+<p class="toc_h3"><a href="#7_5_2_front-facing_camera">7.5.2. Front-Facing Camera</a></p>
+
+<p class="toc_h3"><a href="#7_5_3_external_camera">7.5.3. External Camera</a></p>
+
+<p class="toc_h3"><a href="#7_5_4_camera_api_behavior">7.5.4. Camera API Behavior</a></p>
+
+<p class="toc_h3"><a href="#7_5_5_camera_orientation">7.5.5. Camera Orientation</a></p>
+
+<p class="toc_h2"><a href="#7_6_memory_and_storage">7.6. Memory and Storage</a></p>
+
+<p class="toc_h3"><a href="#7_6_1_minimum_memory_and_storage">7.6.1. Minimum Memory and Storage</a></p>
+
+<p class="toc_h3"><a href="#7_6_2_application_shared_storage">7.6.2. Application Shared Storage</a></p>
+
+<p class="toc_h3"><a href="#7_6_3_adoptable_storage">7.6.3. Adoptable Storage</a></p>
+
+<p class="toc_h2"><a href="#7_7_usb">7.7. USB</a></p>
+
+<p class="toc_h2"><a href="#7_8_audio">7.8. Audio</a></p>
+
+<p class="toc_h3"><a href="#7_8_1_microphone">7.8.1. Microphone</a></p>
+
+<p class="toc_h3"><a href="#7_8_2_audio_output">7.8.2. Audio Output</a></p>
+
+<p class="toc_h4"><a href="#7_8_2_1_analog_audio_ports">7.8.2.1. Analog Audio Ports</a></p>
+
+<p class="toc_h3"><a href="#7_8_3_near_ultrasound">7.8.3. Near-Ultrasound</a></p>
+
+<p class="toc_h1"><a href="#8_performance_power">8. Performance and Power</a></p>
+
+<p class="toc_h2"><a href="#8_1_user_experience_consistency">8.1. User Experience Consistency</a></p>
+
+<p class="toc_h2"><a href="#8_2_file_i_o_access_performance">8.2. File I/O Access Performance</a></p>
+
+<p class="toc_h2"><a href="#8_3_power_saving_modes">8.3. Power-Saving Modes</a></p>
+
+<p class="toc_h2"><a href="#8_4_power_consumption_accounting">8.4. Power Consumption Accounting</a></p>
+
+</div>
+
+<div style="clear: both; page-break-after:always; height:1px"></div>
+
+<div id="toc_left">
+
+<p class="toc_h1"><a href="#9_security_model_compatibility">9. Security Model Compatibility</a></p>
+
+<p class="toc_h2"><a href="#9_1_permissions">9.1. Permissions</a></p>
+
+<p class="toc_h2"><a href="#9_2_uid_and_process_isolation">9.2. UID and Process Isolation</a></p>
+
+<p class="toc_h2"><a href="#9_3_filesystem_permissions">9.3. Filesystem Permissions</a></p>
+
+<p class="toc_h2"><a href="#9_4_alternate_execution_environments">9.4. Alternate Execution Environments</a></p>
+
+<p class="toc_h2"><a href="#9_5_multi-user_support">9.5. Multi-User Support</a></p>
+
+<p class="toc_h2"><a href="#9_6_premium_sms_warning">9.6. Premium SMS Warning</a></p>
+
+<p class="toc_h2"><a href="#9_7_kernel_security_features">9.7. Kernel Security Features</a></p>
+
+<p class="toc_h2"><a href="#9_8_privacy">9.8. Privacy</a></p>
+
+<p class="toc_h2"><a href="#9_9_full-disk-encryption">9.9. Full-Disk Encryption</a></p>
+
+<p class="toc_h2"><a href="#9_10_verified_boot">9.10. Verified Boot</a></p>
+
+<p class="toc_h2"><a href="#9_11_keys_and_credentials">9.11. Keys and Credentials</a></p>
+
+<p class="toc_h2"><a href="#9_12_data_deletion">9.12. Data Deletion</a></p>
+
+<p class="toc_h1"><a href="#10_software_compatibility_testing">10. Software Compatibility Testing</a></p>
+
+<p class="toc_h2"><a href="#10_1_compatibility_test_suite">10.1. Compatibility Test Suite</a></p>
+
+<p class="toc_h2"><a href="#10_2_cts_verifier">10.2. CTS Verifier</a></p>
+
+<p class="toc_h1"><a href="#11_updatable_software">11. Updatable Software</a></p>
+
+<p class="toc_h1"><a href="#12_document_changelog">12. Document Changelog</a></p>
+
+<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>
+
+<div style="clear: both"></div>
+
+<div id="main">
+
+<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 6.0.</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>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 6.0. A
+&ldquo;device implementation&rdquo; or &ldquo;implementation is the hardware/software solution
+so developed.</p>
+
+<p>To be considered compatible with Android 6.0, 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
+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>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>
+
+<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
+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>
+
+<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>
+
+<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>
+</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>
+
+<ul>
+  <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>
+</ul>
+
+<p><strong>Android Automotive implementation</strong> refers to a vehicle head
+unit running Android as an operating system for part or all of the system and/or
+infotainment functionality. Android Automotive implementations:</p>
+
+<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>
+</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 6.0
+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>
+<table>
+ <tr>
+    <th>Category</th>
+    <th>Feature</th>
+    <th>Section</th>
+    <th>Handheld</th>
+    <th>Television</th>
+    <th>Watch</th>
+    <th>Automotive</th>
+    <th>Other</th>
+ </tr>
+ <tr>
+    <td rowspan="3">Input</td>
+    <td>D-pad</td>
+    <td><a href="#7_2_2_non-touch-navigation">7.2.2. Non-touch Navigation</a></td>
+    <td></td>
+    <td>MUST</td>
+    <td></td>
+    <td></td>
+    <td></td>
+ </tr>
+ <tr>
+    <td>Touchscreen </td>
+    <td><a href="#7_2_4_touchscreen_input">7.2.4. Touchscreen input</a></td>
+    <td>MUST</td>
+    <td></td>
+    <td>MUST</td>
+    <td></td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Microphone </td>
+    <td><a href="#7_8_1_microphone">7.8.1. Microphone</a></td>
+    <td>MUST</td>
+    <td>SHOULD </td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td rowspan="2">Sensors</td>
+    <td>Accelerometer </td>
+    <td><a href="#7_3_1_accelerometer">7.3.1 Accelerometer</a></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>GPS</td>
+    <td><a href="#7_3_3_gps">7.3.3. GPS</a></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+    <td></td>
+ </tr>
+ <tr>
+    <td rowspan="5">Connectivity</td>
+    <td>Wi-Fi</td>
+    <td><a href="#7_4_2_ieee_802.11">7.4.2. IEEE 802.11</a></td>
+    <td>SHOULD</td>
+    <td> MUST</td>
+    <td></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Wi-Fi Direct</td>
+    <td><a href="#7_4_2_1_wi-fi-direct">7.4.2.1. Wi-Fi Direct</a></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Bluetooth</td>
+    <td><a href="#7_4_3_bluetooth">7.4.3. Bluetooth</a></td>
+    <td>SHOULD</td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Bluetooth Low Energy</td>
+    <td><a href="#7_4_3_bluetooth">7.4.3. Bluetooth</a></td>
+    <td>SHOULD</td>
+    <td>MUST</td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>USB peripheral/host mode</td>
+    <td><a href="#7_7_usb">7.7. USB</a></td>
+    <td>SHOULD</td>
+    <td></td>
+    <td></td>
+    <td>SHOULD</td>
+    <td>SHOULD</td>
+ </tr>
+ <tr>
+    <td>Output</td>
+    <td>Speaker and/or Audio output ports</td>
+    <td><a href="#7_8_2_audio_output">7.8.2. Audio Output</a></td>
+    <td>MUST</td>
+    <td>MUST</td>
+    <td></td>
+    <td>MUST</td>
+    <td>MUST</td>
+ </tr>
+</table>
+
+
+<h1 id="3_software">3. Software</h1>
+
+
+<h2 id="3_1_managed_api_compatibility">3.1. Managed API Compatibility</h2>
+
+
+<p>The managed Dalvik bytecode execution environment is the primary vehicle for
+Android applications. The Android application programming interface (API) is
+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>
+
+<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>
+
+<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>
+
+<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>
+
+<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
+implementations MUST conform.</p>
+<table>
+ <tr>
+    <th>Parameter</th>
+    <th>Details</th>
+ </tr>
+ <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/6.0/versions.html">Resources, 9</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 6.0, this field MUST have the
+integer value 23.</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 6.0, this field MUST have the
+integer value 23.</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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+	&nbsp;&nbsp;&nbsp;&nbsp;$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)</p>
+<p>For example:</p>
+<p class="small">acme/myproduct/<br>
+	&nbsp;&nbsp;&nbsp;&nbsp;mydevice:6.0/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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </tr>
+ <tr>
+    <td>TIME</td>
+    <td>A value representing the timestamp of when the build occurred.</td>
+ </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>
+ </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>
+ </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>
+ </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>
+ </tr>
+</table>
+
+
+<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>
+
+<h4 id="3_2_3_1_core_application_intents">3.2.3.1. Core Application Intents</h4>
+
+
+<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>
+
+<ul>
+  <li>Desk Clock</li>
+  <li>Browser</li>
+  <li>Calendar</li>
+  <li>Contacts</li>
+  <li>Gallery</li>
+  <li>GlobalSearch</li>
+  <li>Launcher</li>
+  <li>Music</li>
+  <li>Settings</li>
+</ul>
+
+<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>
+
+<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>
+
+<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
+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:
+  <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>
+  </ul>
+</li>
+</ul>
+
+<h4 id="3_2_3_3_intent_namespaces">3.2.3.3. Intent Namespaces</h4>
+
+
+<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>
+
+<h4 id="3_2_3_4_broadcast_intents">3.2.3.4. Broadcast Intents</h4>
+
+
+<p>Third-party applications rely on the platform to broadcast certain intents to
+notify them of changes in the hardware or software environment.
+Android-compatible devices MUST broadcast the public broadcast intents in
+response to appropriate system events. Broadcast intents are described in the
+SDK documentation.</p>
+
+<h4 id="3_2_3_5_default_app_settings">3.2.3.5. Default App Settings</h4>
+
+
+<p>Android includes settings that provide users an easy way to select their
+default applications, for example for Home screen or SMS. Where it makes sense,
+device implementations MUST provide a similar settings menu and be compatible
+with the intent filter pattern and API methods described in the SDK
+documentation as below.</p>
+
+<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 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>
+</ul>
+
+<h2 id="3_3_native_api_compatibility">3.3. Native API Compatibility</h2>
+
+
+<h3 id="3_3_1_application_binary_interfaces">3.3.1. Application Binary Interfaces</h3>
+
+
+<p>Managed Dalvik bytecode can call into native code provided in the application
+.apk file as an ELF .so file compiled for the appropriate device hardware
+architecture. As native code is highly dependent on the underlying processor
+technology, Android defines a number of Application Binary Interfaces (ABIs) in
+the Android NDK. Device implementations MUST be compatible with one or more
+defined ABIs, and MUST implement compatibility with the Android NDK, as below.</p>
+
+<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 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>
+  <li>SHOULD be built using the source code and header files available in the
+upstream Android Open Source Project</li>
+</ul>
+
+<p>The following native code APIs MUST be available to apps that include native
+code:</p>
+
+<ul>
+  <li>libc (C library)</li>
+  <li>libm (math library)</li>
+  <li>Minimal support for C++</li>
+  <li>JNI interface</li>
+  <li>liblog (Android logging)</li>
+  <li>libz (Zlib compression)</li>
+  <li>libdl (dynamic linker)</li>
+  <li>libGLESv1_CM.so (OpenGL ES 1.x)</li>
+  <li>libGLESv2.so (OpenGL ES 2.0)</li>
+  <li>libGLESv3.so (OpenGL ES 3.x)</li>
+  <li>libEGL.so (native OpenGL surface management)</li>
+  <li>libjnigraphics.so</li>
+  <li>libOpenSLES.so (OpenSL ES 1.0.1 audio support)</li>
+  <li>libOpenMAXAL.so (OpenMAX AL 1.0.1 support)</li>
+  <li>libandroid.so (native Android activity support)</li>
+  <li>libmediandk.so (native media APIs support)</li>
+  <li>Support for OpenGL, as described below</li>
+</ul>
+
+<p>Note that future releases of the Android NDK may introduce support for
+additional ABIs. If a device implementation is not compatible with an existing
+predefined ABI, it MUST NOT report support for any ABIs at all.</p>
+
+<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
+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>
+
+<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
+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>
+</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>
+
+<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>
+</ul>
+
+<p>These requirements only apply when /proc/cpuinfo is read by 32-bit ARM
+applications. Devices SHOULD not alter /proc/cpuinfo when read by 64-bit ARM or
+non-ARM applications.</p>
+
+<h2 id="3_4_web_compatibility">3.4. Web Compatibility</h2>
+
+
+<h3 id="3_4_1_webview_compatibility">3.4.1. WebView Compatibility</h3>
+
+<div class="note">
+<p>Android Watch devices MAY, but all other device implementations MUST provide
+a complete implementation of the android.webkit.Webview API.</p>
+</div>
+
+
+<p>The platform feature android.software.webview MUST be reported on any device
+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
+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 6.0. 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>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>
+  <ul>
+    <li>The value of the $(VERSION) string MUST be the same as the value for
+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>
+    <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>
+    <li>Device implementations MAY omit Mobile in the user agent string.</li>
+  </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>
+
+<h3 id="3_4_2_browser_compatibility">3.4.2. Browser Compatibility</h3>
+
+<div class="note">
+<p>Android Television, Watch, and Android Automotive implementations MAY omit a
+browser application, but MUST support the public intent patterns as described in
+<a href="#3_2_3_1_core_application_intents">section 3.2.3.1</a>. All other types
+of device implementations MUST include a standalone Browser application for
+general user web browsing.</p>
+</div>
+
+<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>
+
+<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>
+
+<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>
+</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
+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>
+
+<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 semantics of a standard permission.</li>
+</ul>
+
+<p>The above list is not comprehensive. The Compatibility Test Suite (CTS) tests
+significant portions of the platform for behavioral compatibility, but not all.
+It is the responsibility of the implementer to ensure behavioral compatibility
+with the Android Open Source Project. For this reason, device implementers
+SHOULD use the source code available via the Android Open Source Project where
+possible, rather than re-implement significant parts of the system.</p>
+
+<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>
+
+<ul>
+  <li>java.*</li>
+  <li>javax.*</li>
+  <li>sun.*</li>
+  <li>android.*</li>
+  <li>com.android.*</li>
+</ul>
+
+<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>
+</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>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
+implementers MUST NOT add APIs to the com.google.* or similar namespace: only
+Google may do so. Similarly, Google MUST NOT add APIs to other companies'
+namespaces. Additionally, if a device implementation includes custom APIs
+outside the standard Android namespace, those APIs MUST be packaged in an
+Android shared library so that only apps that explicitly use them (via the
+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>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 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>
+
+<table>
+ <tr>
+    <th>Screen Layout</th>
+    <th>Screen Density</th>
+    <th>Minimum Application Memory</th>
+ </tr>
+ <tr>
+    <td rowspan="12">Android Watch</td>
+    <td>120 dpi (ldpi)</td>
+    <td rowspan="3">32MB</td>
+ </tr>
+ <tr>
+    <td>160 dpi (mdpi)</td>
+ </tr>
+ <tr>
+    <td>213 dpi (tvdpi)</td>
+ </tr>
+ <tr>
+    <td>240 dpi (hdpi)</td>
+    <td rowspan="2">36MB</td>
+ </tr>
+ <tr>
+    <td>280 dpi (280dpi)</td>
+ </tr>
+ <tr>
+    <td>320 dpi (xhdpi)</td>
+    <td rowspan="2">48MB</td>
+ </tr>
+ <tr>
+    <td>360 dpi (360dpi)</td>
+ </tr>
+ <tr>
+    <td>400 dpi (400dpi)</td>
+    <td>56MB</td>
+ </tr>
+ <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>64MB</td>
+ </tr>
+ <tr>
+    <td>480 dpi (xxhdpi)</td>
+    <td>88MB</td>
+ </tr>
+ <tr>
+    <td>560 dpi (560dpi)</td>
+    <td>112MB</td>
+ </tr>
+ <tr>
+    <td>640 dpi (xxxhdpi)</td>
+    <td>154MB</td>
+ </tr>
+ <tr>
+    <td rowspan="12">small/normal</td>
+    <td>120 dpi (ldpi)</td>
+    <td rowspan="2">32MB</td>
+ </tr>
+ <tr>
+    <td>160 dpi (mdpi)</td>
+ </tr>
+ <tr>
+    <td>213 dpi (tvdpi)</td>
+    <td rowspan="3">48MB</td>
+ </tr>
+ <tr>
+    <td>240 dpi (hdpi)</td>
+ </tr>
+ <tr>
+    <td>280 dpi (280dpi)</td>
+ </tr>
+ <tr>
+    <td>320 dpi (xhdpi)</td>
+    <td rowspan="2">80MB</td>
+ </tr>
+ <tr>
+    <td>360 dpi (360dpi)</td>
+ </tr>
+ <tr>
+    <td>400 dpi (400dpi)</td>
+    <td>96MB</td>
+ </tr>
+ <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>112MB</td>
+ </tr>
+ <tr>
+    <td>480 dpi (xxhdpi)</td>
+    <td>128MB</td>
+ </tr>
+ <tr>
+    <td>560 dpi (560dpi)</td>
+    <td>192MB</td>
+ </tr>
+ <tr>
+    <td>640 dpi (xxxhdpi)</td>
+    <td>256MB</td>
+ </tr>
+ <tr>
+    <td rowspan="12">large</td>
+    <td>120 dpi (ldpi)</td>
+    <td>32MB</td>
+ </tr>
+ <tr>
+    <td>160 dpi (mdpi)</td>
+    <td>48MB</td>
+ </tr>
+ <tr>
+    <td>213 dpi (tvdpi)</td>
+    <td rowspan="2">80MB</td>
+ </tr>
+ <tr>
+    <td>240 dpi (hdpi)</td>
+ </tr>
+ <tr>
+    <td>280 dpi (280dpi)</td>
+    <td>96MB</td>
+ </tr>
+ <tr>
+    <td>320 dpi (xhdpi)</td>
+    <td>128MB</td>
+ </tr>
+ <tr>
+    <td>360 dpi (360dpi)</td>
+    <td>160MB</td>
+ </tr>
+ <tr>
+    <td>400 dpi (400dpi)</td>
+    <td>192MB</td>
+ </tr>
+ <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>228MB</td>
+ </tr>
+ <tr>
+    <td>480 dpi (xxhdpi)</td>
+    <td>256MB</td>
+ </tr>
+ <tr>
+    <td>560 dpi (560dpi)</td>
+    <td>384MB</td>
+ </tr>
+ <tr>
+    <td>640 dpi (xxxhdpi)</td>
+    <td>512MB</td>
+ </tr>
+ <tr>
+    <td rowspan="12">xlarge</td>
+    <td>120 dpi (ldpi)</td>
+    <td>48MB</td>
+ </tr>
+ <tr>
+    <td>160 dpi (mdpi)</td>
+    <td>80MB</td>
+ </tr>
+ <tr>
+    <td>213 dpi (tvdpi)</td>
+    <td rowspan="2">96MB</td>
+ </tr>
+ <tr>
+    <td>240 dpi (hdpi)</td>
+ </tr>
+ <tr>
+    <td>280 dpi (280dpi)</td>
+    <td>144MB</td>
+ </tr>
+ <tr>
+    <td>320 dpi (xhdpi)</td>
+    <td>192MB</td>
+ </tr>
+ <tr>
+    <td>360 dpi (360dpi)</td>
+    <td>240MB</td>
+ </tr>
+ <tr>
+    <td>400 dpi (400dpi)</td>
+    <td>288MB</td>
+ </tr>
+ <tr>
+    <td>420 dpi (420dpi)</td>
+    <td>336MB</td>
+ </tr>
+ <tr>
+    <td>480 dpi (xxhdpi)</td>
+    <td>384MB</td>
+ </tr>
+ <tr>
+    <td>560 dpi (560dpi)</td>
+    <td>576MB</td>
+ </tr>
+ <tr>
+    <td>640 dpi (xxxhdpi)</td>
+    <td>768MB</td>
+ </tr>
+</table>
+
+
+<h2 id="3_8_user_interface_compatibility">3.8. User Interface Compatibility</h2>
+
+
+<h3 id="3_8_1_launcher_home_screen">3.8.1. Launcher (Home Screen)</h3>
+
+
+<p>Android includes a launcher application (home screen) and support for
+third-party applications to replace the device launcher (home screen). Device
+implementations that allow third-party applications to replace the device home
+screen MUST declare the platform feature android.software.home_screen.</p>
+
+<h3 id="3_8_2_widgets">3.8.2. Widgets</h3>
+
+<div class="note">
+<p>Widgets are optional for all Android device implementations, but SHOULD be
+supported on Android Handheld devices.</p>
+</div>
+
+
+<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>
+
+<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 implementations that include support for lock screen MAY support
+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>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>
+
+<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>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>
+</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 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>
+
+<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 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
+applications are installed that make use of this functionality, the default
+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>
+
+<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>
+
+<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>
+
+<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 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;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 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 supports a variant theme with translucent system bars, which allows
+application developers to fill the area behind the status and navigation bar
+with their app content. To enable a consistent developer experience in this
+configuration, it is important the status bar icon style is maintained across
+different device implementations. Therefore, Android device implementations
+MUST use white for system status icons (such as signal strength and battery
+level) and notifications issued by the system, unless the icon is indicating a
+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>
+
+<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>
+
+<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
+frame rate with no adverse effects on other applications. If limitations in the
+hardware cause wallpapers and/or applications to crash, malfunction, consume
+excessive CPU or battery power, or run at unacceptably low frame rates, the
+hardware is considered incapable of running live wallpaper. As an example, some
+live wallpapers may use an OpenGL 2.0 or 3.x context to render their content.
+Live wallpaper will not run reliably on hardware that does not support multiple
+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>
+
+<h3 id="3_8_8_activity_switching">3.8.8. Activity Switching</h3>
+
+<div class="note">
+<p>As the Recent function navigation key is OPTIONAL, the requirements to
+implement the overview screen is OPTIONAL for Android Television devices and
+Android Watch devices.</p>
+</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>
+
+<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>SHOULD display a closing affordance ("x") but MAY delay this until user
+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>
+
+<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>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>
+
+<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
+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
+in response to the android.settings.DREAM_SETTINGS intent.</p>
+
+<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>
+
+<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>
+
+<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>
+
+<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>
+
+<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
+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>
+
+<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>
+
+<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>
+
+<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>
+
+
+<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>Allocate internal (non-removable) storage as shared storage (see
+    <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>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>
+  <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>
+  <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>
+  </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>
+</ul>
+
+<h2 id="3_10_accessibility">3.10. Accessibility</h2>
+
+
+<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>
+
+<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>
+</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>
+
+<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>
+
+<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>
+</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
+</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>Device implementations that support TIF MUST declare the platform feature
+android.software.live_tv.</p>
+
+<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>
+
+<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>
+
+<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 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).
+</ul>
+
+<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>
+
+<ul>
+  <li>The EPG MUST display information from all installed inputs and third-party
+inputs.
+  <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.
+  <li>On channel change, device implementations MUST display EPG data for the
+currently playing program.
+</ul>
+
+<h4 id="3_12_1_2_navigation">3.12.1.2. Navigation</h4>
+
+<p>Android Television device input devices (i.e. remote control, remote control
+application, or game controller) MUST allow navigation to all actionable
+sections of the screen via the D-pad. D-pad up and down MUST be used to change
+live TV channels when there is no actionable section on the screen.</p>
+
+<p>The TV App SHOULD pass key events to HDMI inputs through CEC.</p>
+
+<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>
+
+<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>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>
+
+<h1 id="5_multimedia_compatibility">5. Multimedia Compatibility</h1>
+
+
+<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
+provided as software implementations in the preferred Android implementation
+from the Android Open Source Project.</p>
+
+<p>Please note that neither Google nor the Open Handset Alliance make any
+representation that these codecs are free from third-party patents. Those
+intending to use this source code in hardware or software products are advised
+that implementations of this code, including in open source software or
+shareware, may require patent licenses from the relevant patent holders.</p>
+
+<h3 id="5_1_1_audio_codecs">5.1.1. Audio Codecs</h3>
+
+<table>
+ <tr>
+    <th>Format/Codec</th>
+    <th>Encoder</th>
+    <th>Decoder</th>
+    <th>Details</th>
+    <th>Supported File Types/Container Formats</th>
+ </tr>
+ <tr>
+    <td>MPEG-4 AAC Profile<br />
+
+(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>
+    <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>
+ </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></td>
+ </tr>
+ <tr>
+    <td>MPEG-4 HE AACv2<br />
+
+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></td>
+ </tr>
+ <tr>
+    <td>AAC ELD (enhanced low delay AAC)</td>
+    <td>REQUIRED<sup>1</sup> <br />
+
+(Android 4.1+)</td>
+    <td>REQUIRED<br />
+
+(Android 4.1+)</td>
+    <td>Support for mono/stereo content with standard sampling rates from 16 to 48 kHz.</td>
+    <td></td>
+ </tr>
+ <tr>
+    <td>AMR-NB</td>
+    <td>REQUIRED<sup>3</sup></td>
+    <td>REQUIRED<sup>3</sup></td>
+    <td>4.75 to 12.2 kbps sampled @ 8 kHz</td>
+    <td>3GPP (.3gp)</td>
+ </tr>
+ <tr>
+    <td>AMR-WB</td>
+    <td>REQUIRED<sup>3</sup></td>
+    <td>REQUIRED<sup>3</sup></td>
+    <td>9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16 kHz</td>
+    <td></td>
+ </tr>
+ <tr>
+    <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>FLAC (.flac) only</td>
+ </tr>
+ <tr>
+    <td>MP3</td>
+    <td></td>
+    <td>REQUIRED</td>
+    <td>Mono/Stereo 8-320Kbps constant (CBR) or variable bitrate (VBR)</td>
+    <td>MP3 (.mp3)</td>
+ </tr>
+ <tr>
+    <td>MIDI</td>
+    <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>
+    <td><ul>
+    <li class="table_list">Type 0 and 1 (.mid, .xmf, .mxmf)</li>
+    <li class="table_list">RTTTL/RTX (.rtttl, .rtx)</li>
+    <li class="table_list">OTA (.ota)</li>
+    <li class="table_list">iMelody (.imy)</li></ul></td>
+ </tr>
+ <tr>
+    <td>Vorbis</td>
+    <td></td>
+    <td>REQUIRED</td>
+    <td></td>
+    <td><ul>
+    <li class="table_list">Ogg (.ogg)</li>
+    <li class="table_list">Matroska (.mkv, Android 4.0+)</li></ul></td>
+ </tr>
+ <tr>
+    <td>PCM/WAVE</td>
+    <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>
+    <td>WAVE (.wav)</td>
+ </tr>
+ <tr>
+    <td>Opus</td>
+    <td></td>
+    <td>REQUIRED<br> (Android 5.0+)</td>
+    <td></td>
+    <td>Matroska (.mkv)</td>
+ </tr>
+</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">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">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>
+
+<table>
+ <tr>
+    <th>Format/Codec</th>
+    <th>Encoder</th>
+    <th>Decoder</th>
+    <th>Details</th>
+    <th>Supported File Types/Container Formats</th>
+ </tr>
+ <tr>
+    <td>JPEG</td>
+    <td>REQUIRED</td>
+    <td>REQUIRED</td>
+    <td>Base+progressive</td>
+    <td>JPEG (.jpg)</td>
+ </tr>
+ <tr>
+    <td>GIF</td>
+    <td></td>
+    <td>REQUIRED</td>
+    <td></td>
+    <td>GIF (.gif)</td>
+ </tr>
+ <tr>
+    <td>PNG</td>
+    <td>REQUIRED</td>
+    <td>REQUIRED</td>
+    <td></td>
+    <td>PNG (.png)</td>
+ </tr>
+ <tr>
+    <td>BMP</td>
+    <td></td>
+    <td>REQUIRED</td>
+    <td></td>
+    <td>BMP (.bmp)</td>
+ </tr>
+ <tr>
+    <td>WebP</td>
+    <td>REQUIRED</td>
+    <td>REQUIRED</td>
+    <td></td>
+    <td>WebP (.webp)</td>
+ </tr>
+</table>
+
+
+<h3 id="5_1_3_video_codecs">5.1.3. Video Codecs</h3>
+
+<table>
+ <tr>
+    <th>Format/Codec</th>
+    <th>Encoder</th>
+    <th>Decoder</th>
+    <th>Details</th>
+    <th>Supported File Types/<br>Container Formats</th>
+ </tr>
+ <tr>
+    <td>H.263</td>
+    <td>REQUIRED<sup>1</sup></td>
+    <td>REQUIRED<sup>2</sup></td>
+    <td></td>
+    <td><ul>
+    <li class="table_list">3GPP (.3gp)</li>
+    <li class="table_list">MPEG-4 (.mp4)</li></ul></td>
+ </tr>
+ <tr>
+    <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><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>
+ </tr>
+ <tr>
+    <td>H.265 HEVC</td>
+    <td></td>
+    <td>REQUIRED<sup>5</sup></td>
+    <td>See <a href="#5_3_video_decoding">section 5.3</a> for details</td>
+    <td>MPEG-4 (.mp4)</td>
+ </tr>
+<tr>
+  <td>MPEG-2</td>
+  <td></td>  
+  <td>STRONGLY RECOMMENDED<sup>6</sup></td>
+  <td>Main Profile</td>
+  <td>MPEG2-TS</td>
+</tr>
+ <tr>
+    <td>MPEG-4 SP</td>
+    <td></td>
+    <td>REQUIRED<sup>2</sup></td>
+    <td></td>
+    <td>3GPP (.3gp)</td>
+ </tr>
+ <tr>
+    <td>VP8<sup>3</sup></td>
+    <td>REQUIRED<sup>2</sup><br />
+
+(Android 4.3+)</td>
+    <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><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>
+ </tr>
+ <tr>
+    <td>VP9</td>
+    <td></td>
+    <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>
+ </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">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">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">6 Applies only to Android Television device implementations.</p>
+
+<h2 id="5_2_video_encoding">5.2. Video Encoding</h2>
+
+<div class="note">
+<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.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>
+<table>
+ <tr>
+    <th></th>
+    <th>SD (Low quality)</th>
+    <th>SD (High quality)</th>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>1</sup></th>
+ </tr>
+ <tr>
+    <th>Video resolution</th>
+    <td>320 x 240 px</td>
+    <td>720 x 480 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+ </tr>
+ <tr>
+    <th>Video frame rate</th>
+    <td>20 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+ </tr>
+ <tr>
+    <th>Video bitrate</th>
+    <td>384 Kbps</td>
+    <td>2 Mbps</td>
+    <td>4 Mbps</td>
+    <td>10 Mbps</td>
+ </tr>
+</table>
+
+
+<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>
+<table>
+ <tr>
+    <th></th>
+    <th>SD (Low quality)</th>
+    <th>SD (High quality)</th>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>1</sup></th>
+ </tr>
+ <tr>
+    <th>Video resolution</th>
+    <td>320 x 180 px</td>
+    <td>640 x 360 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+ </tr>
+ <tr>
+    <th>Video frame rate</th>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+ </tr>
+ <tr>
+    <th>Video bitrate</th>
+    <td>800 Kbps </td>
+    <td>2 Mbps</td>
+    <td>4 Mbps</td>
+    <td>10 Mbps</td>
+ </tr>
+</table>
+
+<p class="table_footnote">1 When supported by hardware.</p>
+
+<h2 id="5_3_video_decoding">5.3. Video Decoding</h2>
+
+<div class="note">
+<p>Video codecs are optional for Android Watch device implementations.</p>
+</div>
+
+<p>Device implementations MUST support dynamic video resolution and frame rate
+switching through the standard Android APIs within the same stream for all VP8,
+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
+Profile Level 30.</p>
+
+<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
+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>
+<table>
+ <tr>
+    <th></th>
+    <th>SD (Low quality)</th>
+    <th>SD (High quality)</th>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>1</sup></th>
+ </tr>
+ <tr>
+    <th>Video resolution</th>
+    <td>320 x 240 px</td>
+    <td>720 x 480 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+ </tr>
+ <tr>
+    <th>Video frame rate</th>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>60 fps</td>
+    <td>30 fps / 60 fps<sup>2</sup></td>
+ </tr>
+ <tr>
+    <th>Video bitrate</th>
+    <td>800 Kbps </td>
+    <td>2 Mbps</td>
+    <td>8 Mbps</td>
+    <td>20 Mbps</td>
+ </tr>
+</table>
+
+
+<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>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>
+    <th>SD (Low quality)</th>
+    <th>SD (High quality)</th>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>1</sup></th>
+ </tr>
+ <tr>
+    <th>Video resolution</th>
+    <td>320 x 180 px</td>
+    <td>640 x 360 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+ </tr>
+ <tr>
+    <th>Video frame rate</th>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps / 60 fps<sup>2</sup></td>
+    <td>30 / 60 fps<sup>2</sup></td>
+ </tr>
+ <tr>
+    <th>Video bitrate</th>
+    <td>800 Kbps </td>
+    <td>2 Mbps</td>
+    <td>8 Mbps</td>
+    <td>20 Mbps</td>
+ </tr>
+</table>
+
+<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>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>
+    <th>SD (Low quality)</th>
+    <th>SD (High quality)</th>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>2</sup></th>
+    <th>UHD<sup>2</sup></th>
+ </tr>
+ <tr>
+    <th>Video resolution</th>
+    <td>320 x 180 px</td>
+    <td>640 x 360 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+    <td>3840 x 2160 px</td>
+ </tr>
+ <tr>
+    <th>Video frame rate</th>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>60 fps</td>
+    <td>60 fps</td>
+ </tr>
+ <tr>
+    <th>Video bitrate</th>
+    <td>600 Kbps</td>
+    <td>1.6 Mbps</td>
+    <td>4 Mbps</td>
+    <td>10 Mbps</td>
+    <td>20 Mbps</td>
+ </tr>
+</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">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>
+<table>
+ <tr>
+    <th></th>
+    <th>SD (Low quality)</th>
+    <th>SD (High quality)</th>
+    <th>HD 720p<sup>1</sup></th>
+    <th>HD 1080p<sup>1</sup></th>
+    <th>UHD<sup>2</sup></th>
+ </tr>
+ <tr>
+    <th>Video resolution</th>
+    <td>352 x 288 px</td>
+    <td>640 x 360 px</td>
+    <td>1280 x 720 px</td>
+    <td>1920 x 1080 px</td>
+    <td>3840 x 2160 px</td>
+ </tr>
+ <tr>
+    <th>Video frame rate</th>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>30 fps</td>
+    <td>60 fps<sup>2</sup></td>
+    <td>60 fps</td>
+ </tr>
+ <tr>
+    <th>Video bitrate</th>
+    <td>600 Kbps </td>
+    <td>1.6 Mbps</td>
+    <td>4 Mbps</td>
+    <td>10 Mbps</td>
+    <td>20 Mbps</td>
+ </tr>
+</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">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>
+
+<h3 id="5_4_1_raw_audio_capture">5.4.1. Raw Audio Capture</h3>
+
+
+<p>Device implementations that declare android.hardware.microphone MUST allow
+capture of raw audio content with the following characteristics:</p>
+
+<ul>
+  <li><strong>Format</strong>: Linear PCM, 16-bit
+  <li><strong>Sampling rates</strong>: 8000, 11025, 16000, 44100
+  <li><strong>Channels</strong>: Mono
+</ul>
+
+<p>The capture for the above sample rates MUST be done without up-sampling, and
+any down-sampling MUST include an appropriate anti-aliasing filter.</p>
+
+<p>Device implementations that declare android.hardware.microphone SHOULD allow
+capture of raw audio content with the following characteristics:</p>
+
+<ul>
+  <li><strong>Format</strong>: Linear PCM, 16-bit
+  <li><strong>Sampling rates</strong>: 22050, 48000
+  <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>
+
+<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
+started recording an audio stream using the
+android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION audio source:</p>
+
+<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
+</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>
+
+<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
+audio source. Devices that declare android.hardware.audio.output MUST properly
+implement the REMOTE_SUBMIX audio source so that when an application uses the
+android.media.AudioRecord API to record from this audio source, it can capture
+a mix of all audio streams except for the following:</p>
+
+<ul>
+  <li>STREAM_RING
+  <li>STREAM_ALARM
+  <li>STREAM_NOTIFICATION
+</ul>
+
+<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>
+
+<h3 id="5_5_1_raw_audio_playback">5.5.1. Raw Audio Playback</h3>
+
+
+<p>The device MUST allow playback of raw audio content with the following
+characteristics:</p>
+
+<ul>
+  <li><strong>Format</strong>: Linear PCM, 16-bit</li>
+  <li><strong>Sampling rates</strong>: 8000, 11025, 16000, 22050, 32000, 44100</li>
+  <li><strong>Channels</strong>: Mono, Stereo</li>
+</ul>
+
+<p>The device SHOULD allow playback of raw audio content with the following
+characteristics:</p>
+
+<ul>
+  <li><strong>Sampling rates</strong>: 24000, 48000</li>
+</ul>
+
+<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>
+
+<ul>
+  <li>MUST support the EFFECT_TYPE_EQUALIZER and EFFECT_TYPE_LOUDNESS_ENHANCER
+implementations controllable through the AudioEffect subclasses Equalizer,
+LoudnessEnhancer.</li>
+  <li>MUST support the visualizer API implementation, controllable through the
+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>
+</ul>
+
+<h3 id="5_5_3_audio_output_volume">5.5.3. Audio Output Volume</h3>
+
+
+<p>Android Television device implementations MUST include support for system
+Master Volume and digital audio output volume attenuation on supported outputs,
+except for compressed audio passthrough output (where no audio decoding is done
+on the device).</p>
+
+<h2 id="5_6_audio_latency">5.6. Audio Latency</h2>
+
+
+<p>Audio latency is the time delay as an audio signal passes through a system.
+Many classes of applications rely on short latencies, to achieve real-time
+sound effects.</p>
+
+<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>
+</ul>
+
+<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>
+  <li>continuous output latency of 45 milliseconds or less</li>
+  <li>minimize the cold output jitter</li>
+</ul>
+
+<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>
+
+<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>
+  <li>continuous input latency of 30 milliseconds or less</li>
+  <li>continuous round-trip latency of 50 milliseconds or less</li>
+  <li>minimize the cold input jitter</li>
+</ul>
+
+<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>
+
+<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>
+</ul>
+
+<h2 id="5_8_secure_media">5.8. Secure Media</h2>
+
+
+<p>Device implementations that support secure video output and are capable of
+supporting secure surfaces MUST declare support for Display.FLAG_SECURE. Device
+implementations that declare support for Display.FLAG_SECURE, if they support a
+wireless display protocol, MUST secure the link with a cryptographically strong
+mechanism such as HDCP 2.x or higher for Miracast wireless displays. Similarly
+if they support a wired external display, the device implementations MUST
+support HDCP 1.2 or higher. Android Television device implementations MUST
+support HDCP 2.2 for devices supporting 4K resolution and HDCP 1.4 or above for
+lower resolutions. The upstream Android open source implementation includes
+support for wireless (Miracast) and wired (HDMI) displays that satisfies this
+requirement.</p>
+
+<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>The MIDI-capable hardware transports are:</p>
+<ul>
+  <li>USB host mode (section 7.7 USB)</li>
+  <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>
+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>
+
+<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>
+
+<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>
+
+</ul>
+
+<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>
+
+<ul>
+  <li><strong>Android Debug Bridge (adb)</strong> [<a href="http://developer.android.com/tools/help/adb.html">Resources, 72</a>]</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>
+
+<h1 id="7_hardware_compatibility">7. Hardware Compatibility</h1>
+
+
+<p>If a device includes a particular hardware component that has a corresponding
+API for third-party developers, the device implementation MUST implement that
+API as described in the Android SDK documentation. If an API in the SDK
+interacts with a hardware component that is stated to be optional and the
+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.
+</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>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>
+
+<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>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>
+</ul>
+
+<h3 id="7_1_1_screen_configuration">7.1.1. Screen Configuration</h3>
+
+
+<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>
+</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>
+
+<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>
+</ul>
+
+<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>
+</ul>
+
+<p>Devices MUST NOT change their reported screen size at any time.</p>
+
+<p>Applications optionally indicate which screen sizes they support via the
+&lt;supports-screens&gt; attribute in the AndroidManifest.xml file. Device
+implementations MUST correctly honor applications' stated support for small,
+normal, large, and xlarge screens, as described in the Android SDK
+documentation.</p>
+
+<h4 id="7_1_1_2_screen_aspect_ratio">7.1.1.2. Screen Aspect Ratio</h4>
+
+<div class="note">
+<p>Android Watch devices MAY have an aspect ratio of 1.0 (1:1).</p>
+</div>
+
+
+<p>The screen aspect ratio MUST be a value from 1.3333 (4:3) to 1.86 (roughly
+16:9), but Android Watch devices MAY have an aspect ratio of 1.0 (1:1) because
+such a device implementation will use a UI_MODE_TYPE_WATCH as the
+android.content.res.Configuration.uiMode.</p>
+
+<h4 id="7_1_1_3_screen_density">7.1.1.3. Screen Density</h4>
+
+
+<p>The Android UI framework defines a set of standard logical densities to help
+application developers target application resources. Device implementations
+MUST report only one of the following logical Android framework densities
+through the android.util.DisplayMetrics APIs, and MUST execute applications at
+this standard density and MUST NOT change the value at at any time for the
+default display.</p>
+
+<ul>
+  <li>120 dpi (ldpi)</li>
+  <li>160 dpi (mdpi)</li>
+  <li>213 dpi (tvdpi)</li>
+  <li>240 dpi (hdpi)</li>
+  <li>280 dpi (280dpi)</li>
+  <li>320 dpi (xhdpi)</li>
+  <li>360 dpi (360dpi)</li>
+  <li>400 dpi (400dpi)</li>
+  <li>420 dpi (420dpi)</li>
+  <li>480 dpi (xxhdpi)</li>
+  <li>560 dpi (560dpi)</li>
+  <li>640 dpi (xxxhdpi)</li>
+</ul>
+
+<p>Device implementations SHOULD define the standard Android framework density
+that is numerically closest to the physical density of the screen, unless that
+logical density pushes the reported screen size below the minimum supported. If
+the standard Android framework density that is numerically closest to the
+physical density results in a screen size that is smaller than the smallest
+supported compatible screen size (320 dp width), device implementations SHOULD
+report the next lowest standard Android framework density.</p>
+
+<h3 id="7_1_2_display_metrics">7.1.2. Display Metrics</h3>
+
+
+<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>
+
+<h3 id="7_1_3_screen_orientation">7.1.3. Screen Orientation</h3>
+
+
+<p>Devices MUST report which screen orientations they support
+(android.hardware.screen.portrait and/or android.hardware.screen.landscape) and
+MUST report at least one supported orientation. For example, a device with a
+fixed orientation landscape screen, such as a television or laptop, SHOULD only
+report android.hardware.screen.landscape.</p>
+
+<p>Devices that report both screen orientations MUST support dynamic orientation
+by applications to either portrait or landscape screen orientation. That is,
+the device must respect the application&rsquo;s request for a specific screen
+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,
+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>
+
+
+<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>
+
+<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 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>
+  <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>
+</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>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
+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
+getString() method in the OpenGL API.</p>
+
+<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>
+
+<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>
+
+<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>
+
+<p>Android includes a TextureView object that lets developers directly integrate
+hardware-accelerated OpenGL ES textures as rendering targets in a UI hierarchy.
+Device implementations MUST support the TextureView API, and MUST exhibit
+consistent behavior with the upstream Android implementation.</p>
+
+<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>
+
+<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
+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>
+</ul>
+
+<h3 id="7_1_6_screen_technology">7.1.6. Screen Technology</h3>
+
+
+<p>The Android platform includes APIs that allow applications to render rich
+graphics to the display. Devices MUST support all of these APIs as defined by
+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 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>
+</ul>
+
+<h3 id="7_1_7_external_displays">7.1.7. Secondary Displays</h3>
+
+
+<p>Android includes support for secondary display to enable media sharing
+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>
+
+<h2 id="7_2_input_devices">7.2. Input Devices</h2>
+
+<p>Devices MUST support a touchscreen or meet the requirements listed in 7.2.2
+for non-touch navigation.</p>
+
+<h3 id="7_2_1_keyboard">7.2.1. Keyboard</h3>
+
+<div class="note">
+<p>Android Watch and Android Automotive implementations MAY implement a soft
+keyboard. All other device implementations MUST implement a soft keyboard and:</p>
+</div>
+
+
+<p>Device implementations:</p>
+
+<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>
+  <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>
+</ul>
+
+<h3 id="7_2_2_non-touch_navigation">7.2.2. Non-touch Navigation</h3>
+
+<div class="note">
+<p>Android Television devices MUST support D-pad.</p>
+</div>
+
+<p>Device implementations:</p>
+
+<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>
+  <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>
+</ul>
+
+<h3 id="7_2_3_navigation_keys">7.2.3. Navigation Keys</h3>
+
+<div class="note">
+<p>The availability and visibility requirement of the Home, Recents, and Back
+functions differ between device types as described in this section.</p>
+</div>
+
+<p>The Home, Recents, and Back functions (mapped to the key events KEYCODE_HOME,
+KEYCODE_APP_SWITCH, KEYCODE_BACK, respectively) are essential to the Android
+navigation paradigm and therefore:</p>
+
+<ul>
+  <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>
+  <li>Android Automotive implementations MUST provide the Home function and MAY
+provide Back and Recent functions.</li>
+  <li>All other types of device implementations MUST provide the Home and Back
+functions.</li>
+</ul>
+
+<p>These functions MAY be implemented via dedicated physical buttons (such as
+mechanical or capacitive touch buttons), or MAY be implemented using dedicated
+software keys on a distinct portion of the screen, gestures, touch panel, etc.
+Android supports both implementations. All of these functions MUST be
+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
+buttons for navigation and no recents key.</p>
+
+<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 6.0 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 6.0, 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>
+</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>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>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>
+  <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>
+</ul>
+
+<h3 id="7_2_4_touchscreen_input">7.2.4. Touchscreen Input</h3>
+
+<div class="note">
+<p>Android Handhelds and Watch Devices MUST support touchscreen input.</p>
+</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>
+
+<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>
+</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>
+
+<p>Device implementations MUST report the correct feature corresponding to the
+type of input used. Device implementations that include a touchscreen
+(single-touch or better) MUST report the platform feature constant
+android.hardware.touchscreen. Device implementations that report the platform
+feature constant android.hardware.touchscreen MUST also report the platform
+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>
+
+<h3 id="7_2_5_fake_touch_input">7.2.5. Fake Touch Input</h3>
+
+
+<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 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>
+</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>
+
+<h3 id="7_2_6_game_controller_support">7.2.6. Game Controller Support</h3>
+
+
+<p>Android Television device implementations MUST support button mappings for game
+controllers as listed below. The upstream Android implementation includes
+implementation for game controllers that satisfies this requirement. </p>
+
+<h4 id="7_2_6_1_button_mappings">7.2.6.1. Button Mappings</h4>
+
+
+<p>Android Television device implementations MUST support the following key
+mappings:</p>
+<table>
+ <tr>
+    <th>Button</th>
+    <th>HID Usage<sup>2</sup></th>
+    <th>Android Button</th>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_A">A</a><sup>1</sup></td>
+    <td>0x09 0x0001</td>
+    <td>KEYCODE_BUTTON_A (96)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_B">B</a><sup>1</sup></td>
+    <td>0x09 0x0002</td>
+    <td>KEYCODE_BUTTON_B (97)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_X">X</a><sup>1</sup></td>
+    <td>0x09 0x0004</td>
+    <td>KEYCODE_BUTTON_X (99)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_Y">Y</a><sup>1</sup></td>
+    <td>0x09 0x0005</td>
+    <td>KEYCODE_BUTTON_Y (100)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_UP">D-pad up</a><sup>1</sup><br />
+
+<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_DOWN">D-pad down</a><sup>1</sup></td>
+    <td>0x01 0x0039<sup>3</sup></td>
+    <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_Y">AXIS_HAT_Y</a><sup>4</sup></td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_LEFT">D-pad left</a>1<br />
+
+<a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_RIGHT">D-pad right</a><sup>1</sup></td>
+    <td>0x01 0x0039<sup>3</sup></td>
+    <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_X">AXIS_HAT_X</a><sup>4</sup></td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_L1">Left shoulder button</a><sup>1</sup></td>
+    <td>0x09 0x0007</td>
+    <td>KEYCODE_BUTTON_L1 (102)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_R1">Right shoulder button</a><sup>1</sup></td>
+    <td>0x09 0x0008</td>
+    <td>KEYCODE_BUTTON_R1 (103)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_THUMBL">Left stick click</a><sup>1</sup></td>
+    <td>0x09 0x000E</td>
+    <td>KEYCODE_BUTTON_THUMBL (106)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_THUMBR">Right stick click</a><sup>1</sup></td>
+    <td>0x09 0x000F</td>
+    <td>KEYCODE_BUTTON_THUMBR (107)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME">Home</a><sup>1</sup></td>
+    <td>0x0c 0x0223</td>
+    <td>KEYCODE_HOME (3)</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK">Back</a><sup>1</sup></td>
+    <td>0x0c 0x0224</td>
+    <td>KEYCODE_BACK (4)</td>
+ </tr>
+</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">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">4 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>]</p>
+
+<table>
+ <tr>
+    <th>Analog Controls<sup>1</sup></th>
+    <th>HID Usage</th>
+    <th>Android Button</th>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_LTRIGGER">Left Trigger</a></td>
+    <td>0x02 0x00C5</td>
+    <td>AXIS_LTRIGGER </td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_THROTTLE">Right Trigger</a></td>
+    <td>0x02 0x00C4</td>
+    <td>AXIS_RTRIGGER </td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Y">Left Joystick</a></td>
+    <td>0x01 0x0030<br />
+
+0x01 0x0031</td>
+    <td>AXIS_X<br />
+
+AXIS_Y</td>
+ </tr>
+ <tr>
+    <td><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Z">Right Joystick</a></td>
+    <td>0x01 0x0032<br />
+
+0x01 0x0035</td>
+    <td>AXIS_Z<br />
+
+AXIS_RZ</td>
+ </tr>
+</table>
+
+
+<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>]</p>
+
+<h3 id="7_2_7_remote_control">7.2.7. Remote Control</h3>
+
+
+<p>Android Television device implementations SHOULD provide a remote control to
+allow users to access the TV interface. The remote control MAY be a physical
+remote or can be a software-based remote that is accessible from a mobile phone
+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>
+</ul>
+
+<h2 id="7_3_sensors">7.3. Sensors</h2>
+
+
+<p>Android includes APIs for accessing a variety of sensor types. Devices
+implementations generally MAY omit these sensors, as provided for in the
+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>
+
+<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>
+  <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>
+</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>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 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>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
+a suspend state.</p>
+
+<p>Finally, when several sensors are activated, the power consumption SHOULD NOT
+exceed the sum of the individual sensor&rsquo;s reported power consumption.</p>
+
+<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>
+
+<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 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>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>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>
+  <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>
+</ul>
+
+<h3 id="7_3_2_magnetometer">7.3.2. Magnetometer</h3>
+
+
+<p>Device implementations SHOULD include a 3-axis magnetometer (compass). If a
+device does include a 3-axis magnetometer, it:</p>
+
+<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>
+  <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>
+</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>
+
+<h3 id="7_3_4_gyroscope">7.3.4. Gyroscope</h3>
+
+
+<p>Device implementations SHOULD include a gyroscope (angular change sensor).
+Devices SHOULD NOT include a gyroscope sensor unless a 3-axis accelerometer is
+also included. If a device implementation includes a gyroscope, it:</p>
+
+<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>
+  <li>MUST be able to report events up to a frequency of at least 50 Hz for
+  Android Watch devices as such devices have a stricter power constraint and 
+  100 Hz for all other device types.</li>
+  <li>SHOULD report events up to at least 200 Hz.</li>
+  <li>MUST have a resolution of 12-bits or more and SHOULD have a resolution of
+16-bits or more.</li>
+  <li>MUST be temperature compensated.</li>
+  <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>
+
+
+<p>Device implementations SHOULD include a barometer (ambient air pressure
+sensor). If a device implementation includes a barometer, it:</p>
+
+<ul>
+  <li>MUST implement and report TYPE_PRESSURE sensor.</li>
+  <li>MUST be able to deliver events at 5 Hz or greater.</li>
+  <li>MUST have adequate precision to enable estimating altitude.</li>
+  <li>MUST be temperature compensated.</li>
+</ul>
+
+<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 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>
+
+<h3 id="7_3_7_photometer">7.3.7. Photometer</h3>
+
+
+<p>Device implementations MAY include a photometer (ambient light sensor).</p>
+
+<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
+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 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>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>
+  </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>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_GYROSCOPE_UNCALIBRATED with the same quality requirements as
+    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>
+  </ul>
+  </li>
+  <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>
+  </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>
+  </ul>
+  </li>
+  <li>SENSOR_TYPE_ROTATION_VECTOR
+  <ul>
+    <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_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>
+  </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>
+  </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>
+  </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>
+  </ul>
+  </li>
+</ul>
+
+<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:
+  <ul>
+    <li>SENSOR_TYPE_SIGNIFICANT_MOTION</li>
+    <li>SENSOR_TYPE_STEP_DETECTOR</li>
+    <li>SENSOR_TYPE_STEP_COUNTER</li>
+    <li>SENSOR_TILT_DETECTORS</li>
+  </ul>
+  </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>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>
+</ul>
+
+<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>
+
+<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 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>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>
+</ul>
+
+<h2 id="7_4_data_connectivity">7.4. Data Connectivity</h2>
+
+
+<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>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>
+
+<h3 id="7_4_2_ieee_802_11_wi-fi">7.4.2. IEEE 802.11 (Wi-Fi)</h3>
+
+<div class="note">
+<p>Android Television device implementations MUST include Wi-Fi support.</p>
+</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
+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
+Android API and:</p>
+
+<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 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>
+    </ul>
+</ul>
+
+<h4 id="7_4_2_1_wi-fi_direct">7.4.2.1. Wi-Fi Direct</h4>
+
+
+<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>
+
+<ul>
+  <li>MUST report the hardware feature android.hardware.wifi.direct.</li>
+  <li>MUST support regular Wi-Fi operation.</li>
+  <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>
+
+<div class="note">
+<p>Android Television device implementations MUST include support for Wi-Fi
+Tunneled Direct Link Setup (TDLS).</p>
+</div>
+
+
+<p>Android Television device implementations MUST include support for Wi-Fi
+Tunneled Direct Link Setup (TDLS) 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>
+
+<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>
+</ul>
+
+<h3 id="7_4_3_bluetooth">7.4.3. Bluetooth</h3>
+
+<div class="note">
+<p>Android Watch and Automotive implementations MUST support Bluetooth. Android
+Television implementations MUST support Bluetooth and Bluetooth LE.</p>
+</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>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>
+  <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>
+</ul>
+
+<h3 id="7_4_4_near-field_communications">7.4.4. Near-Field Communications</h3>
+
+
+<p>Device implementations SHOULD include a transceiver and related hardware for
+Near-Field Communications (NFC). If a device implementation does include NFC
+hardware and plans to make it available to third-party apps, then it:</p>
+
+<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>
+  <li>MUST be capable of reading and writing NDEF messages via the following NFC
+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:
+    <ul>
+      <li>NfcA (ISO14443-3A)</li>
+      <li>NfcB (ISO14443-3B)</li>
+      <li>NfcF (JIS X 6319-4)</li>
+      <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.
+  <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>
+  <li>MUST be capable of transmitting and receiving data via the following
+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>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>]:
+  <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>
+  </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>
+</ul>
+</ul>
+
+<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
+Application ID (AID) routing, then it:</p>
+
+<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>
+</ul>
+
+<p>Additionally, device implementations MAY include reader/writer support for the
+following MIFARE technologies.</p>
+
+<ul>
+  <li>MIFARE Classic</li>
+  <li>MIFARE Ultralight</li>
+  <li>NDEF on MIFARE Classic</li>
+</ul>
+
+<p>Note that Android includes APIs for these MIFARE types. If a device
+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 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>
+</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>
+
+<p>As the classes android.nfc.NdefMessage and android.nfc.NdefRecord represent a
+protocol-independent data representation format, device implementations MUST
+implement these APIs even if they do not include support for NFC or declare the
+android.hardware.nfc feature.</p>
+
+<h3 id="7_4_5_minimum_network_capability">7.4.5. Minimum Network Capability</h3>
+
+
+<p>Device implementations MUST include support for one or more forms of data
+networking. Specifically, device implementations MUST include support for at
+least one data standard capable of 200Kbit/sec or greater. Examples of
+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>Devices MAY implement more than one form of data connectivity.</p>
+
+<p>Devices MUST include an IPv6 networking stack and support IPv6 communication
+using the managed APIs, such as <code>java.net.Socket</code> and
+<code>java.net.URLConnection</code>, as well as the native APIs, such as
+<code>AF_INET6</code> sockets. The required level of IPv6 support depends on
+the network type, as follows:</p>
+<ul>
+  <li>Devices that support Wi-Fi networks MUST support dual-stack and IPv6-only
+  operation on Wi-Fi.</li>
+  <li>Devices that support Ethernet networks MUST support dual-stack operation
+  on Ethernet.</li>
+  <li>Devices that support cellular data SHOULD support IPv6 operation
+  (IPv6-only and possibly dual-stack) on cellular data.</li>
+  <li>When a device is simultaneously connected to more than one network (e.g.,
+  Wi-Fi and cellular data), it MUST simultaneously meet these requirements on
+  each network to which it is connected.</li>
+</ul>
+
+<p>IPv6 MUST be enabled by default.</p>
+
+<p>In order to ensure that IPv6 communication is as reliable as IPv4, unicast
+IPv6 packets sent to the device MUST NOT be dropped, even when the screen is
+not in an active state. Redundant multicast IPv6 packets, such as repeated
+identical Router Advertisements, MAY be rate-limited in hardware or firmware
+if doing so is necessary to save power. In such cases, rate-limiting MUST NOT
+cause the device to lose IPv6 connectivity on any IPv6-compliant network that
+uses RA lifetimes of at least 180 seconds.</p>
+
+<p>IPv6 connectivity MUST be maintained in doze mode.</p>
+
+<h3 id="7_4_6_sync_settings">7.4.6. Sync Settings</h3>
+
+
+<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>
+
+<h2 id="7_5_cameras">7.5. Cameras</h2>
+
+
+<p>Device implementations SHOULD include a rear-facing camera and MAY include a
+front-facing camera. A rear-facing camera is a camera located on the side of
+the device opposite the display; that is, it images scenes on the far side of
+the device, like a traditional camera. A front-facing camera is a camera
+located on the same side of the device as the display; that is, a camera
+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>
+
+<h3 id="7_5_1_rear-facing_camera">7.5.1. Rear-Facing Camera</h3>
+
+
+<p>Device implementations SHOULD include a rear-facing camera. If a device
+implementation includes at least one rear-facing camera, it:</p>
+
+<ul>
+  <li>MUST report the feature flag android.hardware.camera and
+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>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>
+</ul>
+
+<h3 id="7_5_2_front-facing_camera">7.5.2. Front-Facing Camera</h3>
+
+
+<p>Device implementations MAY include a front-facing camera. If a device
+implementation includes at least one front-facing camera, it:</p>
+
+<ul>
+  <li>MUST report the feature flag android.hardware.camera.any and
+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:
+  <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>
+  </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>
+</ul>
+
+<h3 id="7_5_3_external_camera">7.5.3. External Camera</h3>
+
+
+<p>Device implementations with USB host mode MAY include support for an external
+camera that connects to the USB port. If a device includes support for an
+external camera, it:</p>
+
+<ul>
+  <li>MUST declare the platform feature android.hardware.camera.external and
+android.hardware camera.any.</li>
+  <li>MUST support USB Video Class (UVC 1.0 or higher).</li>
+  <li>MAY support multiple cameras.</li>
+</ul>
+
+<p>Video compression (such as MJPEG) support is RECOMMENDED to enable transfer of
+high-quality unencoded streams (i.e. raw or independently compressed picture
+streams). Camera-based video encoding MAY be supported. If so, a simultaneous
+unencoded/ MJPEG stream (QVGA or greater resolution) MUST be accessible to the
+device implementation.</p>
+
+<h3 id="7_5_4_camera_api_behavior">7.5.4. Camera API Behavior</h3>
+
+
+<p>Android includes two API packages to access the camera, the newer
+android.hardware.camera2 API expose lower-level camera control to the app,
+including efficient zero-copy burst/streaming flows and per-frame controls of
+exposure, gain, white balance gains, color conversion, denoising, sharpening,
+and more.</p>
+
+<p>The older API package, android.hardware.Camera, is marked as deprecated in
+Android 5.0 but as it should still be available for apps to use Android device
+implementations MUST ensure the continued support of the API as described in
+this section and in the Android SDK.</p>
+
+<p>Device implementations MUST implement the following behaviors for the
+camera-related APIs, for all available cameras:</p>
+
+<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>
+  <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>
+  <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>
+</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 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
+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>
+
+<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>
+
+<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 broadcast the Camera.ACTION_NEW_PICTURE intent
+whenever a new picture is taken by the camera and the entry of the picture has
+been added to the media store.</p>
+
+<p>Device implementations MUST broadcast the Camera.ACTION_NEW_VIDEO intent
+whenever a new video is recorded by the camera and the entry of the picture has
+been added to the media store.</p>
+
+<h3 id="7_5_5_camera_orientation">7.5.5. Camera Orientation</h3>
+
+
+<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>
+
+<h2 id="7_6_memory_and_storage">7.6. Memory and Storage</h2>
+
+
+<h3 id="7_6_1_minimum_memory_and_storage">7.6.1. Minimum Memory and Storage</h3>
+
+<div class="note">
+<p>Android Television devices MUST have at least 5GB of non-volatile storage
+available for application private data.</p>
+</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>
+<table>
+ <tr>
+    <th>Density and screen size</th>
+    <th>32-bit device</th>
+    <th>64-bit device</th>
+ </tr>
+ <tr>
+    <td>Android Watch devices (due to smaller screens)</td>
+    <td>416MB</td>
+    <td>Not applicable</td>
+ </tr>
+ <tr>
+    <td><ul>
+    <li class="table_list">280dpi or lower on small/normal screens</li>
+    <li class="table_list">mdpi or lower on large screens</li>
+    <li class="table_list">ldpi or lower on extra large screens</li>
+    </ul></td>
+    <td>424MB</td>
+    <td>704MB</td>
+ </tr>
+ <tr>
+    <td><ul>
+    <li class="table_list">xhdpi or higher on small/normal screens</li>
+    <li class="table_list">hdpi or higher on large screens</li>
+    <li class="table_list">mdpi or higher on extra large screens</li></ul></td>
+    <td>512MB</td>
+    <td>832MB</td>
+ </tr>
+ <tr>
+    <td><ul>
+    <li class="table_list">400dpi or higher on small/normal screens</li>
+    <li class="table_list">xhdpi or higher on large screens</li>
+     <li class="table_list">tvdpi or higher on extra large screens</li></ul></td>
+    <td>896MB</td>
+    <td>1280MB</td>
+ </tr>
+ <tr>
+    <td><ul>
+    <li class="table_list">560dpi or higher on small/normal screens</li>
+    <li class="table_list">400dpi or higher on large screens</li>
+    <li class="table_list">xhdpi or higher on extra large screens</li></ul></td>
+    <td>1344MB</td>
+    <td>1824MB</td>
+ </tr>
+</table>
+
+
+<p>The minimum memory values MUST be in addition to any memory space already
+dedicated to hardware components such as radio, video, and so on that is not
+under the kernel&rsquo;s control.</p>
+
+<p>Device implementations with less than 512MB of memory available to the kernel
+and userspace, unless an Android Watch, MUST return the value "true" for
+ActivityManager.isLowRamDevice().</p>
+
+<p>Android Television devices MUST have at least 5GB and other device
+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>
+
+<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>
+
+<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>
+
+<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>
+
+<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 mount the SD card by default.</li>
+</ul>
+
+<p>Alternatively, device implementations MAY allocate internal (non-removable)
+storage as shared storage for apps as included in the upstream Android Open
+Source Project; device implementations SHOULD use this configuration and
+software implementation. If a device implementation uses internal
+(non-removable) storage to satisfy the shared storage requirement, that storage
+MUST be 1GB in size or larger and mounted on /sdcard (or /sdcard MUST be a
+symbolic link to the physical location if it is mounted elsewhere).</p>
+
+<p>Device implementations MUST enforce as documented the
+android.permission.WRITE_EXTERNAL_STORAGE permission on this shared storage.
+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
+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>
+
+<p>Regardless of the form of shared storage used, if the device implementation
+has a USB port with USB peripheral mode support, it MUST provide some mechanism
+to access the contents of shared storage from a host computer. Device
+implementations MAY use USB mass storage, but SHOULD use Media Transfer Protocol
+to satisfy this requirement. If the device implementation supports Media
+Transfer Protocol, it:</p>
+
+<ul>
+  <li>SHOULD be compatible with the reference Android MTP host, Android File Transfer
+[<a href="http://www.android.com/filetransfer">Resources, 116</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 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>
+
+<h2 id="7_7_usb">7.7. USB</h2>
+
+
+<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>
+
+<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>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:
+  <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>
+  </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>
+</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>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>
+</ul>
+
+<h2 id="7_8_audio">7.8. Audio</h2>
+
+
+<h3 id="7_8_1_microphone">7.8.1. Microphone</h3>
+
+<div class="note">
+<p>Android Handheld, Watch, and Automotive implementations MUST include a
+microphone.</p>
+</div>
+
+
+<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>
+
+<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>STRONGLY RECOMMENDED to support near-ultrasound recording as described in
+    <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>
+
+<div class="note">
+<p>Android Watch devices MAY include an audio output.</p>
+</div>
+
+<p>Device implementations including a speaker or with an audio/multimedia output
+port for an audio output peripheral as a headset or an external speaker:</p>
+
+<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>STRONGLY RECOMMENDED to support near-ultrasound playback as described in
+    <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
+output port, it MUST NOT report the android.hardware.audio output feature, and
+MUST implement the Audio Output related APIs as no-ops at least. </p>
+
+<p>Android Watch device implementation MAY but SHOULD NOT have audio output, but
+other types of Android device implementations MUST have an audio output and
+declare android.hardware.audio.output.</p>
+
+<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>
+
+<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:
+  <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:
+  <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>
+  <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
+<a href="http://developer.android.com/reference/android/media/AudioManager.html#getProperty(java.lang.String)">AudioManager.getProperty</a>
+API as follows:
+</p>
+
+<ul>
+  <li>If
+  <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>
+  </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>
+</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>
+
+<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>
+
+<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>
+</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>
+
+<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>
+</ul>
+
+<h2 id="8_3_power_saving_modes">8.3. Power-Saving Modes</h2>
+
+<p>All apps exempted from App Standby and/or Doze mode MUST be made visible to
+the end user. Further, the triggering, maintenance, wakeup algorithms and
+the use of Global system settings of these power-saving modes MUST not deviate
+from the Android Open Source Project.</p>
+
+<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>
+
+<ul>
+  <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>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>
+    </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>
+</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>
+
+<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>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:
+  <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>
+  </ul>
+</li>
+</ul>
+
+<h2 id="9_2_uid_and_process_isolation">9.2. UID and Process Isolation</h2>
+
+
+<p>Device implementations MUST support the Android application sandbox model, in
+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>
+
+<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>
+
+<h2 id="9_4_alternate_execution_environments">9.4. Alternate Execution Environments</h2>
+
+
+<p>Device implementations MAY include runtime environments that execute
+applications using some other software or technology than the Dalvik Executable
+Format or native code. However, such alternate execution environments MUST NOT
+compromise the Android security model or the security of installed Android
+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>
+
+<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>
+
+<p>Alternate runtimes MUST NOT permit applications to make use of features
+protected by Android permissions restricted to system applications.</p>
+
+<p>Alternate runtimes MUST abide by the Android sandbox model. Specifically,
+alternate runtimes:</p>
+
+<ul>
+  <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>
+  <li>MUST NOT launch with, grant, or be granted access to the sandboxes
+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>
+</ul>
+
+<p>The .apk files of alternate runtimes MAY be included in the system image of a
+device implementation, but MUST be signed with a key distinct from the key used
+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>
+
+<h2 id="9_5_multi-user_support">9.5. Multi-User Support</h2>
+
+<div class="note">
+<p>This feature is optional for all device types.</p>
+</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>
+
+<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>
+  <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>
+  <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>
+</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
+/data/misc/sms/codes.xml file in the device. The upstream Android Open Source
+Project provides an implementation that satisfies this requirement.</p>
+
+<h2 id="9_7_kernel_security_features">9.7. Kernel Security Features</h2>
+
+
+<p>The Android Sandbox includes features that use the Security-Enhanced Linux
+(SELinux) mandatory access control (MAC) system and other security features in
+the Linux kernel. SELinux or any other security features implemented below
+the Android framework:</p>
+
+<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>SHOULD NOT be user or developer configurable.</li>
+</ul>
+
+<p>If any API for configuration of policy is exposed to an application that can
+affect another application (such as a Device Administration API), the API MUST
+NOT allow configurations that break compatibility.</p>
+
+<p>Devices MUST implement SELinux or, if using a kernel other than Linux, an
+equivalent mandatory access control system. Devices MUST also meet the
+following requirements, which are satisfied by the reference implementation
+in the upstream Android Open Source Project.</p>
+
+<p>Device implementations:</p>
+
+<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>
+  <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>
+</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>
+
+<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 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
+service with android.permission.CONTROL_VPN granted), the device implementation
+MUST ask for the user's consent before enabling that mechanism.</p>
+
+<p>If a device implementation has a USB port with USB peripheral mode support,
+it MUST present a user interface asking for the user's consent before allowing
+access to the contents of the shared storage over the USB port.</p>
+
+<h2 id="9_9_full-disk_encryption">9.9. Full-Disk Encryption</h2>
+
+<div class="note">
+<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>],
+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>]
+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>
+
+<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
+be written to storage at any time without being encrypted. Other than when in
+active use, the encryption key SHOULD be AES encrypted with the lockscreen
+passcode stretched using a slow stretching algorithm (e.g. PBKDF2 or scrypt).
+If the user has not specified a lockscreen passcode or has disabled use of the
+passcode for encryption, the system SHOULD use a default passcode to wrap the
+encryption key. If the device provides a hardware-backed keystore, the password
+stretching algorithm MUST be cryptographically bound to that keystore. The
+encryption key MUST NOT be sent off the device (even when wrapped with the user
+passcode and/or hardware bound key). The upstream Android Open Source project
+provides a preferred implementation of this feature based on the Linux kernel
+feature dm-crypt.</p>
+
+<h2 id="9_10_verified_boot">9.10. Verified Boot</h2>
+
+<p>
+Verified boot is a feature that guarantees the integrity of the device software.
+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>
+</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>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>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>
+</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>
+
+<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>
+
+<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>
+
+
+<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>
+
+<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>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 6.0. 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>
+
+
+<p>Device implementations MUST correctly execute all applicable cases in the CTS
+Verifier. The CTS Verifier is included with the Compatibility Test Suite, and
+is intended to be run by a human operator to test functionality that cannot be
+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>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
+expected to explicitly run the CTS Verifier on builds that differ only in
+trivial ways. Specifically, device implementations that differ from an
+implementation that has passed the CTS Verifier only by the set of included
+locales, branding, etc. MAY omit the CTS Verifier test.</p>
+
+<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>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>
+</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>
+</ul>
+
+<p>The update mechanism used MUST support updates without wiping user data. That
+is, the update mechanism MUST preserve application private data and application
+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 6.0 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
+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>
+
+<h1 id="12_document_changelog">12. Document Changelog</h1>
+
+<p>The following table contains a summary of the changes to the Compatibility
+Definition in this release.</p>
+<table>
+ <tr>
+    <th>Section</th>
+    <th>Summary of changes</th>
+ </tr>
+ <tr>
+    <td>Various</td>
+    <td>Replaced instances of the "encouraged" term with "RECOMMENDED"</td>
+ </tr>
+ <tr>
+    <td>2. Device Types</td>
+    <td>Update for Android Automotive implementations</td>
+ </tr>
+ <tr>
+    <td>3.2.2. Build Parameters</td>
+    <td>Additions for the hardware serial number and for the security patch level of a build</td>
+ </tr>
+ <tr>
+    <td>3.2.3.2. Intent Resolution</td>
+    <td>Section renamed from "Intent Overrides" to "Intent Resolution," with new requirements related to authoritative default app linking</td>
+ </tr>
+ <tr>
+    <td>3.3.1. Application Binary Interfaces</td>
+    <td>Additions for Android ABI support; change related to Vulkan library name</td>
+ </tr>
+ <tr>
+    <td>3.4.1. WebView Compatibility</td>
+    <td>Change for the user agent string reported by the WebView</td>
+ </tr>
+ <tr>
+    <td>3.7. Runtime Compatibility</td>
+    <td>Updates to memory allocation table</td>
+ </tr>
+ <tr>
+    <td>3.8.4. Search</td>
+    <td>Updates regarding Assistant requirements</td>
+ </tr>
+ <tr>
+    <td>3.8.6. Themes</td>
+    <td>Added requirement to support black system icons when requested by the SYSTEM_UI_FLAG_LIGHT_STATUS_BAR flag</td>
+ </tr>
+ <tr>
+    <td>3.9.1. Device Provisioning</td>
+    <td>Contains new sections for device owner provisioning and managed profile provisioning</td>
+ </tr>
+ <tr>
+    <td>3.9.2. Managed Profile Support</td>
+    <td>New section with requirements for device support of managed profile functionality</td>
+ </tr>
+<tr>
+    <td>3.12.1. TV App</td>
+    <td>Added section to clarify TV App requirements for Android Television devices</td>
+ </tr>
+ <tr>
+    <td>3.12.1.1. Electronic Program Guide</td>
+    <td>Added section to clarify EPG requirements for Android Television devices</td>
+ </tr>
+ <tr>
+    <td>3.12.1.2. Navigation</td>
+    <td>Added section to clarify TV App navigation requirements for Android Television devices</td>
+ </tr>
+    <td>3.12.1.3. TV input app linking</td>
+    <td>Added section to clarify TV input app linking support requirements for Android Television devices</td>
+ </tr>
+ <tr>
+    <td>5.1. Media Codecs</td>
+    <td>Updates regarding support for core media formats and decoding.</td>
+ </tr>
+ <tr>
+    <td>5.1.3. Video Codecs</td>
+    <td>Changes and additions related to Android Televisions</td>
+ </tr>
+ <tr>
+    <td>5.2. Video Encoding</td>
+    <td>Changes for encoders</td>
+ </tr>
+ <tr>
+    <td>5.3. Video Decoding</td>
+    <td>Changes for decoders, including regarding support for dynamic video resolution, frame rate
+switching, and more</td>
+ </tr>
+ <tr>
+    <td>5.4. Audio Recording</td>
+    <td>Additions related to audio capture</td>
+ </tr>
+ <tr>
+    <td>5.6. Audio Latency</td>
+    <td>Update regarding reporting of support for low-latency audio</td>
+ </tr>
+ <tr>
+    <td>5.10. Professional Audio</td>
+    <td>General updates for professional audio support; updates for mobile device (jack) specifications, USB audio host mode, and other updates</td>
+ </tr>
+ <tr>
+    <td>5.9. Musical Instrument Digital Interface (MIDI)</td>
+    <td>Added new section on optional Musical Instrument Digital Interface (MIDI) support</td>
+ </tr>
+<tr>
+    <td>6.1. Developer Tools</td>
+    <td>Update for drivers supporting Windows 10</td>
+ </tr>
+ <tr>
+    <td>7.1.1.3. Screen Density</td>
+    <td>Updates for screen density, for example related to an Android watch</td>
+ </tr>
+ <tr>
+    <td>7.2.3. Navigation Keys</td>
+    <td>Updated requirements for device implementations that include the Assist action</td>
+ </tr>
+ <tr>
+    <td>7.3. Sensors (and subsections)</td>
+    <td>New requirements for some sensor types</td>
+ </tr>
+ <tr>
+    <td>7.3.9. High Fidelity Sensors</td>
+    <td>New section with requirements for devices supporting high fidelity sensors</td>
+ </tr>
+ <tr>
+    <td>7.3.10. Fingerprint Sensor</td>
+    <td>New section on requirements related to fingerprint sensors</td>
+ </tr>
+ <tr>
+    <td>7.4.2. IEEE 802.11 (Wi-Fi)</td>
+    <td>Updates regarding support for multicast DNS (mDNS)</td>
+ </tr>
+ <tr>
+    <td>7.4.3. Bluetooth</td>
+    <td>Addition related to Resolvable Private Address (RPA) for Bluetooth Low Energy (BLE)</td>
+ </tr>
+ <tr>
+    <td>7.4.4. Near-Field Communications</td>
+    <td>Additions to requirements for Near-Field Communications (NFC)</td>
+ </tr>
+ <tr>
+    <td>7.4.5. Minimum Network Capability</td>
+    <td>Added requirements for IPv6 support</td>
+ </tr>
+ <tr>
+    <td>7.6.3. Adoptable Storage</td>
+    <td>New section for implementation of adoptable storage</td>
+ </tr>
+ <tr>
+    <td>7.7. USB</td>
+    <td>Requirement related to implementing the AOA specification</td>
+ </tr>
+ <tr>
+    <td>7.8.3. Near-Ultrasound</td>
+    <td>Additions related to near-ultrasound recording, playback, and audio</td>
+ </tr>
+ <tr>
+    <td>8.3. Power-Saving Modes</td>
+    <td>New section with requirements regarding the App Standby and Doze modes</td>
+ </tr>
+<tr>
+    <td>8.4. Power Consumption Accounting</td>
+    <td>New section with requirements for tracking hardware component power usage and attributing that power usage to specific applications</td>
+ </tr>
+ <tr>
+    <td>9.1. Permissions</td>
+    <td>Addition to Permissions requirements</td>
+ </tr>
+<tr>
+    <td>9.7. Kernel Security Features</td>
+    <td>SE Linux updates</td>
+ </tr>
+<tr>
+    <td>9.8. Privacy</td>
+    <td>Addition regarding user's consent for access to shared storage over a USB port</td>
+ </tr>
+ <tr>
+    <td>9.9. Full-Disk Encryption</td>
+    <td>Requirements related to full disk encryption</td>
+ </tr>
+ <tr>
+    <td>9.10. Verified Boot</td>
+    <td>Additional requirement for verified boot</td>
+ </tr>
+ <tr>
+    <td>9.11. Keys and Credentials</td>
+    <td>New section of requirements related to keys and credentials</td>
+ </tr>
+ <tr>
+    <td>9.12. Data Deletion</td>
+    <td>New section for "Factory Data Reset"</td>
+ </tr>
+ <tr>
+    <td>11. Updatable Software</td>
+    <td>Requirement related to the system update policy set by the device owner</td>
+ </tr>
+ </table>
+
+
+<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 6.0 allowed version strings: <a href="http://source.android.com/compatibility/6.0/versions.html">http://source.android.com/compatibility/6.0/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>
+
+</div>
+</body>
+</html>
diff --git a/src/compatibility/6.0/android-6.0-cdd.pdf b/src/compatibility/6.0/android-6.0-cdd.pdf
new file mode 100644
index 0000000..a0ca71d
--- /dev/null
+++ b/src/compatibility/6.0/android-6.0-cdd.pdf
Binary files differ
diff --git a/src/compatibility/android-6.0-cdd.pdf b/src/compatibility/android-6.0-cdd.pdf
new file mode 100644
index 0000000..a0ca71d
--- /dev/null
+++ b/src/compatibility/android-6.0-cdd.pdf
Binary files differ
diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index d8f7e6b..b4f89ce 100644
--- a/src/compatibility/android-cdd.html
+++ b/src/compatibility/android-cdd.html
@@ -32,7 +32,7 @@
 
 <p class="toc_h4"><a href="#3_2_3_1_core_application_intents">3.2.3.1. Core Application Intents</a></p>
 
-<p class="toc_h4"><a href="#3_2_3_2_intent_overrides">3.2.3.2. Intent Overrides</a></p>
+<p class="toc_h4"><a href="#3_2_3_2_intent_resolution">3.2.3.2. Intent Resolution</a></p>
 
 <p class="toc_h4"><a href="#3_2_3_3_intent_namespaces">3.2.3.3. Intent Namespaces</a></p>
 
@@ -80,13 +80,14 @@
 
 <p class="toc_h3"><a href="#3_8_10_lock_screen_media_control">3.8.10. Lock Screen Media Control</a></p>
 
+<p class="toc_h3"><a href="#3_8_11_dreams">3.8.11. Dreams</a></p>
+
+<p class="toc_h3"><a href="#3_8_12_location">3.8.12. Location</a></p>
+
 </div>
 
 <div id="toc_right">
 
-<p class="toc_h3"><a href="#3_8_11_dreams">3.8.11. Dreams</a></p>
-
-<p class="toc_h3"><a href="#3_8_12_location">3.8.12. Location</a></p>
 
 <p class="toc_h3"><a href="#3_8_13_unicode_and_font">3.8.13. Unicode and Font</a></p>
 
@@ -287,12 +288,16 @@
 
 <p class="toc_h3"><a href="#7_8_3_near_ultrasound">7.8.3. Near-Ultrasound</a></p>
 
-<p class="toc_h1"><a href="#8_performance_compatibility">8. Performance Compatibility</a></p>
+<p class="toc_h1"><a href="#8_performance_power">8. Performance and Power</a></p>
 
 <p class="toc_h2"><a href="#8_1_user_experience_consistency">8.1. User Experience Consistency</a></p>
 
 <p class="toc_h2"><a href="#8_2_file_i_o_access_performance">8.2. File I/O Access Performance</a></p>
 
+<p class="toc_h2"><a href="#8_3_power_saving_modes">8.3. Power-Saving Modes</a></p>
+
+<p class="toc_h2"><a href="#8_4_power_consumption_accounting">8.4. Power Consumption Accounting</a></p>
+
 </div>
 
 <div style="clear: both; page-break-after:always; height:1px"></div>
@@ -434,8 +439,8 @@
   <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,
-    111</a>].</li>
-<ul>
+    5</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
@@ -576,7 +581,7 @@
 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, 5</a>] or any API decorated with the &ldquo;@SystemApi&rdquo; marker in the upstream Android
+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>
 
 <p>Device implementations MUST NOT omit any managed APIs, alter API interfaces or
@@ -598,12 +603,12 @@
 
 
 <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, 6]</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 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>
 
 <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, 7</a>] that are intended to describe the current device. To provide consistent,
+<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
 implementations MUST conform.</p>
@@ -615,7 +620,7 @@
  <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, 8]</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">Resources, 9</a>].</td>
  </tr>
  <tr>
     <td>VERSION.SDK</td>
@@ -821,11 +826,12 @@
 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_overrides">3.2.3.2. Intent Overrides</h4>
+<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
+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
@@ -833,11 +839,48 @@
 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>However, device implementations MAY provide default activities for specific URI
-patterns (eg. http://play.google.com) if the default activity provides a more
-specific filter for the data URI. For example, an intent filter specifying the
-data URI &ldquo;http://www.android.com&rdquo; is more specific than the browser filter for&ldquo;http://&rdquo;. Device implementations MUST provide a user interface for users to
-modify the default activity for intents.</p>
+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
+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:
+  <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>
+  </ul>
+</li>
+</ul>
 
 <h4 id="3_2_3_3_intent_namespaces">3.2.3.3. Intent Namespaces</h4>
 
@@ -875,14 +918,14 @@
 <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>
+android.software.home_screen [<a href="http://developer.android.com/reference/android/provider/Settings.html">Resources, 10</a>]</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, 9</a>]</li>
+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>
+android.hardware.nfc.hce [<a href="http://developer.android.com/reference/android/provider/Settings.html">Resources, 10</a>]</li>
 </ul>
 
 <h2 id="3_3_native_api_compatibility">3.3. Native API Compatibility</h2>
@@ -913,9 +956,9 @@
 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, XX</a>],
+[<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,XX</a>]
+[<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">Resources, 13</a>]
 extension
   </li>
   <li>SHOULD be built using the source code and header files available in the
@@ -951,7 +994,7 @@
 
 <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, 11</a>] function symbols as defined in the NDK release android-21. Although all the
+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
 implemented.</p>
@@ -1009,14 +1052,14 @@
 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, 12</a>]. Because it is not feasible to develop a comprehensive test suite for a web
+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
 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, 13</a>].</li>
+includes a specific set of functionality and security fixes for the WebView [<a href="http://www.chromium.org/">Resources, 16</a>].</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
@@ -1035,7 +1078,7 @@
 
 <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, 14</a>].</p>
+specification [<a href="http://html.spec.whatwg.org/multipage/">Resources, 17</a>].</p>
 
 <h3 id="3_4_2_browser_compatibility">3.4.2. Browser Compatibility</h3>
 
@@ -1057,17 +1100,17 @@
 
 <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, 14</a>] as possible. Minimally, device implementations MUST support each of these
+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>
 
 <ul>
-  <li>application cache/offline operation [<a href="http://www.w3.org/html/wg/drafts/html/master/browsers.html#offline">Resources, 15</a>]</li>
-  <li>the &#60;video&#62; tag [<a href="http://www.w3.org/html/wg/drafts/html/master/semantics.html#video">Resources, 16</a>]</li>
-  <li>geolocation [<a href="http://www.w3.org/TR/geolocation-API/">Resources, 17</a>]</li>
+  <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>
 </ul>
 
 <p>Additionally, device implementations MUST support the HTML5/W3C webstorage API
-[<a href="http://www.w3.org/TR/webstorage/">Resources, 18</a>], and SHOULD support the HTML5/W3C IndexedDB API [<a href="http://www.w3.org/TR/IndexedDB/">Resources, 19</a>]. Note that as the web development standards bodies are transitioning to favor
+[<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
 IndexedDB over webstorage, IndexedDB is expected to become a required component
 in a future version of Android.</p>
 
@@ -1152,7 +1195,7 @@
 
 
 <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/+/lollipop-release/docs/">Resources, 20</a>]. Device implementers SHOULD use ART, the reference upstream implementation of
+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>
 
@@ -1378,7 +1421,7 @@
 
 
 <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, 21</a>] a feature that is STRONGLY RECOMMENDED to be supported on Handheld Device
+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>
@@ -1389,7 +1432,7 @@
 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, 21</a>] for details.</li>
+documentation [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 24</a>] for details.</li>
   <li>Device implementations that include support for lock screen MAY support
 application widgets on the lock screen.</li>
 </ul>
@@ -1397,7 +1440,7 @@
 <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, 22</a>], using hardware and software features of the device.</p>
+<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>Some APIs allow applications to perform notifications or attract attention
 using hardware&#8212;specifically sound, vibration, and light. Device implementations
@@ -1410,9 +1453,9 @@
 
 <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, 23</a>],
+[<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, 24</a>],
+[<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
@@ -1429,7 +1472,7 @@
 
 <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, 25]</a>.
+APIs [<a href="https://developer.android.com/design/patterns/notifications.html">Resources, 28</a>].
 </p>
 
 <p>Android includes Notification Listener Service APIs that allow apps (once
@@ -1441,7 +1484,7 @@
 <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, 26</a>] that allow developers to incorporate search into their applications, and
+<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
@@ -1462,22 +1505,22 @@
 <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,
-69</a>].</p>
+30</a>].</p>
 
 <p>Android also includes the Assist APIs to allow applications to elect how much
-information of the current context are shared with the assistant on the device [<a
+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,
-XX</a>]. Device implementations supporting the Assist action MUST indicate clearly to
-the end user when the the context is shared by showing a white light that runs around
+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
-be with a duration as long as, and a visibility as strong as, at least the Android Open
-Source Project implementation.</p>
+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, 27</a>]. Device implementations MUST display Toasts from applications to end users in
+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>
 
 <h3 id="3_8_6_themes">3.8.6. Themes</h3>
@@ -1488,20 +1531,20 @@
 
 <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, 28</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, 29</a>].</p>
+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;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, 30</a>].</p>
+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 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, 29</a>].</p>
+applications [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 34</a>].</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
@@ -1513,13 +1556,13 @@
 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, 29</a>].</p>
+to black [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 34</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, 31</a>]. Live wallpapers are animations, patterns, or similar images with limited
+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>
 
 <p>Hardware is considered capable of reliably running live wallpapers if it can
@@ -1546,7 +1589,7 @@
 </div>
 
 
-<p>The upstream Android source code includes the overview screen [<a href="http://developer.android.com/guide/components/recents.html">Resources, 32</a>], a system-level user interface for task switching and displaying recently
+<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>
@@ -1556,7 +1599,7 @@
   <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, 33</a>] and provide the user with a settings menu to toggle the feature.</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>SHOULD display a closing affordance ("x") but MAY delay this until user
 interacts with screens.</li>
 </ul>
@@ -1568,7 +1611,7 @@
 
 
 <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, 34</a>]. Device implementations that allow users to use third-party input methods on
+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>
 
@@ -1582,7 +1625,7 @@
 
 <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, 35</a>].
+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>
@@ -1590,7 +1633,7 @@
 <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, 36</a>]. Dreams allows users to interact with applications when a device connected to
+<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
 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
@@ -1601,14 +1644,14 @@
 
 <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, 37</a>].</p>
+within Settings [<a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">Resources, 42</a>].</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, 38</a>]. All devices MUST be capable of rendering these emoji characters in color glyph.</p>
+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>
 
 <p>Android includes support for Roboto 2 font with different
 weights&mdash;sans-serif-thin, sans-serif-light, sans-serif-medium, sans-serif-black,
@@ -1622,13 +1665,13 @@
 <p>Android includes features that allow security-aware applications to perform
 device administration functions at the system level, such as enforcing password
 policies or performing remote wipe, through the Android Device Administration
-API [<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>].
+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, 40</a>].
+[<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, 39</a>]
+[<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>
 
 <h3 id="3_9_1_device_provisioning">3.9.1 Device Provisioning</h3>
@@ -1637,7 +1680,7 @@
 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, XX</a>]. Device implementations MAY have a preinstalled application
+Resources, 46</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>
@@ -1645,12 +1688,12 @@
 <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, XX</a>]) user experience MUST align with the AOSP implementation</p>
+Resources, 47</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, XX]</a>.
+[<a href="https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc">Resources, 48</a>].
 </p>
 
 <h4 id="3_9_1_2_managed_profile_provisioning">3.9.1.2 Managed profile provisioning</h4>
@@ -1658,12 +1701,12 @@
 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, XX</a>]</p>
+Resources, 49</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, XX</a>]) user experience MUST align with the AOSP implementation
+Resources, 50</a>]) user experience MUST align with the AOSP implementation
 </p>
 
 
@@ -1680,7 +1723,9 @@
 <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 a managed profile to be created [<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE"> Resources, XX</a>]</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>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>
@@ -1690,26 +1735,28 @@
 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 to the personal
-profiles or vice versa, if enabled by the Device Policy Controller</li>
-  <li>Expose the following user affordances for both primary and managed profiles
-(when they exist):
+'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 and managed profiles</li>
+      for the primary user and managed profile.</li>
       <li>Independent management of VPN Applications installed within the primary
-      or managed profiles</li>
-      <li>Independent management of applications installed within the primary or
-      managed profiles</li>
-      <li>Independent management of user accounts within the primary or managed
-      profiles</li>
+      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>
   </li>
   <li>Ensure the default dialer can look up caller information from the managed
-profile (if one exists) alongside those from the primary profile</li>
-  <li>Ensure that all the security requirements for multi user (see
-<a href="#9_5_multi-user_support">section 9.5</a>) apply to
-managed profiles.</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>
@@ -1719,7 +1766,7 @@
 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, 42</a>].</p>
+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>
 
 <p>Device implementations include the following requirements:</p>
 
@@ -1733,7 +1780,7 @@
 <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, 43</a>]</li>
+[<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
@@ -1748,14 +1795,14 @@
 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, 44</a>].</p>
+project [<a href="http://code.google.com/p/eyes-free/">Resources, 53</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, 45</a>]. Device implementations reporting the feature android.hardware.audio.output
+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>
 
 <p>Android Automotive implementations:</p>
@@ -1785,7 +1832,7 @@
 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, 46</a>].</p>
+[<a href="http://source.android.com/devices/tv/index.html">Resources, 55</a>].</p>
 
 <p>Device implementations that support TIF MUST declare the platform feature
 android.software.live_tv.</p>
@@ -1797,16 +1844,16 @@
 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, XX</a>]
+[<a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html">Resources, 56</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, XX</a>]
+[<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 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, XX</a>]
+[<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
@@ -1818,7 +1865,7 @@
 <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, XX</a>].
+[<a href="https://developer.android.com/reference/android/media/tv/TvContract.Programs.html">Resources, 59</a>].
  The EPG MUST meet the following requirements:</p>
 
 <ul>
@@ -1847,16 +1894,16 @@
 <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, XX</a>].
+[<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>
 
 <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, 47</a>].</p>
+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>Devices implementations MUST NOT extend either the .apk [<a href="http://developer.android.com/guide/components/fundamentals.html">Resources, 48</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/+/lollipop-release/docs/">Resources, 20</a>], or RenderScript bytecode formats in such a way that would prevent those
+<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>
 
 <h1 id="5_multimedia_compatibility">5. Multimedia Compatibility</h1>
@@ -1866,14 +1913,14 @@
 
 
 <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, 50</a>]
+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,112</a>].
+[<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,
-113</a>] and MUST be able to decode all formats it can encode.
+66</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
@@ -2130,7 +2177,7 @@
 (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><ul>
-    <li class="table_list">WebM (.webm) [<a href="http://www.webmproject.org/">Resources, 110</a></li>
+    <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>
  </tr>
  <tr>
@@ -2139,7 +2186,7 @@
     <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, 110</a>]</li>
+    <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>
  </tr>
 </table>
@@ -2152,7 +2199,7 @@
 
 <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, 51</a>].</p>
+requirements in [<a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">Resources, 68</a>].</p>
 
 <p class="table_footnote">4 Device implementations SHOULD support writing Matroska WebM files.</p>
 
@@ -2250,9 +2297,10 @@
 <p>Video codecs are optional for Android Watch device implementations.</p>
 </div>
 
-<p>Device implementations MUST support dynamic video resolution switching within
-the same stream for all VP8, VP9, H.264, and H.265 codecs exposed through the
-standard Android APIs.</p>
+<p>Device implementations MUST support dynamic video resolution and frame rate
+switching through the standard Android APIs within the same stream for all VP8,
+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
 Profile Level 30.</p>
@@ -2261,7 +2309,7 @@
 Profile Level 3.</p>
 
 <p>Android device implementations with H.264 decoders, MUST support Main Profile
-Level 3 and the following SD video decoding profiles and SHOULD support the
+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>
 <table>
@@ -2296,10 +2344,10 @@
 </table>
 
 
-<p class="table_footnote">1 Required for Android Television device implementations, but for other device
-types only when supported by hardware.</p>
+<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
@@ -2335,11 +2383,10 @@
  </tr>
 </table>
 
+<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">1 Required for Android Television device implementations, but for other type of
-devices only when supported by hardware.</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
@@ -2482,7 +2529,7 @@
 
 <ul>
   <li>The device SHOULD exhibit approximately flat amplitude versus frequency
-characteristics: specifically, ±3 dB, from 100 Hz to 4000 Hz.
+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
@@ -2542,7 +2589,7 @@
 <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, 52</a>]. Device implementations that declare the feature
+<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>
 
 <ul>
@@ -2611,7 +2658,7 @@
 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, 53</a>]. Conversely, if the device implementation does not meet these requirements it
+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>
 
 <p>Device implementations that include android.hardware.microphone are STRONGLY RECOMMENDED to meet
@@ -2628,12 +2675,12 @@
 
 
 <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, 50</a>]. Specifically, devices MUST support the following media network protocols:</p>
+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>
 
 <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, 54</a>]</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>
 </ul>
 
 <h2 id="5_8_secure_media">5.8. Secure Media</h2>
@@ -2660,7 +2707,7 @@
 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, 53</a>].
+[<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>].
 </p>
 
 <p>The MIDI-capable hardware transports are:</p>
@@ -2688,7 +2735,7 @@
 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, 53</a>].
+[<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>].
 </p>
 
 <ul>
@@ -2745,11 +2792,11 @@
 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, 55</a>]</li>
+  <li><strong>Android Debug Bridge (adb)</strong> [<a href="http://developer.android.com/tools/help/adb.html">Resources, 72</a>]</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, 56</a>]. The device-side adb daemon MUST be inactive by default and there MUST be a
+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>
@@ -2758,7 +2805,7 @@
 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, 57</a>]</li>
+  <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
@@ -2767,14 +2814,14 @@
 as above.</p>
 
 <ul>
-  <li><strong>Monkey</strong> [<a href="http://developer.android.com/tools/help/monkey.html">Resources, 58</a>]</li>
+  <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, 59</a>]</li>
+  <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
@@ -2798,7 +2845,7 @@
 <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, 60</a>]. The upstream Android implementation hides the Developer Options menu by
+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
@@ -2831,14 +2878,14 @@
 <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, 53]</a></p>
+fingerprint. [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>]</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, 61</a>]. Devices MUST properly implement these APIs and behaviors, as detailed in
+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>The units referenced by the requirements in this section are defined as
@@ -2870,7 +2917,7 @@
 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, 61</a>] and determined by the upstream Android platform. Specifically, device
+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>
 
@@ -2951,7 +2998,7 @@
 
 
 <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, 62</a>] and MUST report the same values regardless of whether the embedded or
+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>
 
 <h3 id="7_1_3_screen_orientation">7.1.3. Screen Orientation</h3>
@@ -2983,7 +3030,7 @@
 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, 63</a>].</p>
+Android SDK documentation [<a href="http://developer.android.com/guide/topics/renderscript/">Resources, 80</a>].</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>
@@ -3002,7 +3049,7 @@
 </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, 64</a>] and native support for advanced graphics functionality such as tessellation
+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>
@@ -3022,7 +3069,7 @@
 <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, 65</a>].</p>
+android:hardwareAccelerated or direct API calls [<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">Resources, 82</a>].</p>
 
 <p>Device implementations MUST enable hardware acceleration by default, and MUST
 disable hardware acceleration if the developer so requests by setting
@@ -3030,7 +3077,7 @@
 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, 65</a>].</p>
+Android SDK documentation on hardware acceleration [<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">Resources, 82</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.
@@ -3040,7 +3087,7 @@
 <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, 66</a>].</p>
+EGL_ANDROID_RECORDABLE extension [<a href="https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">Resources, 83</a>].</p>
 
 <h3 id="7_1_5_legacy_application_compatibility_mode">7.1.5. Legacy Application Compatibility Mode</h3>
 
@@ -3082,7 +3129,7 @@
 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, 67</a>].</p>
+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>
 
 <h2 id="7_2_input_devices">7.2. Input Devices</h2>
 
@@ -3109,7 +3156,7 @@
   <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, 68</a>] (QWERTY or 12-key).</li>
+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>
 </ul>
 
 <h3 id="7_2_2_non-touch_navigation">7.2.2. Non-touch Navigation</h3>
@@ -3124,7 +3171,7 @@
   <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, 68</a>].</li>
+[<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 85</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
@@ -3196,7 +3243,7 @@
 
 <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,
-69</a>] MUST make this accessisble with a single action (e.g. tap, double-click,
+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>
 
@@ -3234,12 +3281,12 @@
 <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, 68</a>] corresponding to the type of the specific touchscreen on the device.</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>
 </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, 70</a>] such that the user has the impression of directly manipulating items on
+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
@@ -3272,14 +3319,14 @@
 
 <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, 71</a>].</li>
+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, 71</a>].</li>
+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, 71</a>].</li>
+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>
@@ -3377,7 +3424,7 @@
 </table>
 
 
-<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 72</a>]</p>
+<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 88</a>]</p>
 
 <p class="table_footnote">2 The above HID usages must be declared within a Game pad CA (0x01 0x0005).</p>
 
@@ -3388,7 +3435,7 @@
 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, 71</a>]</p>
+<p class="table_footnote">4 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>]</p>
 
 <table>
  <tr>
@@ -3427,7 +3474,7 @@
 </table>
 
 
-<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 71</a>]</p>
+<p class="table_footnote">1 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 87</a>]</p>
 
 <h3 id="7_2_7_remote_control">7.2.7. Remote Control</h3>
 
@@ -3440,7 +3487,7 @@
 <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, 72</a>].</li>
+support for D-pad events [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 88</a>].</li>
 </ul>
 
 <h2 id="7_3_sensors">7.3. Sensors</h2>
@@ -3451,11 +3498,11 @@
 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, 73</a>]. For example, device implementations:</p>
+Android Open Source documentation on sensors [<a href="http://source.android.com/devices/sensors/">Resources, 89</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, 53]</a>.</li>
+android.content.pm.PackageManager class [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70]</a>.</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
@@ -3464,32 +3511,32 @@
 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, 74</a>].</li>
+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, 75</a>].</li>
+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>
 </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, 73</a>] is to be considered authoritative.</p>
+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>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, 76</a>].
+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, 76</a>].</p>
+sensors [<a href="https://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary">Resources, 92</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, 77</a>]. For any API indicated by the Android SDK documentation to be a continuous
+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
@@ -3510,13 +3557,13 @@
 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, 78</a>].</li>
+  <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 be able to report events up to a frequency of at least 50 Hz for
   Android Watch devices as such devices have a stricter power constraint and
   100 Hz for all other device types.</li>
   <li>SHOULD report events up to at least 200 Hz.</li>
   <li>MUST comply with the Android sensor coordinate system as detailed in the
-Android APIs [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Resources, 74</a>].</li>
+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
@@ -3555,7 +3602,7 @@
   <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, 74</a>].</li>
+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
@@ -3682,7 +3729,7 @@
     <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/√Hz</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>
@@ -3693,7 +3740,7 @@
     <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°/s/√Hz</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
@@ -3719,7 +3766,7 @@
     <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/√Hz</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>
@@ -3800,7 +3847,7 @@
 <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, XX</a>].
+[<a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">Resources, 95</a>].
   </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
@@ -3815,7 +3862,7 @@
     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, XX</a>].
+    [<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)
@@ -3867,10 +3914,13 @@
 
 <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, 79</a>].</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 support multicast DNS (mDNS) and MUST NOT filter mDNS packets
-(224.0.0.251) at any time of operation including when the screen is not in an
-active state.</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>
 
 <h4 id="7_4_2_1_wi-fi_direct">7.4.2.1. Wi-Fi Direct</h4>
@@ -3879,7 +3929,7 @@
 <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, 80</a>]. If a device implementation includes support for Wi-Fi Direct, then it:</p>
+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>
 
 <ul>
   <li>MUST report the hardware feature android.hardware.wifi.direct.</li>
@@ -3898,7 +3948,7 @@
 <p>Android Television device implementations MUST include support for Wi-Fi
 Tunneled Direct Link Setup (TDLS) 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, 81</a>]. If a device implementation does include support for TDLS and TDLS is enabled
+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>
 
 <ul>
@@ -3915,7 +3965,7 @@
 </div>
 
 
-<p>Android includes support for Bluetooth and Bluetooth Low Energy [<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Resources, 82</a>]. Device implementations that include support for Bluetooth and Bluetooth Low
+<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
@@ -3927,11 +3977,11 @@
 <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, 82</a>].</li>
+described in the SDK documentation and [<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Resources, 100</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, 83</a>], and MUST report the correct value of where the filtering logic is implemented whenever queried via the
+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
@@ -3950,7 +4000,7 @@
 
 <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, 53</a>].</li>
+android.content.pm.PackageManager.hasSystemFeature() method [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 70</a>].</li>
   <li>MUST be capable of reading and writing NDEF messages via the following NFC
 standards:
   <ul>
@@ -3964,14 +4014,19 @@
       <li>IsoDep (ISO 14443-4)</li>
       <li>NFC Forum Tag Types 1, 2, 3, 4 (defined by the NFC Forum)</li>
     </ul>
-  <li>MUST be capable of reading and writing NDEF messages as well as raw
-      data via the following NFC standards:
+  <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, XX</a>] products.
+      [<a href="http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html">Resources, 102</a>] products.
   </li>
   <li>MUST be capable of transmitting and receiving data via the following
 peer-to-peer standards and protocols:
@@ -3979,17 +4034,17 @@
     <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, 84</a>]</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>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, 85</a>]:
+  <li>MUST include support for Android Beam [<a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">Resources, 104</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, 86</a>].</li>
+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
@@ -4006,7 +4061,7 @@
     <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, 87</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, 88</a>] specs from the NFC Forum. Such an implementation MUST implement the handover
+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
@@ -4030,7 +4085,7 @@
 
 <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, 10</a>].</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>
 </ul>
 
 <p>Additionally, device implementations MAY include reader/writer support for the
@@ -4048,7 +4103,7 @@
 <ul>
   <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, 53]</a>. Note that this is not a standard Android feature and as such does not appear
+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
@@ -4057,7 +4112,7 @@
 
 <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, 53]</a>, and MUST implement the Android NFC API as a no-op.</p>
+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>
 
 <p>As the classes android.nfc.NdefMessage and android.nfc.NdefRecord represent a
 protocol-independent data representation format, device implementations MUST
@@ -4079,11 +4134,40 @@
 
 <p>Devices MAY implement more than one form of data connectivity.</p>
 
+<p>Devices MUST include an IPv6 networking stack and support IPv6 communication
+using the managed APIs, such as <code>java.net.Socket</code> and
+<code>java.net.URLConnection</code>, as well as the native APIs, such as
+<code>AF_INET6</code> sockets. The required level of IPv6 support depends on
+the network type, as follows:</p>
+<ul>
+  <li>Devices that support Wi-Fi networks MUST support dual-stack and IPv6-only
+  operation on Wi-Fi.</li>
+  <li>Devices that support Ethernet networks MUST support dual-stack operation
+  on Ethernet.</li>
+  <li>Devices that support cellular data SHOULD support IPv6 operation
+  (IPv6-only and possibly dual-stack) on cellular data.</li>
+  <li>When a device is simultaneously connected to more than one network (e.g.,
+  Wi-Fi and cellular data), it MUST simultaneously meet these requirements on
+  each network to which it is connected.</li>
+</ul>
+
+<p>IPv6 MUST be enabled by default.</p>
+
+<p>In order to ensure that IPv6 communication is as reliable as IPv4, unicast
+IPv6 packets sent to the device MUST NOT be dropped, even when the screen is
+not in an active state. Redundant multicast IPv6 packets, such as repeated
+identical Router Advertisements, MAY be rate-limited in hardware or firmware
+if doing so is necessary to save power. In such cases, rate-limiting MUST NOT
+cause the device to lose IPv6 connectivity on any IPv6-compliant network that
+uses RA lifetimes of at least 180 seconds.</p>
+
+<p>IPv6 connectivity MUST be maintained in doze mode.</p>
+
 <h3 id="7_4_6_sync_settings">7.4.6. Sync Settings</h3>
 
 
 <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, 89</a>].</p>
+that the method getMasterSyncAutomatically() returns &ldquo;true&rdquo; [<a href="http://developer.android.com/reference/android/content/ContentResolver.html">Resources, 109</a>].</p>
 
 <h2 id="7_5_cameras">7.5. Cameras</h2>
 
@@ -4146,7 +4230,7 @@
 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, 90</a>] method, the camera preview MUST be mirrored horizontally relative to the
+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>
@@ -4215,7 +4299,8 @@
 </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, 91</a>], regardless of whether the device includes hardware autofocus or other
+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
@@ -4232,16 +4317,16 @@
 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, 92</a>].</p>
+(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>
 
 <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, 93]</a> and report the appropriate framework feature flags [<a href="http://source.android.com/devices/camera/versioning.html">Resources, 94]</a>. </p>
+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>
 
 <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, 94]</a>; a device must define the feature flag if any of its attached camera devices supports the feature.</p>
+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 broadcast the Camera.ACTION_NEW_PICTURE intent
 whenever a new picture is taken by the camera and the entry of the picture has
@@ -4338,7 +4423,7 @@
 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, 95</a>]. The device implementation of the Download Manager MUST be capable of
+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>
 
@@ -4395,7 +4480,7 @@
 
 <ul>
   <li>SHOULD be compatible with the reference Android MTP host, Android File Transfer
-[<a href="http://www.android.com/filetransfer">Resources, 96</a>].</li>
+[<a href="http://www.android.com/filetransfer">Resources, 116</a>].</li>
   <li>SHOULD report a USB device class of 0x00.</li>
   <li>SHOULD report a USB interface name of 'MTP'.</li>
 </ul>
@@ -4407,7 +4492,7 @@
 such as within the battery compartment or other protective cover
 [<a
 href="http://source.android.com/devices/storage/adoptable.html">Resources,
-XX</a>].</p>
+117</a>].</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
@@ -4441,16 +4526,16 @@
 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, 97</a>].</li>
+    <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, 98</a>].</li>
+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>
   </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, 99</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>
+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>
 </ul>
@@ -4464,11 +4549,11 @@
   <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, 98</a>].</li>
+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, 100</a>].</li>
+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, 99</a>].</li>
+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>
 </ul>
 
 <h2 id="7_8_audio">7.8. Audio</h2>
@@ -4525,7 +4610,7 @@
 
 
 <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, 101</a>], if a device implementation includes one or more analog audio ports, at least
+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>
 
@@ -4554,7 +4639,7 @@
   </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 +/- 10% of output voltage on a 32 Ohm
+  <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>
@@ -4585,11 +4670,11 @@
   </li>
 </ul>
 
-<h1 id="8_performance_compatibility">8. Performance Compatibility</h1>
+<h1 id="8_performance_power">8. Performance and Power</h1>
 
 
-<p>Some minimum performance criterias are critical to the user experience and
-impacts the baseline assumptions developers would have when developing an app.
+<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>
 
@@ -4627,12 +4712,50 @@
 256MB file using 4KB write buffer.</li>
 </ul>
 
+<h2 id="8_3_power_saving_modes">8.3. Power-Saving Modes</h2>
+
+<p>All apps exempted from App Standby and/or Doze mode MUST be made visible to
+the end user. Further, the triggering, maintenance, wakeup algorithms and
+the use of Global system settings of these power-saving modes MUST not deviate
+from the Android Open Source Project.</p>
+
+<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>
+
+<ul>
+  <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>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>
+    </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>
+</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, 102</a>] in the Android developer documentation. Device implementations MUST support
+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
@@ -4642,7 +4765,7 @@
 
 
 <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, 102</a>]. Specifically, implementations MUST enforce each permission defined as
+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>
@@ -4671,13 +4794,13 @@
 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, 102</a>].</p>
+constructed, as defined in the Security and Permissions reference [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</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, 102</a>].</p>
+as defined in the Security and Permissions reference [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>].</p>
 
 <h2 id="9_4_alternate_execution_environments">9.4. Alternate Execution Environments</h2>
 
@@ -4736,8 +4859,8 @@
 
 
 <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, 103]</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/">Resources, 104</a>]:</p>
+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>
 
 <ul>
   <li>Device implementations that do not declare the android.hardware.telephony
@@ -4752,7 +4875,7 @@
 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, 102</a>].</li>
+Permissions reference document in the APIs [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 126</a>].</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
@@ -4766,14 +4889,14 @@
 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, 105</a>] for primary external storage.</li>
+media [<a href="http://developer.android.com/reference/android/os/Environment.html">Resources, 129</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, 106</a>] . Premium SMS messages are text messages sent to a service registered with a
+[<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
@@ -4847,10 +4970,10 @@
 
 <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, XX</a>],
+[<a href="http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()">Resources, 131</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, 107</a>]
+[<a href="http://source.android.com/devices/tech/security/encryption/index.html">Resources, 132</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>
@@ -4905,12 +5028,12 @@
 <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, XX</a>]
+[<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, XX</a>]
+[<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, XX</a>].
+  [<a href="https://developer.android.com/reference/java/security/KeyStore.html">Resources, 135</a>].
 </p>
 
 <p>All Android device implementations MUST meet the following requirements:</p>
@@ -4924,21 +5047,24 @@
   such as a Secure Element (SE) where a Trusted Execution Environment (TEE) can be implemented,
   then it:
   <ul>
-  <li>MUST 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 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, XX</a>].</li>
+  <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>
 </ul>
 
-<p>Note that 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 cannot meet
-  the above TEE-related requirements through a system software update and thus is exempted from these TEE-related requirements.</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>
 
@@ -4946,7 +5072,7 @@
 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.</p>
+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>
 
@@ -4964,7 +5090,7 @@
 <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, 108</a>] available from the Android Open Source Project, using the final shipping
+<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
@@ -5048,7 +5174,7 @@
 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, XX</a>].</p>
+Resources, 138</a>].</p>
 
 <h1 id="12_document_changelog">12. Document Changelog</h1>
 
@@ -5064,8 +5190,16 @@
     <td>Replaced instances of the "encouraged" term with "RECOMMENDED"</td>
  </tr>
  <tr>
+    <td>2. Device Types</td>
+    <td>Update for Android Automotive implementations</td>
+ </tr>
+ <tr>
     <td>3.2.2. Build Parameters</td>
-    <td>Addition regarding hardware serial number</td>
+    <td>Additions for the hardware serial number and for the security patch level of a build</td>
+ </tr>
+ <tr>
+    <td>3.2.3.2. Intent Resolution</td>
+    <td>Section renamed from "Intent Overrides" to "Intent Resolution," with new requirements related to authoritative default app linking</td>
  </tr>
  <tr>
     <td>3.3.1. Application Binary Interfaces</td>
@@ -5080,6 +5214,10 @@
     <td>Updates to memory allocation table</td>
  </tr>
  <tr>
+    <td>3.8.4. Search</td>
+    <td>Updates regarding Assistant requirements</td>
+ </tr>
+ <tr>
     <td>3.8.6. Themes</td>
     <td>Added requirement to support black system icons when requested by the SYSTEM_UI_FLAG_LIGHT_STATUS_BAR flag</td>
  </tr>
@@ -5091,6 +5229,25 @@
     <td>3.9.2. Managed Profile Support</td>
     <td>New section with requirements for device support of managed profile functionality</td>
  </tr>
+<tr>
+    <td>3.12.1. TV App</td>
+    <td>Added section to clarify TV App requirements for Android Television devices</td>
+ </tr>
+ <tr>
+    <td>3.12.1.1. Electronic Program Guide</td>
+    <td>Added section to clarify EPG requirements for Android Television devices</td>
+ </tr>
+ <tr>
+    <td>3.12.1.2. Navigation</td>
+    <td>Added section to clarify TV App navigation requirements for Android Television devices</td>
+ </tr>
+    <td>3.12.1.3. TV input app linking</td>
+    <td>Added section to clarify TV input app linking support requirements for Android Television devices</td>
+ </tr>
+ <tr>
+    <td>5.1. Media Codecs</td>
+    <td>Updates regarding support for core media formats and decoding.</td>
+ </tr>
  <tr>
     <td>5.1.3. Video Codecs</td>
     <td>Changes and additions related to Android Televisions</td>
@@ -5101,13 +5258,18 @@
  </tr>
  <tr>
     <td>5.3. Video Decoding</td>
-    <td>Changes for decoders</td>
+    <td>Changes for decoders, including regarding support for dynamic video resolution, frame rate
+switching, and more</td>
  </tr>
  <tr>
     <td>5.4. Audio Recording</td>
     <td>Additions related to audio capture</td>
  </tr>
  <tr>
+    <td>5.6. Audio Latency</td>
+    <td>Update regarding reporting of support for low-latency audio</td>
+ </tr>
+ <tr>
     <td>5.10. Professional Audio</td>
     <td>General updates for professional audio support; updates for mobile device (jack) specifications, USB audio host mode, and other updates</td>
  </tr>
@@ -5124,6 +5286,10 @@
     <td>Updates for screen density, for example related to an Android watch</td>
  </tr>
  <tr>
+    <td>7.2.3. Navigation Keys</td>
+    <td>Updated requirements for device implementations that include the Assist action</td>
+ </tr>
+ <tr>
     <td>7.3. Sensors (and subsections)</td>
     <td>New requirements for some sensor types</td>
  </tr>
@@ -5136,6 +5302,10 @@
     <td>New section on requirements related to fingerprint sensors</td>
  </tr>
  <tr>
+    <td>7.4.2. IEEE 802.11 (Wi-Fi)</td>
+    <td>Updates regarding support for multicast DNS (mDNS)</td>
+ </tr>
+ <tr>
     <td>7.4.3. Bluetooth</td>
     <td>Addition related to Resolvable Private Address (RPA) for Bluetooth Low Energy (BLE)</td>
  </tr>
@@ -5144,6 +5314,14 @@
     <td>Additions to requirements for Near-Field Communications (NFC)</td>
  </tr>
  <tr>
+    <td>7.4.5. Minimum Network Capability</td>
+    <td>Added requirements for IPv6 support</td>
+ </tr>
+ <tr>
+    <td>7.6.3. Adoptable Storage</td>
+    <td>New section for implementation of adoptable storage</td>
+ </tr>
+ <tr>
     <td>7.7. USB</td>
     <td>Requirement related to implementing the AOA specification</td>
  </tr>
@@ -5152,6 +5330,14 @@
     <td>Additions related to near-ultrasound recording, playback, and audio</td>
  </tr>
  <tr>
+    <td>8.3. Power-Saving Modes</td>
+    <td>New section with requirements regarding the App Standby and Doze modes</td>
+ </tr>
+<tr>
+    <td>8.4. Power Consumption Accounting</td>
+    <td>New section with requirements for tracking hardware component power usage and attributing that power usage to specific applications</td>
+ </tr>
+ <tr>
     <td>9.1. Permissions</td>
     <td>Addition to Permissions requirements</td>
  </tr>
@@ -5176,6 +5362,10 @@
     <td>New section of requirements related to keys and credentials</td>
  </tr>
  <tr>
+    <td>9.12. Data Deletion</td>
+    <td>New section for "Factory Data Reset"</td>
+ </tr>
+ <tr>
     <td>11. Updatable Software</td>
     <td>Requirement related to the system update policy set by the device owner</td>
  </tr>
@@ -5185,267 +5375,294 @@
 <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, 109</a>] and ask for clarifications or bring up any issues that you think the document
+<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>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. API definitions and documentation: <a href="http://developer.android.com/reference/packages.html">http://developer.android.com/reference/packages.html</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. 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>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.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>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 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>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. 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>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. 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>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. 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>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.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>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. WebView compatibility: <a href="http://www.chromium.org/">http://www.chromium.org/</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. HTML5: <a href="http://html.spec.whatwg.org/multipage/">http://html.spec.whatwg.org/multipage/</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. 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>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. 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>16. WebView compatibility: <a href="http://www.chromium.org/">http://www.chromium.org/</a></p>
 
-<p>17. HTML5/W3C geolocation API: <a href="http://www.w3.org/TR/geolocation-API/">http://www.w3.org/TR/geolocation-API/</a></p>
+<p>17. HTML5: <a href="http://html.spec.whatwg.org/multipage/">http://html.spec.whatwg.org/multipage/</a></p>
 
-<p>18. HTML5/W3C webstorage API: <a href="http://www.w3.org/TR/webstorage/">http://www.w3.org/TR/webstorage/</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/W3C IndexedDB API: <a href="http://www.w3.org/TR/IndexedDB/">http://www.w3.org/TR/IndexedDB/</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. Dalvik Executable Format and bytecode specification: available in the
+<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>21. 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>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>22. 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>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>23. 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>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>24. 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>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>25. Notifications Resources: <a href="https://developer.android.com/design/patterns/notifications.html">https://developer.android.com/design/patterns/notifications.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>26. 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>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>27. Toasts: <a href="http://developer.android.com/reference/android/widget/Toast.html">http://developer.android.com/reference/android/widget/Toast.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>28. Themes: <a href="http://developer.android.com/guide/topics/ui/themes.html">http://developer.android.com/guide/topics/ui/themes.html</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>29. 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>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>30. 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>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>31. 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>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>32. Overview screen resources: <a href="http://developer.android.com/guide/components/recents.html">http://developer.android.com/guide/components/recents.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>33. 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>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>34. 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>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>35. 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>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>36. 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>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>37. Settings.Secure LOCATION_MODE:</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><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>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>38. 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>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>39. 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>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>40. 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>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>41. Android Device Owner App:</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><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>XX. Android Device Owner Provisioning Flow:</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><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>XX. Device Owner Provisioning via NFC:</p>
 
-<p><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>XX. Android Managed Profile Provisioning flow:</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><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>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>XX. Android Profile Owner App:</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><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>XX. Managed profile provisioning intent</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><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>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>42. 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>53. Eyes Free project: <a href="http://code.google.com/p/eyes-free/">http://code.google.com/p/eyes-free</a></p>
 
-<p>43. 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>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>44. Eyes Free project: <a href="http://code.google.com/p/eyes-free/">http://code.google.com/p/eyes-free</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>45. 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>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>46. Television Input Framework: <a href="https://source.android.com/devices/tv/index.html">https://source.android.com/devices/tv/index.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>47. 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>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>48. 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>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>49. 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>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>50. 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>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>51. 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>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>52. 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>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>53. Android android.content.pm.PackageManager class and Hardware Features List:</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><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>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>54. 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>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>55. ADB: <a href="http://developer.android.com/tools/help/adb.html">http://developer.android.com/tools/help/adb.html</a> </p>
+<p>67. WebM project: <a href="http://www.webmproject.org/">http://www.webmproject.org/</a></p>
 
-<p>56. Dumpsys: <a href="https://source.android.com/devices/input/diagnostics.html">https://source.android.com/devices/input/diagnostics.html</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>57. DDMS: <a href="http://developer.android.com/tools/debugging/ddms.html">http://developer.android.com/tools/debugging/ddms.html</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>58. Monkey testing tool: <a href="http://developer.android.com/tools/help/monkey.html">http://developer.android.com/tools/help/monkey.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>59. SysyTrace tool: <a href="http://developer.android.com/tools/help/systrace.html">http://developer.android.com/tools/help/systrace.html</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>60. Android Application Development-Related Settings:</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><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>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>61. 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>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>62. 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>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>63. RenderScript: <a href="http://developer.android.com/guide/topics/renderscript/">http://developer.android.com/guide/topics/renderscript/</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>64. 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>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>65. 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>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>66. EGL Extension-EGL_ANDROID_RECORDABLE:</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><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>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>67. 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>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>68. 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>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>69. 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>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>70. 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>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>71. 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>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>72. 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>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>73. Android Open Source sensors: <a href="http://source.android.com/devices/sensors/">http://source.android.com/devices/sensors</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>74. 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>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>75. 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>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>76. 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>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>77. 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>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>78. 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>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>79. 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>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>80. 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>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>81. 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>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>82. 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>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>83. 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>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>84. 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>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>85. 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>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>86. Android NFC Sharing Settings:</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><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>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>87. 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>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>88. 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>116. Android File Transfer: <a href="http://www.android.com/filetransfer">http://www.android.com/filetransfer</a></p>
 
-<p>89. 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>117. Adoptable storage: <a href="http://source.android.com/devices/storage/adoptable.html">http://source.android.com/devices/storage/adoptable.html</a></p>
 
-<p>90. 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>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>91. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.html">http://developer.android.com/reference/android/hardware/Camera.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>92. 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>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>93. 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>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>94. Camera version support: <a href="http://source.android.com/devices/camera/versioning.html">http://source.android.com/devices/camera/versioning.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>95. 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>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>96. Android File Transfer: <a href="http://www.android.com/filetransfer">http://www.android.com/filetransfer</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>97. 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>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>98. 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>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>99. 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>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>100. 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>128. External Storage reference: <a href="http://source.android.com/devices/storage/traditional.html">http://source.android.com/devices/storage</a></p>
 
-<p>101. Wired audio headset: <a href="http://source.android.com/accessories/headset-spec.html">http://source.android.com/accessories/headset-spec.html</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>102. 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>130. SMS Short Code: <a href="http://en.wikipedia.org/wiki/Short_code">http://en.wikipedia.org/wiki/Short_code</a></p>
 
-<p>103. 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>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>104. External Storage reference: <a href="http://source.android.com/devices/storage">http://source.android.com/devices/storage</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>105. 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>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>106. SMS Short Code: <a href="http://en.wikipedia.org/wiki/Short_code">http://en.wikipedia.org/wiki/Short_code</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>107. 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>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>108. Android Compatibility Program Overview: <a href="http://source.android.com/compatibility/index.html">http://source.android.com/compatibility/index.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>109. Android Compatibility forum: <a href="https://groups.google.com/forum/#!forum/android-compatibility">https://groups.google.com/forum/#!forum/android-compatibility</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>110. WebM project: <a href="http://www.webmproject.org/">http://www.webmproject.org/</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>111. 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>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>112. 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>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>113. 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>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
diff --git a/src/compatibility/android-cdd.pdf b/src/compatibility/android-cdd.pdf
index 78a9857..a0ca71d 100644
--- a/src/compatibility/android-cdd.pdf
+++ b/src/compatibility/android-cdd.pdf
Binary files differ
diff --git a/src/devices/tech/security/authentication/fingerprint-hal.jd b/src/devices/tech/security/authentication/fingerprint-hal.jd
index e5af5e4..f2bbed7 100644
--- a/src/devices/tech/security/authentication/fingerprint-hal.jd
+++ b/src/devices/tech/security/authentication/fingerprint-hal.jd
@@ -116,7 +116,7 @@
 
 <ul>
   <li>Fingerprint data is not leaked
-  <li>Fingerprint data is removed when a user account is removed from a device
+  <li>Fingerprint data is removed when a user is removed from a device
 </ul>
 
 <p>Here are the guidelines:</p>
@@ -139,10 +139,10 @@
 device, must not work.
   <li>Implementations must either use the file system path provided by the
   <code>set_active_group()</code> function or provide a way to erase all user template data when the user
-account is removed. It is strongly recommended that fingerprint template files
+is removed. It is strongly recommended that fingerprint template files
 be stored as encrypted in the path provided. If this is infeasible due to TEE
 storage requirements, then the implementer must add hooks to ensure removal of
-the data when the user's account is removed.
+the data when the user is removed.
 </ol>
 
 <h2 id=major_functions_in_the_fingerprint_hal>Major functions in the Fingerprint HAL</h2>
