<!DOCTYPE html>
<head>
<title>Android ANDROID_VERSION 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 ANDROID_VERSION.</p>

<p>The use of &ldquo;MUST&rdquo;, &ldquo;MUST NOT&rdquo;, &ldquo;REQUIRED&rdquo;, &ldquo;SHALL&rdquo;, &ldquo;SHALL NOT&rdquo;, &ldquo;SHOULD&rdquo;, &ldquo;SHOULD NOT&rdquo;, &ldquo;RECOMMENDED&rdquo;, &ldquo;MAY&rdquo;, and &ldquo;OPTIONAL&rdquo; is per the IETF standard
defined in RFC2119 [<a href="http://www.ietf.org/rfc/rfc2119.txt">Resources, 1</a>].</p>

<p>As used in this document, a &ldquo;device implementer&rdquo; or &ldquo;implementer&rdquo; is a person
or organization developing a hardware/software solution running Android ANDROID_VERSION. A
&ldquo;device implementation&rdquo; or &ldquo;implementation is the hardware/software solution
so developed.</p>

<p>To be considered compatible with Android ANDROID_VERSION, device implementations MUST meet
the requirements presented in this Compatibility Definition, including any
documents incorporated via reference.</p>

<p>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 ANDROID_VERSION
compatible, unless the requirement is explicitly described to be only
applicable to a specific Android device type from above.</p>

<h2 id="2_1_device_configurations">2.1 Device Configurations</h2>


<p>This is a summary of major differences in hardware configuration by device
type. (Empty cells denote a &ldquo;MAY&rdquo;). Not all configurations are covered in this
table; see relevant hardware sections for more detail.</p>
<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/ANDROID_VERSION/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 ANDROID_VERSION, this field MUST have the
integer value ANDROID_VERSION_INT.</td>
 </tr>
 <tr>
    <td>VERSION.SDK_INT</td>
    <td>The version of the currently-executing Android system, in a format accessible
to third-party application code. For Android ANDROID_VERSION, this field MUST have the
integer value ANDROID_VERSION_INT.</td>
 </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:ANDROID_VERSION/LMYXX/3359:userdebug/test-keys</p>
<p>The fingerprint MUST NOT include whitespace characters. If other fields
included in the template above have whitespace characters, they MUST be
replaced in the build fingerprint with another character, such as the
underscore ("_") character. The value of this field MUST be encodable as 7-bit
ASCII.</p></td>
 </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 ANDROID_VERSION. This build
includes a specific set of functionality and security fixes for the WebView [<a href="http://www.chromium.org/">Resources, 16</a>].</li>
  <li>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 ANDROID_VERSION and later MUST NOT
implement a dedicated physical button for the Menu function. Older device
implementations SHOULD NOT implement a dedicated physical button for the Menu
function, but if the physical Menu button is implemented and the device is
running applications with targetSdkVersion > 10, the device implementation:</p>

<ul>
  <li>MUST display the action overflow button on the action bar when it is visible
and the resulting action overflow menu popup is not empty. For a device
implementation launched before Android 4.4 but upgrading to Android ANDROID_VERSION, this
is RECOMMENDED.</li>
  <li>MUST 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 ANDROID_VERSION. Device implementations MUST pass the latest CTS version available
at the time the device software is completed.</p>

<h2 id="10_2_cts_verifier">10.2. CTS Verifier</h2>


<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 ANDROID_VERSION and later, the
update mechanism SHOULD support verifying that the system image is binary
identical to expected result following an OTA. The block-based OTA
implementation in the upstream Android Open Source Project, added since Android
5.1, satisfies this requirement.</p>

<p>If an error is found in a device implementation after it has been released but
within its reasonable product lifetime that is determined in consultation with
the Android Compatibility Team to affect the compatibility of third-party
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.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 and frame rate
switching</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 ANDROID_VERSION allowed version strings: <a href="http://source.android.com/compatibility/ANDROID_VERSION/versions.html">http://source.android.com/compatibility/ANDROID_VERSION/versions.html</a></p>

<p>10. Android Developer Settings: <a href="http://developer.android.com/reference/android/provider/Settings.html">http://developer.android.com/reference/android/provider/Settings.html</a></p>

<p>11. Telephony Provider: <a href="http://developer.android.com/reference/android/provider/Telephony.html">http://developer.android.com/reference/android/provider/Telephony.html</a></p>

<p>12. Android NDK ABI Management: <a href="https://developer.android.com/ndk/guides/abis.html">https://developer.android.com/ndk/guides/abis.html</a></p>

<p>13. Advanced SIMD architecture: <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html</a></p>

<p>14. Android Extension Pack: <a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">http://developer.android.com/guide/topics/graphics/opengl.html#aep</a></p>

<p>15. android.webkit.WebView class: <a href="http://developer.android.com/reference/android/webkit/WebView.html">http://developer.android.com/reference/android/webkit/WebView.html</a></p>

<p>16. WebView compatibility: <a href="http://www.chromium.org/">http://www.chromium.org/</a></p>

<p>17. HTML5: <a href="http://html.spec.whatwg.org/multipage/">http://html.spec.whatwg.org/multipage/</a></p>

<p>18. HTML5 offline capabilities:<a href="http://dev.w3.org/html5/spec/Overview.html#offline"> http://dev.w3.org/html5/spec/Overview.html#offline</a></p>

<p>19. HTML5 video tag: <a href="http://dev.w3.org/html5/spec/Overview.html#video">http://dev.w3.org/html5/spec/Overview.html#video</a></p>

<p>20. HTML5/W3C geolocation API: <a href="http://www.w3.org/TR/geolocation-API/">http://www.w3.org/TR/geolocation-API/</a></p>

<p>21. HTML5/W3C webstorage API: <a href="http://www.w3.org/TR/webstorage/">http://www.w3.org/TR/webstorage/</a></p>

<p>22. HTML5/W3C IndexedDB API: <a href="http://www.w3.org/TR/IndexedDB/">http://www.w3.org/TR/IndexedDB/</a></p>

<p>23. Dalvik Executable Format and bytecode specification: available in the
Android source code, at dalvik/docs</p>

<p>24. AppWidgets: <a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">http://developer.android.com/guide/practices/ui_guidelines/widget_design.html</a></p>

<p>25. Notifications: <a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">http://developer.android.com/guide/topics/ui/notifiers/notifications.html</a></p>

<p>26. Application Resources: <a href="https://developer.android.com/guide/topics/resources/available-resources.html">https://developer.android.com/guide/topics/resources/available-resources.html</a></p>

<p>27. Status Bar icon style guide: <a href="http://developer.android.com/design/style/iconography.html">http://developer.android.com/design/style/iconography.html</a></p>

<p>28. Notifications Resources: <a href="https://developer.android.com/design/patterns/notifications.html">https://developer.android.com/design/patterns/notifications.html</a></p>

<p>29. Search Manager: <a href="http://developer.android.com/reference/android/app/SearchManager.html">http://developer.android.com/reference/android/app/SearchManager.html</a></p>

<p>30. Action Assist: <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST</a></p>

<p>31. Android Assist APIs: <a href="https://developer.android.com/reference/android/app/assist/package-summary.html">https://developer.android.com/reference/android/app/assist/package-summary.html</a></p>

<p>32. Toasts: <a href="http://developer.android.com/reference/android/widget/Toast.html">http://developer.android.com/reference/android/widget/Toast.html</a></p>

<p>33. Themes: <a href="http://developer.android.com/guide/topics/ui/themes.html">http://developer.android.com/guide/topics/ui/themes.html</a></p>

<p>34. R.style class: <a href="http://developer.android.com/reference/android/R.style.html">http://developer.android.com/reference/android/R.style.html</a></p>

<p>35. Material design: <a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">http://developer.android.com/reference/android/R.style.html#Theme_Material</a></p>

<p>36. Live Wallpapers: <a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html</a></p>

<p>37. Overview screen resources: <a href="http://developer.android.com/guide/components/recents.html">http://developer.android.com/guide/components/recents.html</a></p>

<p>38. Screen pinning: <a href="https://developer.android.com/about/versions/android-5.0.html#ScreenPinning">https://developer.android.com/about/versions/android-5.0.html#ScreenPinning</a></p>

<p>39. Input methods: <a href="http://developer.android.com/guide/topics/text/creating-input-method.html">http://developer.android.com/guide/topics/text/creating-input-method.html</a></p>

<p>40. Media Notification: <a href="https://developer.android.com/reference/android/app/Notification.MediaStyle.html">https://developer.android.com/reference/android/app/Notification.MediaStyle.html</a></p>

<p>41. Dreams: <a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">http://developer.android.com/reference/android/service/dreams/DreamService.html</a></p>

<p>42. Settings.Secure LOCATION_MODE: <a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE</a></p>

<p>43. Unicode 6.1.0: <a href="http://www.unicode.org/versions/Unicode6.1.0/">http://www.unicode.org/versions/Unicode6.1.0/</a></p>

<p>44. Android Device Administration: <a href="http://developer.android.com/guide/topics/admin/device-admin.html">http://developer.android.com/guide/topics/admin/device-admin.html</a></p>

<p>45. DevicePolicyManager reference: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html</a></p>

<p>46. Device Owner App: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)</a></p>


<p>47. Android Device Owner Provisioning Flow: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_DEVICE</a></p>

<p>48. Device Owner Provisioning via NFC: <a href="https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc">https://source.android.com/devices/tech/admin/provision.html#device_owner_provisioning_via_nfc</a></p>

<p>49. Android Profile Owner App:<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp(java.lang.String)">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isProfileOwnerApp(java.lang.String)</a></p>

<p>50. Android Managed Profile Provisioning flow: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#ACTION_PROVISION_MANAGED_PROFILE</a></p>

<p>51. Android Accessibility Service APIs: <a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html">http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html</a></p>

<p>52. Android Accessibility APIs: <a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">http://developer.android.com/reference/android/view/accessibility/package-summary.html</a></p>

<p>53. Eyes Free project: <a href="http://code.google.com/p/eyes-free/">http://code.google.com/p/eyes-free</a></p>

<p>54. Text-To-Speech APIs: <a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">http://developer.android.com/reference/android/speech/tts/package-summary.html</a></p>

<p>55. Television Input Framework: <a href="https://source.android.com/devices/tv/index.html">https://source.android.com/devices/tv/index.html</a></p>

<p>56. TV App channels: <a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html">http://developer.android.com/reference/android/media/tv/TvContract.Channels.html</a></p>

<p>57. Third-party TV inputs: <a href="https://source.android.com/devices/tv/index.html#third-party_input_example">https://source.android.com/devices/tv/index.html#third-party_input_example</a></p>

<p>58. TV inputs: <a href="https://source.android.com/devices/tv/index.html#tv_inputs">https://source.android.com/devices/tv/index.html#tv_inputs</a></p>

<p>59. TV channel EPG fields: <a href="https://developer.android.com/reference/android/media/tv/TvContract.Programs.html">https://developer.android.com/reference/android/media/tv/TvContract.Programs.html</a></p>

<p>60. TV input app linking: <a href="http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI">http://developer.android.com/reference/android/media/tv/TvContract.Channels.html#COLUMN_APP_LINK_INTENT_URI</a></p>

<p>61. Reference tool documentation (for adb, aapt, ddms, systrace): <a href="http://developer.android.com/tools/help/index.html">http://developer.android.com/tools/help/index.html</a></p>

<p>62. Android apk file description: <a href="http://developer.android.com/guide/components/fundamentals.html">http://developer.android.com/guide/components/fundamentals.html</a></p>

<p>63. Manifest files: <a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">http://developer.android.com/guide/topics/manifest/manifest-intro.html</a></p>

<p>64. Android Media Formats: <a href="http://developer.android.com/guide/appendix/media-formats.html">http://developer.android.com/guide/appendix/media-formats.html</a></p>

<p>65. Android MediaCodecList API: <a href="http://developer.android.com/reference/android/media/MediaCodecList.html">http://developer.android.com/reference/android/media/MediaCodecList.html</a></p>

<p>66. Android CamcorderProfile API: <a href="http://developer.android.com/reference/android/media/CamcorderProfile.html">http://developer.android.com/reference/android/media/CamcorderProfile.html</a></p>

<p>67. WebM project: <a href="http://www.webmproject.org/">http://www.webmproject.org/</a></p>

<p>68. RTC Hardware Coding Requirements: <a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">http://www.webmproject.org/hardware/rtc-coding-requirements/</a></p>

<p>69. AudioEffect API: <a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">http://developer.android.com/reference/android/media/audiofx/AudioEffect.html</a></p>

<p>70. Android android.content.pm.PackageManager class and Hardware Features List: <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">http://developer.android.com/reference/android/content/pm/PackageManager.html</a></p>

<p>71. HTTP Live Streaming Draft Protocol: <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-03">http://tools.ietf.org/html/draft-pantos-http-live-streaming-03</a></p>

<p>72. ADB: <a href="http://developer.android.com/tools/help/adb.html">http://developer.android.com/tools/help/adb.html</a></p>

<p>73. Dumpsys: <a href="https://source.android.com/devices/input/diagnostics.html">https://source.android.com/devices/input/diagnostics.html</a></p>

<p>74. DDMS: <a href="http://developer.android.com/tools/debugging/ddms.html">http://developer.android.com/tools/debugging/ddms.html</a></p>

<p>75. Monkey testing tool: <a href="http://developer.android.com/tools/help/monkey.html">http://developer.android.com/tools/help/monkey.html</a></p>

<p>76. SysyTrace tool: <a href="http://developer.android.com/tools/help/systrace.html">http://developer.android.com/tools/help/systrace.html</a></p>

<p>77. Android Application Development-Related Settings: <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS</a></p>

<p>78. Supporting Multiple Screens: <a href="http://developer.android.com/guide/practices/screens_support.html">http://developer.android.com/guide/practices/screens_support.html</a></p>

<p>79. android.util.DisplayMetrics: <a href="http://developer.android.com/reference/android/util/DisplayMetrics.html">http://developer.android.com/reference/android/util/DisplayMetrics.html</a></p>

<p>80. RenderScript: <a href="http://developer.android.com/guide/topics/renderscript/">http://developer.android.com/guide/topics/renderscript/</a></p>

<p>81. Android extension pack for OpenGL ES: <a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">https://developer.android.com/reference/android/opengl/GLES31Ext.html</a></p>

<p>82. Hardware Acceleration: <a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">http://developer.android.com/guide/topics/graphics/hardware-accel.html</a></p>

<p>83. EGL Extension-EGL_ANDROID_RECORDABLE: <a href="http://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">http://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt</a></p>

<p>84. Display Manager: <a href="http://developer.android.com/reference/android/hardware/display/DisplayManager.html">http://developer.android.com/reference/android/hardware/display/DisplayManager.html</a></p>

<p>85. android.content.res.Configuration: <a href="http://developer.android.com/reference/android/content/res/Configuration.html">http://developer.android.com/reference/android/content/res/Configuration.html</a></p>

<p>86. Touch Input Configuration: <a href="http://source.android.com/devices/tech/input/touch-devices.html">http://source.android.com/devices/tech/input/touch-devices.html</a></p>

<p>87. Motion Event API: <a href="http://developer.android.com/reference/android/view/MotionEvent.html">http://developer.android.com/reference/android/view/MotionEvent.html</a></p>

<p>88. Key Event API: <a href="http://developer.android.com/reference/android/view/KeyEvent.html">http://developer.android.com/reference/android/view/KeyEvent.html</a></p>

<p>89. Android Open Source sensors: <a href="http://source.android.com/devices/sensors/">http://source.android.com/devices/sensors</a></p>

<p>90. android.hardware.SensorEvent: <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">http://developer.android.com/reference/android/hardware/SensorEvent.html</a></p>

<p>91. Timestamp sensor event: <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp</a></p>

<p>92. Android Open Source composite sensors: <a href="http://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary">https://source.android.com/devices/sensors/sensor-types.html#composite_sensor_type_summary</a></p>

<p>93. Continuous trigger mode: <a href="http://source.android.com/devices/sensors/report-modes.html#continuous">https://source.android.com/devices/sensors/report-modes.html#continuous</a></p>

<p>94. Accelerometer sensor: <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER</a></p>

<p>95. Android Fingerprint API: <a href="https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html">https://developer.android.com/reference/android/hardware/fingerprint/package-summary.html</a></p>

<p>96. Android Fingerprint HAL: <a href="https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html">https://source.android.com/devices/tech/security/authentication/fingerprint-hal.html</a></p>

<p>97. Wi-Fi Multicast API: <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html</a></p>

<p>98. Wi-Fi Direct (Wi-Fi P2P): <a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html</a></p>

<p>99. WifiManager API: <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">http://developer.android.com/reference/android/net/wifi/WifiManager.html</a></p>

<p>100. Bluetooth API: <a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">http://developer.android.com/reference/android/bluetooth/package-summary.html</a></p>

<p>101. Bluetooth ScanFilter API: <a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html</a></p>

<p>102. NFC Barcode: <a href="http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html">http://developer.android.com/reference/android/nfc/tech/NfcBarcode.html</a></p>

<p>103. NDEF Push Protocol: <a href="http://source.android.com/compatibility/ndef-push-protocol.pdf">http://source.android.com/compatibility/ndef-push-protocol.pdf</a></p>

<p>104. Android Beam: <a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">http://developer.android.com/guide/topics/connectivity/nfc/nfc.html</a></p>

<p>105. Android NFC Sharing Settings: <a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS</a></p>

<p>106. NFC Connection Handover: <a href="http://members.nfc-forum.org/specs/spec_list/#conn_handover">http://members.nfc-forum.org/specs/spec_list/#conn_handover</a></p>

<p>107. Bluetooth Secure Simple Pairing Using NFC: <a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf</a></p>

<p>108. Host-based Card Emulation: <a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">http://developer.android.com/guide/topics/connectivity/nfc/hce.html</a></p>

<p>109. Content Resolver: <a href="http://developer.android.com/reference/android/content/ContentResolver.html">http://developer.android.com/reference/android/content/ContentResolver.html</a></p>

<p>110. Camera orientation API: <a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)">http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)</a></p>

<p>111. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.html">http://developer.android.com/reference/android/hardware/Camera.html</a></p>

<p>112. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html">http://developer.android.com/reference/android/hardware/Camera.Parameters.html</a></p>

<p>113. Camera hardware level: <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL</a></p>

<p>114. Camera version support: <a href="http://source.android.com/devices/camera/versioning.html">http://source.android.com/devices/camera/versioning.html</a></p>

<p>115. Android DownloadManager: <a href="http://developer.android.com/reference/android/app/DownloadManager.html">http://developer.android.com/reference/android/app/DownloadManager.html</a></p>

<p>116. Android File Transfer: <a href="http://www.android.com/filetransfer">http://www.android.com/filetransfer</a></p>

<p>117. Adoptable storage: <a href="http://source.android.com/devices/storage/adoptable.html">http://source.android.com/devices/storage/adoptable.html</a></p>

<p>118. Android Open Accessories: <a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html">http://developer.android.com/guide/topics/connectivity/usb/accessory.html</a></p>

<p>119. Android USB Audio: <a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO</a></p>

<p>120. USB Charging Specification: <a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf</a></p>

<p>121. USB Host API:<a href="http://developer.android.com/guide/topics/connectivity/usb/host.html"> http://developer.android.com/guide/topics/connectivity/usb/host.html</a></p>

<p>122. Wired audio headset: <a href="http://source.android.com/accessories/headset-spec.html">http://source.android.com/accessories/headset-spec.html</a></p>

<p>123. Power profile components: <a href="http://source.android.com/devices/tech/power/values.html">http://source.android.com/devices/tech/power/values.html</a></p>

<p>124. Batterystats: <a href="http://source.android.com/devices/tech/power/batterystats.html">http://source.android.com/devices/tech/power/batterystats.html</a></p>

<p>125. Power usage summary: <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY">http://developer.android.com/reference/android/content/Intent.html#ACTION_POWER_USAGE_SUMMARY</a></p>

<p>126. Android Security and Permissions reference: <a href="http://developer.android.com/guide/topics/security/permissions.html">http://developer.android.com/guide/topics/security/permissions.html</a></p>

<p>127. UserManager reference: <a href="http://developer.android.com/reference/android/os/UserManager.html">http://developer.android.com/reference/android/os/UserManager.html</a></p>

<p>128. External Storage reference: <a href="http://source.android.com/devices/storage/traditional.html">http://source.android.com/devices/storage</a></p>

<p>129. External Storage APIs: <a href="http://developer.android.com/reference/android/os/Environment.html">http://developer.android.com/reference/android/os/Environment.html</a></p>

<p>130. SMS Short Code: <a href="http://en.wikipedia.org/wiki/Short_code">http://en.wikipedia.org/wiki/Short_code</a></p>

<p>131. Secure lock screen reporting: <a href="http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()">http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceSecure()</a></p>

<p>132. Android Open Source Encryption: <a href="http://source.android.com/devices/tech/security/encryption/index.html">http://source.android.com/devices/tech/security/encryption/index.html</a></p>

<p>133. Android Keystore System: <a href="https://developer.android.com/training/articles/keystore.html">https://developer.android.com/training/articles/keystore.html</a></p>

<p>134. KeyChain API: <a href="https://developer.android.com/reference/android/security/KeyChain.html">https://developer.android.com/reference/android/security/KeyChain.html</a></p>

<p>135. Keystore API: <a href="https://developer.android.com/reference/java/security/KeyStore.html">https://developer.android.com/reference/java/security/KeyStore.html</a></p>

<p>136. Gatekeeper HAL: <a href="http://source.android.com/devices/tech/security/authentication/gatekeeper.html">http://source.android.com/devices/tech/security/authentication/gatekeeper.html</a></p>

<p>137. Android Compatibility Program Overview: <a href="http://source.android.com/compatibility/index.html">http://source.android.com/compatibility/index.html</a></p>

<p>138. SystemUpdatePolicy class: <a href="http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html">http://developer.android.com/reference/android/app/admin/SystemUpdatePolicy.html</a></p>

<p>139. Android Compatibility forum: <a href="https://groups.google.com/forum/#!forum/android-compatibility">https://groups.google.com/forum/#!forum/android-compatibility</a></p>

<p>140. Handling App Links: <a href="https://developer.android.com/training/app-links">https://developer.android.com/training/app-links/index.html</a></p>

<p>141. Google Digital Asset Links: <a href="https://developers.google.com/digital-asset-links">https://developers.google.com/digital-asset-links</a></p>

<p>Many of these resources are derived directly or indirectly from the Android
SDK, and will be functionally identical to the information in that SDK&rsquo;s
documentation. In any cases where this Compatibility Definition or the
Compatibility Test Suite disagrees with the SDK documentation, the SDK
documentation is considered authoritative. Any technical details provided in
the references included above are considered by inclusion to be part of this
Compatibility Definition.</p>

</div>
</body>
</html>
