CINXE.COM
Set up CTS | Android Open Source Project
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Android Open Source Project"> <meta property="og:type" content="website"><meta name="theme-color" content="#34a853"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/androidsource/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/images/favicon.svg"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/images/touchicon-180.png"><link rel="canonical" href="https://source.android.com/docs/compatibility/cts/setup"><link rel="search" type="application/opensearchdescription+xml" title="Android Open Source Project" href="https://source.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://source.android.com/docs/compatibility/cts/setup" /><link rel="alternate" hreflang="x-default" href="https://source.android.com/docs/compatibility/cts/setup" /><link rel="alternate" hreflang="ar" href="https://source.android.com/docs/compatibility/cts/setup?hl=ar" /><link rel="alternate" hreflang="bn" href="https://source.android.com/docs/compatibility/cts/setup?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://source.android.com/docs/compatibility/cts/setup?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://source.android.com/docs/compatibility/cts/setup?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://source.android.com/docs/compatibility/cts/setup?hl=fa" /><link rel="alternate" hreflang="fr" href="https://source.android.com/docs/compatibility/cts/setup?hl=fr" /><link rel="alternate" hreflang="de" href="https://source.android.com/docs/compatibility/cts/setup?hl=de" /><link rel="alternate" hreflang="he" href="https://source.android.com/docs/compatibility/cts/setup?hl=he" /><link rel="alternate" hreflang="hi" href="https://source.android.com/docs/compatibility/cts/setup?hl=hi" /><link rel="alternate" hreflang="id" href="https://source.android.com/docs/compatibility/cts/setup?hl=id" /><link rel="alternate" hreflang="it" href="https://source.android.com/docs/compatibility/cts/setup?hl=it" /><link rel="alternate" hreflang="ja" href="https://source.android.com/docs/compatibility/cts/setup?hl=ja" /><link rel="alternate" hreflang="ko" href="https://source.android.com/docs/compatibility/cts/setup?hl=ko" /><link rel="alternate" hreflang="pl" href="https://source.android.com/docs/compatibility/cts/setup?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://source.android.com/docs/compatibility/cts/setup?hl=pt-br" /><link rel="alternate" hreflang="pt" href="https://source.android.com/docs/compatibility/cts/setup?hl=pt" /><link rel="alternate" hreflang="ru" href="https://source.android.com/docs/compatibility/cts/setup?hl=ru" /><link rel="alternate" hreflang="es" href="https://source.android.com/docs/compatibility/cts/setup?hl=es" /><link rel="alternate" hreflang="es-419" href="https://source.android.com/docs/compatibility/cts/setup?hl=es-419" /><link rel="alternate" hreflang="th" href="https://source.android.com/docs/compatibility/cts/setup?hl=th" /><link rel="alternate" hreflang="tr" href="https://source.android.com/docs/compatibility/cts/setup?hl=tr" /><link rel="alternate" hreflang="vi" href="https://source.android.com/docs/compatibility/cts/setup?hl=vi" /><title>Set up CTS | Android Open Source Project</title> <meta property="og:title" content="Set up CTS | Android Open Source Project"><meta property="og:url" content="https://source.android.com/docs/compatibility/cts/setup"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Set up CTS" } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="androidsource-theme" type="article" layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner" keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidOpenSourceProject" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/images/lockup.svg" class="devsite-site-logo" alt="Android Open Source Project"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-dropdown devsite-active "> <a href="https://source.android.com/docs" track-metadata-eventdetail="https://source.android.com/docs" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - docs" track-metadata-module="primary nav" aria-label="Docs, selected" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > Docs </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Docs" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-source-tabs-dropdown-column-small"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>What's new?</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/release-notes" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/release-notes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Release notes </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/latest-security-bulletins" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/latest-security-bulletins" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Latest security bulletins </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/latest-cdd" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/latest-cdd" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Latest Compatibility Definition Document (CDD) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/site-updates" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/site-updates" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Site updates </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Getting Started</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/about" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/about" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> About </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/start" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/start" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Start </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/download" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/download" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Download </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/build" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/build" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/test" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/test" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Test </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/create/coding-tasks" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/create/coding-tasks" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Create </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/contribute" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/contribute" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Contribute </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/community/cofc" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/community/cofc" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Community </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/reference" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/reference" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Tools, build, and related reference </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Security</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/overview" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/overview" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/bulletin" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/bulletin" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Bulletins </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/features" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/features" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Features </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/test/fuzz-sanitize" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/test/fuzz-sanitize" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/best-practices" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/best-practices" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Best Practices </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-source-tabs-dropdown-column-small"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Core Topics</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/architecture" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/architecture" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Architecture </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/audio" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/audio" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Audio </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/camera" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/camera" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Camera </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/connect" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/connect" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Connectivity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/data" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/data" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Data </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/display" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/display" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Display </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/fonts/custom-font-fallback" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/fonts/custom-font-fallback" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Fonts </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/graphics" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/graphics" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Graphics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/interaction" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/interaction" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Interaction </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/media" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/media" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Media </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/perf" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/perf" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Performance </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/permissions" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/permissions" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Permissions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/power" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/power" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Power </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/runtime" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/runtime" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Runtime </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/settings" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/settings" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Settings </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/storage" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/storage" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/tests" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/tests" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Tests </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/ota" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/ota" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/virtualization" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/virtualization" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Virtualization </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-source-tabs-dropdown-column-small"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Compatibility</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/compatibility/cdd" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/compatibility/cdd" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Compatibility Definition Document (CDD) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/compatibility/cts" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/compatibility/cts" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Compatibility Test Suite (CTS) </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Android Devices</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/devices/cuttlefish" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/devices/cuttlefish" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Cuttlefish </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/devices/admin" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/devices/admin" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Enterprise </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/devices/tv" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/devices/tv" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> TV </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Automotive</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/start/what_automotive" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/start/what_automotive" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Get Started </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/guidelines" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/guidelines" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Guidelines for Development </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/dev-tools" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/dev-tools" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Development Tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/tools" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/tools" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Testing Tools and Infrastructure </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/start/releases" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/start/releases" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Release Details </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Reference</li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/hidl" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/hidl" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> HIDL </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/hal" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/hal" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> HAL </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/tradefed/classes" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/tradefed/classes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Trade Federation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/sts/classes" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/sts/classes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Security Test Suite </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://cs.android.com/android/platform/superproject/main" track-metadata-eventdetail="https://cs.android.com/android/platform/superproject/main" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - go to code ➚" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: GO TO CODE ➚" track-name="go to code ➚" > GO TO CODE ➚ </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Android Open Source Project" tenant-name="Android Open Source Project" > <form class="devsite-search-form" action="https://source.android.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://source.android.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Documentation </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://source.android.com/docs/whatsnew" track-metadata-eventdetail="https://source.android.com/docs/whatsnew" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - what's new?" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: What's New?" track-name="what's new?" > What's New? </a> </tab> <tab > <a href="https://source.android.com/docs/setup" track-metadata-eventdetail="https://source.android.com/docs/setup" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - getting started" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Getting Started" track-name="getting started" > Getting Started </a> </tab> <tab > <a href="https://source.android.com/docs/security" track-metadata-eventdetail="https://source.android.com/docs/security" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - security" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Security" track-name="security" > Security </a> </tab> <tab > <a href="https://source.android.com/docs/core" track-metadata-eventdetail="https://source.android.com/docs/core" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - core topics" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Core Topics" track-name="core topics" > Core Topics </a> </tab> <tab class="devsite-active"> <a href="https://source.android.com/docs/compatibility" track-metadata-eventdetail="https://source.android.com/docs/compatibility" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - compatibility" track-metadata-module="primary nav" aria-label="Compatibility, selected" data-category="Site-Wide Custom Events" data-label="Tab: Compatibility" track-name="compatibility" > Compatibility </a> </tab> <tab > <a href="https://source.android.com/docs/devices" track-metadata-eventdetail="https://source.android.com/docs/devices" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - android devices" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Android Devices" track-name="android devices" > Android Devices </a> </tab> <tab > <a href="https://source.android.com/docs/automotive" track-metadata-eventdetail="https://source.android.com/docs/automotive" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - automotive" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Automotive" track-name="automotive" > Automotive </a> </tab> <tab > <a href="https://source.android.com/reference" track-metadata-eventdetail="https://source.android.com/reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidOpenSourceProject" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/images/lockup.svg" class="devsite-site-logo" alt="Android Open Source Project"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Docs </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > <span class="devsite-nav-text" tooltip menu="Docs"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Docs"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/docs/whatsnew" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: What's New?" track-name="what's new?" data-category="Site-Wide Custom Events" data-label="Responsive Tab: What's New?" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > What's New? </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Getting Started" track-name="getting started" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Getting Started" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Getting Started </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Security" track-name="security" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Core Topics" track-name="core topics" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Core Topics" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Core Topics </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compatibility" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Compatibility" track-name="compatibility" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compatibility" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Compatibility </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devices" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Android Devices" track-name="android devices" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Devices" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Devices </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Automotive" track-name="automotive" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Automotive" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Automotive </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="https://cs.android.com/android/platform/superproject/main" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: GO TO CODE ➚" track-name="go to code ➚" data-category="Site-Wide Custom Events" data-label="Responsive Tab: GO TO CODE ➚" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > GO TO CODE ➚ </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/docs/compatibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Compatibility</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/overview" ><span class="devsite-nav-text" tooltip>Android Compatibility Program Overview</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cdd" ><span class="devsite-nav-text" tooltip>Compatibility Definition Document</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/android-preview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/android-preview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/android-preview" ><span class="devsite-nav-text" tooltip>Compatibility Definition Document Preview</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/release-notes" ><span class="devsite-nav-text" tooltip>Changelog</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>CDDs in HTML</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/15/android-15-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/15/android-15-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/15/android-15-cdd" ><span class="devsite-nav-text" tooltip>Android 15 (current)</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/14/android-14-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/14/android-14-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/14/android-14-cdd" ><span class="devsite-nav-text" tooltip>Android 14</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/13/android-13-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/13/android-13-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/13/android-13-cdd" ><span class="devsite-nav-text" tooltip>Android 13</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/12/android-12-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/12/android-12-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/12/android-12-cdd" ><span class="devsite-nav-text" tooltip>Android 12</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/11/android-11-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/11/android-11-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/11/android-11-cdd" ><span class="devsite-nav-text" tooltip>Android 11</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/10/android-10-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/10/android-10-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/10/android-10-cdd" ><span class="devsite-nav-text" tooltip>Android 10</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/9/android-9-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/9/android-9-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/9/android-9-cdd" ><span class="devsite-nav-text" tooltip>Android 9</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/8.1/android-8.1-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/8.1/android-8.1-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/8.1/android-8.1-cdd" ><span class="devsite-nav-text" tooltip>Android 8.1</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/8.0/android-8.0-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/8.0/android-8.0-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/8.0/android-8.0-cdd" ><span class="devsite-nav-text" tooltip>Android 8.0</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/7.1/android-7.1-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/7.1/android-7.1-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/7.1/android-7.1-cdd" ><span class="devsite-nav-text" tooltip>Android 7.1</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/7.0/android-7.0-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/7.0/android-7.0-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/7.0/android-7.0-cdd" ><span class="devsite-nav-text" tooltip>Android 7.0</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/6.0/android-6.0-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/6.0/android-6.0-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/6.0/android-6.0-cdd" ><span class="devsite-nav-text" tooltip>Android 6.0</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/5.1/android-5.1-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/5.1/android-5.1-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/5.1/android-5.1-cdd" ><span class="devsite-nav-text" tooltip>Android 5.1</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/5.0/android-5.0-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/5.0/android-5.0-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/5.0/android-5.0-cdd" ><span class="devsite-nav-text" tooltip>Android 5.0</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/4.4/android-4.4-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/4.4/android-4.4-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/4.4/android-4.4-cdd" ><span class="devsite-nav-text" tooltip>Android 4.4</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/4.3/android-4.3-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/4.3/android-4.3-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/4.3/android-4.3-cdd" ><span class="devsite-nav-text" tooltip>Android 4.3</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/4.2/android-4.2-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/4.2/android-4.2-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/4.2/android-4.2-cdd" ><span class="devsite-nav-text" tooltip>Android 4.2</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/4.1/android-4.1-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/4.1/android-4.1-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/4.1/android-4.1-cdd" ><span class="devsite-nav-text" tooltip>Android 4.1</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/4.0/android-4.0-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/4.0/android-4.0-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/4.0/android-4.0-cdd" ><span class="devsite-nav-text" tooltip>Android 4.0</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/2.3/android-2.3-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/2.3/android-2.3-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/2.3/android-2.3-cdd" ><span class="devsite-nav-text" tooltip>Android 2.3</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/2.2/android-2.2-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/2.2/android-2.2-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/2.2/android-2.2-cdd" ><span class="devsite-nav-text" tooltip>Android 2.2</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/2.1/android-2.1-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/2.1/android-2.1-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/2.1/android-2.1-cdd" ><span class="devsite-nav-text" tooltip>Android 2.1</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/1.6/android-1.6-cdd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/1.6/android-1.6-cdd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/1.6/android-1.6-cdd" ><span class="devsite-nav-text" tooltip>Android 1.6</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>CDDs as PDF</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/static/docs/compatibility/12/android-12-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/12/android-12-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/12/android-12-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 12</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/11/android-11-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/11/android-11-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/11/android-11-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 11</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/10/android-10-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/10/android-10-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/10/android-10-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 10</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/9/android-9-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/9/android-9-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/9/android-9-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 9</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/8.1/android-8.1-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/8.1/android-8.1-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/8.1/android-8.1-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 8.1</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/8.0/android-8.0-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/8.0/android-8.0-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/8.0/android-8.0-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 8.0</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/7.1/android-7.1-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/7.1/android-7.1-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/7.1/android-7.1-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 7.1</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/7.0/android-7.0-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/7.0/android-7.0-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/7.0/android-7.0-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 7.0</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/6.0/android-6.0-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/6.0/android-6.0-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/6.0/android-6.0-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 6.0</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/5.1/android-5.1-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/5.1/android-5.1-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/5.1/android-5.1-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 5.1</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/5.0/android-5.0-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/5.0/android-5.0-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/5.0/android-5.0-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 5.0</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/4.4/android-4.4-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/4.4/android-4.4-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/4.4/android-4.4-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 4.4</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/4.3/android-4.3-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/4.3/android-4.3-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/4.3/android-4.3-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 4.3</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/4.2/android-4.2-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/4.2/android-4.2-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/4.2/android-4.2-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 4.2</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/4.1/android-4.1-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/4.1/android-4.1-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/4.1/android-4.1-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 4.1</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/4.0/android-4.0-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/4.0/android-4.0-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/4.0/android-4.0-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 4.0</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/2.3/android-2.3-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/2.3/android-2.3-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/2.3/android-2.3-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 2.3</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/2.3/android-2.3.3-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/2.3/android-2.3.3-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/2.3/android-2.3.3-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 2.3.3</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/2.2/android-2.2-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/2.2/android-2.2-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/2.2/android-2.2-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 2.2</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/2.1/android-2.1-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/2.1/android-2.1-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/2.1/android-2.1-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 2.1</span></a></li><li class="devsite-nav-item"><a href="/static/docs/compatibility/1.6/android-1.6-cdd.pdf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /static/docs/compatibility/1.6/android-1.6-cdd.pdf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/static/docs/compatibility/1.6/android-1.6-cdd.pdf" ><span class="devsite-nav-text" tooltip>Android 1.6</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/docs/compatibility/compatibility-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/compatibility-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/compatibility-faq" ><span class="devsite-nav-text" tooltip>Compatibility FAQ</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Compatibility Test Suite (CTS)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/setup" ><span class="devsite-nav-text" tooltip>Set up CTS</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Run CTS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts/run" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/run" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/run" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/run-locally" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/run-locally" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/run-locally" ><span class="devsite-nav-text" tooltip>Run media tests locally</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/helper-modules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/helper-modules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/helper-modules" ><span class="devsite-nav-text" tooltip>CTS device interaction helper module</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/command-console-v2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/command-console-v2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/command-console-v2" ><span class="devsite-nav-text" tooltip>CTS v2 command console</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/command_console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/command_console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/command_console" ><span class="devsite-nav-text" tooltip>CTS v1 command console</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-instant" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-instant" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-instant" ><span class="devsite-nav-text" tooltip>Instant apps</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/secure-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/secure-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/secure-element" ><span class="devsite-nav-text" tooltip>CTS test for secure element</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/media-cts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/media-cts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/media-cts" ><span class="devsite-nav-text" tooltip>Run media performance class tests</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-optimize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-optimize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-optimize" ><span class="devsite-nav-text" tooltip>Optimize the CTS</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>CTS Verifier</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts/verifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/verifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/verifier" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-verifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-verifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-verifier" ><span class="devsite-nav-text" tooltip>CTS Verifier test guidance</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/ctsv-multidevice" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/ctsv-multidevice" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/ctsv-multidevice" ><span class="devsite-nav-text" tooltip>Run multidevice NFC tests</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Run audio tests</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts/audio-tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-tests" ><span class="devsite-nav-text" tooltip>CTS Verifier audio tests</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/near-ultrasound" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/near-ultrasound" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/near-ultrasound" ><span class="devsite-nav-text" tooltip>Near ultrasound tests</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/audio-framework" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-framework" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-framework" ><span class="devsite-nav-text" tooltip>Audio framework CTS Verifier</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/usb-audio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/usb-audio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/usb-audio" ><span class="devsite-nav-text" tooltip>USB audio CTS Verifier tests</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/verifier-pro-audio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/verifier-pro-audio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/verifier-pro-audio" ><span class="devsite-nav-text" tooltip>CTS Verifier pro audio test</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-midi" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-midi" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-midi" ><span class="devsite-nav-text" tooltip>CTS Verifier MIDI tests</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/audio-data-path-tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-data-path-tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-data-path-tests" ><span class="devsite-nav-text" tooltip>CTS Verifier audio data paths tests</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/audio-loopback-calib" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-loopback-calib" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-loopback-calib" ><span class="devsite-nav-text" tooltip>Audio Loopback Calibration panel</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/audio-peripherals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-peripherals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-peripherals" ><span class="devsite-nav-text" tooltip>CTS Verifier audio peripherals</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/multichannel-mixdown-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/multichannel-mixdown-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/multichannel-mixdown-test" ><span class="devsite-nav-text" tooltip>CTS Verifier multichannel mixdown test</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/audio-devices-panel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-devices-panel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-devices-panel" ><span class="devsite-nav-text" tooltip>Audio Devices panel</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/audio-loopback-latency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/audio-loopback-latency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/audio-loopback-latency" ><span class="devsite-nav-text" tooltip>Audio loopback latency test</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/rotation-vector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/rotation-vector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/rotation-vector" ><span class="devsite-nav-text" tooltip>Rotation vector CV crosscheck</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/verifier-instant-apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/verifier-instant-apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/verifier-instant-apps" ><span class="devsite-nav-text" tooltip>CTS Verifier for instant apps</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/verifier-spatial-audio-latency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/verifier-spatial-audio-latency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/verifier-spatial-audio-latency" ><span class="devsite-nav-text" tooltip>CTS Verifier for head tracking latency test</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Camera Testing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts/camera-hal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-hal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-hal" ><span class="devsite-nav-text" tooltip>Camera HAL testing</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/camera-its" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-its" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-its" ><span class="devsite-nav-text" tooltip>Camera ITS</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/camera-its-foldables" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-its-foldables" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-its-foldables" ><span class="devsite-nav-text" tooltip>Camera ITS foldables testing</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/camera-its-tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-its-tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-its-tests" ><span class="devsite-nav-text" tooltip>Camera ITS tests</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Camera ITS-in-a-Box</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/camera-its-box" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-its-box" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-its-box" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/camera-its-box-assembly" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-its-box-assembly" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-its-box-assembly" ><span class="devsite-nav-text" tooltip>Regular field-of-view box</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/camera-wfov-box-assembly" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-wfov-box-assembly" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-wfov-box-assembly" ><span class="devsite-nav-text" tooltip>Wide field-of-view box</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/camera-modular-rig-system" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/camera-modular-rig-system" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/camera-modular-rig-system" ><span class="devsite-nav-text" tooltip>Modular rig system</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/its-accessories-foldable-kit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/its-accessories-foldable-kit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/its-accessories-foldable-kit" ><span class="devsite-nav-text" tooltip>ITS accessories: foldable kit</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Sensor Fusion Box</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts/sensor-fusion-quick-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/sensor-fusion-quick-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/sensor-fusion-quick-start" ><span class="devsite-nav-text" tooltip>Sensor Fusion Box quick start</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/sensor-fusion-box-assembly" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/sensor-fusion-box-assembly" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/sensor-fusion-box-assembly" ><span class="devsite-nav-text" tooltip>Sensor Fusion Box details</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/sensor-fusion-controller" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/sensor-fusion-controller" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/sensor-fusion-controller" ><span class="devsite-nav-text" tooltip>Android 13 controller</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/tablet-sensor-fusion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/tablet-sensor-fusion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/tablet-sensor-fusion" ><span class="devsite-nav-text" tooltip>Tablet Sensor Fusion Box</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Camera ITS Release Notes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-new"><a href="/docs/compatibility/cts/its-release-notes-15" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/its-release-notes-15" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/its-release-notes-15" ><span class="devsite-nav-text" tooltip>Android 15 Camera ITS release notes</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/its-release-notes-14" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/its-release-notes-14" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/its-release-notes-14" ><span class="devsite-nav-text" tooltip>Android 14 Camera ITS release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/its-release-notes-13" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/its-release-notes-13" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/its-release-notes-13" ><span class="devsite-nav-text" tooltip>Android 13 Camera ITS release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/its-release-notes-12" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/its-release-notes-12" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/its-release-notes-12" ><span class="devsite-nav-text" tooltip>Android 12 Camera ITS release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/its-release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/its-release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/its-release-notes" ><span class="devsite-nav-text" tooltip>Android 11 Camera ITS release notes</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/interpret" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/interpret" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/interpret" ><span class="devsite-nav-text" tooltip>Interpret results</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/development" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/development" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/development" ><span class="devsite-nav-text" tooltip>CTS development</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/develop-cts-d" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/develop-cts-d" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/develop-cts-d" ><span class="devsite-nav-text" tooltip>Developer-powered CTS</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/downloads" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/downloads" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/downloads" ><span class="devsite-nav-text" tooltip>Downloads</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>CTS release notes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-15-release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-15-release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-15-release-notes" ><span class="devsite-nav-text" tooltip>CTS 15 release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-14-release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-14-release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-14-release-notes" ><span class="devsite-nav-text" tooltip>CTS 14 release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-release-notes" ><span class="devsite-nav-text" tooltip>CTS 13 release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-12L-release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-12L-release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-12L-release-notes" ><span class="devsite-nav-text" tooltip>CTS 12L release notes</span></a></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-12-release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-12-release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-12-release-notes" ><span class="devsite-nav-text" tooltip>CTS 12 release notes</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/docs/compatibility/cts/cts-faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/compatibility/cts/cts-faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/compatibility/cts/cts-faq" ><span class="devsite-nav-text" tooltip>CTS FAQs</span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Docs" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > What's new? </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/release-notes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release notes" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Release notes </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/latest-security-bulletins" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Latest security bulletins" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Latest security bulletins </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/latest-cdd" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Latest Compatibility Definition Document (CDD)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Latest Compatibility Definition Document (CDD) </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/site-updates" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Site updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Site updates </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Getting Started </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/setup/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > About </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/start" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Start </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/download" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Download" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Download </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/test" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/create/coding-tasks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Create" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Create </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/contribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contribute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contribute </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/community/cofc" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tools, build, and related reference" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tools, build, and related reference </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Security </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/security/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security/bulletin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Bulletins" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Bulletins </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security/features" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Features" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Features </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security/test/fuzz-sanitize" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Testing </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security/best-practices" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Best Practices" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Best Practices </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Core Topics </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/core/architecture" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Architecture" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Architecture </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/audio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Audio" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Audio </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/camera" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Camera" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Camera </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Connectivity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Connectivity </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/display" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Display" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Display </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/fonts/custom-font-fallback" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fonts" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fonts </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/graphics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Graphics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Graphics </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/interaction" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Interaction" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Interaction </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/media" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Media" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Media </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/perf" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/permissions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Permissions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Permissions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/power" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Power" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Power </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/runtime" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Runtime" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Runtime </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/settings" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Settings" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Settings </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/tests" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tests" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tests </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/ota" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/virtualization" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Virtualization" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Virtualization </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Compatibility </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/compatibility/cdd" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compatibility Definition Document (CDD)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compatibility Definition Document (CDD) </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compatibility/cts" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compatibility Test Suite (CTS)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compatibility Test Suite (CTS) </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Android Devices </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/devices/cuttlefish" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cuttlefish" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cuttlefish </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devices/admin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Enterprise" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Enterprise </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devices/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TV </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Automotive </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/start/what_automotive" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get Started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get Started </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/guidelines" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guidelines for Development" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Guidelines for Development </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/dev-tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Development Tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Development Tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Testing Tools and Infrastructure" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Testing Tools and Infrastructure </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/start/releases" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release Details" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Release Details </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Reference </span> </span> </li> <li class="devsite-nav-item"> <a href="/reference/hidl" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: HIDL" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > HIDL </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/hal" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: HAL" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > HAL </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/tradefed/classes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Trade Federation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Trade Federation </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/sts/classes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security Test Suite" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security Test Suite </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://source.android.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Android Open Source Project" > AOSP </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://source.android.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Docs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://source.android.com/docs/compatibility" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="" > Compatibility </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title" tabindex="-1"> Set up CTS </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <!-- Copyright 2019 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <p>To run CTS, first prepare your physical environment, your desktop machine, and the Android device you're using for testing.</p> <h2 id="physical-environment" data-text="Physical environment" tabindex="-1">Physical environment</h2> <h3 id="ble-beacons" data-text="Bluetooth LE beacons" tabindex="-1">Bluetooth LE beacons</h3> <p>If the device under test (DUT) supports Bluetooth LE, place at least three Bluetooth LE beacons within 5 meters of the DUT for Bluetooth LE scan testing. Those beacons don't need to be configured or emit anything specific, and can be any kind, including iBeacon, Eddystone, or even devices simulating BLE beacons.</p> <h3 id="uwb" data-text="Ultra-wideband" tabindex="-1">Ultra-wideband</h3> <p>If the DUT supports ultra-wideband (UWB), another device supporting UWB must be positioned close enough and oriented so as not to have an antennae and radio dead zone. For the distance accuracy tests, there are specific positioning and orientation needs. For setup details, see <a href="/docs/core/connect/presence-requirements#uwb-requirements">UWB requirements</a>. The UWB test must be run manually, specifying on the command line which two devices are one meter apart. For details on sharding which is required for this test, see <a href="/docs/core/tests/tradefed/architecture/advanced/sharding#local_sharding">Local sharding</a>.</p> <h3 id="cameras" data-text="Cameras" tabindex="-1">Cameras</h3> <p>When running camera CTS, use normal lighting conditions with a test pattern chart (such as a checkerboard pattern). Place the test pattern chart according to the DUT's minimum focus distance to ensure that it isn't too close to the lens.</p> <p>Point the camera sensors to a scene with sufficient lighting to allow the sensors under test to reach and remain at the maximum configured target frames per second (FPS) as specified in <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE"><code translate="no" dir="ltr">CONTROL_AE_TARGET_FPS_RANGE</code></a>. This applies to all camera sensors reported by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraManager#getCameraIdList()"><code translate="no" dir="ltr">getCameraIdList</code></a> as the test iterates over the listed devices and measures performance individually.</p> <p>If the DUT supports external cameras, such as USB webcams, plug in an external camera when running CTS. Otherwise, the CTS tests fail.</p> <h3 id="gps-gnss" data-text="GPS/GNSS" tabindex="-1">GPS/GNSS</h3> <p>If the DUT supports the global positioning system/global navigation satellite system (GPS/GNSS) feature, provide a GPS/GNSS signal to the DUT at a suitable signal level for reception and GPS location calculation. The GPS portion must be compliant with ICD-GPS-200C. Otherwise, the GPS/GNSS signal can be of any kind, including a satellite simulator or a GPS/GNSS repeater of outdoor signals, or you can place the DUT close enough to a window such that it can directly receive enough GPS/GNSS signal.</p> <aside class="caution"><strong>Caution:</strong><span> For the GPS testing, the internet connection setup must not block connections to <code translate="no" dir="ltr">supl.google.com</code> port 7276. This port downloads GPS assistance data for testing position calculation on the local device.</span></aside> <h3 id="wifi-and-ipv6" data-text="Wi-Fi and IPv6" tabindex="-1">Wi-Fi and IPv6</h3> <p>CTS tests require a Wi-Fi network that supports IPv4 and IPv6, has an internet connection with working DNS for IPv4 and IPv6, supports IP multicast, and can treat the DUT as an isolated client. An <em>isolated client</em> is a configuration where the DUT doesn't have visibility to the broadcast/multinetwork messages on that subnetwork. This occurs with a Wi-Fi access point (AP) configuration or by running the DUT on an isolated subnetwork without other devices being connected.</p> <p>If you don't have access to a native IPv6 network, an IPv6 carrier network, or a VPN to pass some tests depending on IPv6, you can use a Wi-Fi access point and an IPv6 tunnel.</p> <p>To pass CTS, the DUT needs the <code translate="no" dir="ltr">UP</code>, <code translate="no" dir="ltr">BROADCAST</code>, and <code translate="no" dir="ltr">MULTICAST</code> flags set on the Wi-Fi interface. The Wi-Fi interface needs IPv4 and IPv6 addresses assigned. Check the Wi-Fi interface properties with <code translate="no" dir="ltr">adb shell ifconfig</code>.</p> <p>For devices that support <a href="/docs/core/connect/wifi-sta-sta-concurrency">Wi-Fi STA/STA Concurrency</a>, multiple Wi-Fi networks (at least 2) are required. To pass CTS, the Wi-Fi networks must run on different bands with different SSIDs or on the same SSID with different BSSIDs.</p> <h3 id="wifi-rtt" data-text="Wi-Fi RTT" tabindex="-1">Wi-Fi RTT</h3> <p>Android includes the <a href="https://developer.android.com/reference/android/net/wifi/rtt/package-summary">Wi-Fi RTT API</a> for a <a href="/docs/core/connect/wifi-rtt">Wi-Fi round trip time (RTT)</a> capability. This allows devices to measure their distance to access points with an accuracy of 1 to 2 meters, significantly increasing indoor location accuracy. Two recommended devices supporting Wi-Fi RTT are <a href="https://store.google.com/us/product/google_wifi_first_gen">Google Wifi</a> and <a href="https://fit-iot.com/web/products/fitlet2/">Compulab's fitlet2 access point</a> (set to 40 MHz bandwidth at 5 GHz).</p> <p>The access points should be powered up, but don't require a network connection. Access points don't need to be next to the testing device but are recommended to be within 40 feet of the DUT. One access point is typically sufficient.</p> <h2 id="desktop-machine" data-text="Desktop machine setup" tabindex="-1">Desktop machine setup</h2> <p><strong>Caution</strong>: CTS supports 64-bit Linux machines. CTS is not supported on Windows OS or MacOS.</p> <h3 id="ffmpeg" data-text="FFMPEG" tabindex="-1">FFMPEG</h3> <p>Install the ffmpeg version 5.1.3 (or later) package on the host machine.</p> <h3 id="host-machine-reqt" data-text="Host machine requirement" tabindex="-1">Host machine requirement</h3> <p>The minimum requirement for the CTS host machine is 32 GiB RAM and 256 GiB disk capacity. This is required to accommodate the increased number of CTS test cases and an increase in Java heap space reservation in Tradefed.</p> <h3 id="adb-aapt" data-text="ADB and AAPT2" tabindex="-1">ADB and AAPT2</h3> <aside class="note"><strong>Note:</strong><span> For CTS 8.0, use version 1.0.39 of adb.</span></aside> <p>Before running the CTS, ensure that you have installed the recent versions of both <a href="http://developer.android.com/tools/adb.html">Android Debug Bridge (adb)</a> and <a href="https://developer.android.com/tools/aapt2">Android Asset Packaging Tool (AAPT2)</a> and added the location of those tools to the system path of your machine.</p> <p>To install ADB and AAPT2, download the latest <a href="https://developer.android.com/tools#tools-platform">Android SDK Platform Tools</a> and <a href="https://developer.android.com/tools#tools-build">Android SDK Build Tools</a> from Android Studio's <a href="https://developer.android.com/studio/intro/update.html#sdk-manager">SDK Manager</a> or from the <a href="https://developer.android.com/tools/sdkmanager">sdkmanager</a> command line tool.</p> <p>Ensure that <code translate="no" dir="ltr">adb</code> and <code translate="no" dir="ltr">aapt2</code> are in your system path. The following command assumes that you've downloaded the package archives to a sub-directory called <code translate="no" dir="ltr">android-sdk</code> in your home directory:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash"><code class="devsite-terminal" translate="no" dir="ltr"><span class="devsite-syntax-nb">export</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">PATH</span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-nv">$PATH</span>:<span class="devsite-syntax-nv">$HOME</span>/android-sdk/platform-tools:<span class="devsite-syntax-nv">$HOME</span>/android-sdk/build-tools/<tools<span class="devsite-syntax-w"> </span>version<span class="devsite-syntax-w"> </span>number></code></pre></devsite-code><aside class="note"><strong>Note:</strong><span> Ensure that your starting path and directory name are correct.</span></aside> <h3 id="jdk-ubuntu" data-text="Java Development Kit for Ubuntu" tabindex="-1">Java Development Kit for Ubuntu</h3> <p>Install the proper version of <a href="http://openjdk.java.net/install/">Java Development Kit (JDK)</a>.</p> <ul> <li>For Android 11, install OpenJDK11.</li> <li>For Android 9 and Android 10, install OpenJDK9.</li> <li>For Android 7.0, 7.1, 8.0 and 8.1, install OpenJDK8.</li> </ul> <p>For details, see the <a href="/docs/setup/start/requirements#jdk">JDK requirements</a>.</p> <h3 id="python-setup" data-text="Setup for Python support" tabindex="-1">Setup for Python support</h3> <p>Install <code translate="no" dir="ltr">virtualenv</code> for your platform by following the <a href="https://virtualenv.pypa.io/en/latest/installation.html">Installation</a> instructions.</p> <p>You can verify that the installation is successful by invoking <code translate="no" dir="ltr">virtualenv -h</code>.</p> <h3 id="cts-files" data-text="CTS files" tabindex="-1">CTS files</h3> <p>Download and open the CTS packages from <a href="/docs/compatibility/cts/downloads">Compatibility Test Suite Downloads</a> matching your devices' Android version and all the application binary interfaces (ABIs) that your devices support.</p> <p>Download and open the latest version of the <a href="/docs/compatibility/cts/downloads#cts-media-files">CTS media files</a>.</p> <h3 id="download-mainline" data-text="Download Mainline-related CTS files (optional)" tabindex="-1">Download Mainline-related CTS files (optional)</h3> <p>When you run a CTS version the first time, CTS dynamically downloads some Mainline-related CTS files, which adds at least 10 minutes to the run time, depending on your network speed.</p> <p>To avoid this added CTS run time, you can download the Mainline-related CTS files before running the CTS version, by following these instructions:</p> <ol> <li><p>Get the Android API level on the device by running:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Text only"><code translate="no" dir="ltr">adb shell getprop ro.build.version.sdk </code></pre></devsite-code></li> <li><p>Follow the instructions in the <a href="https://android.googlesource.com/platform/cts/+/main/tools/mcts/download_mcts.sh"><code translate="no" dir="ltr">download_mcts.sh</code> script</a> to download the Mainline CTS files.</p> <p>The download takes at least 10 minutes, depending on your network speed.</p></li> </ol> <h3 id="device-detection" data-text="Device detection" tabindex="-1">Device detection</h3> <p>Follow the step to <a href="http://developer.android.com/tools/device.html#setting-up">set up your system to detect your device</a>.</p> <h3 id="memory-limit" data-text="Memory limit" tabindex="-1">Memory limit</h3> <p>You might want to increase the maximum memory available during test run in the <a href="https://cs.android.com/android/platform/superproject/main/+/main:cts/tools/cts-tradefed/etc/cts-tradefed;l=141">cts-tradefed</a> script. Refer to <a href="https://android-review.googlesource.com/c/platform/cts/+/2619150/2/tools/cts-tradefed/etc/cts-tradefed">example CL</a> for more information.</p> <h2 id="device-setup" data-text="Android device setup" tabindex="-1">Android device setup</h2> <h3 id="user-builds" data-text="User builds" tabindex="-1">User builds</h3> <p>A compatible device is defined as a device with a user/release-key signed build. Your device should be running a system image based on the known to be compatible user build (Android 4.0 or higher) from <a href="/docs/setup/reference/build-numbers">Codenames, Tags, and Build Numbers</a>.</p> <aside class="caution"><strong>Caution:</strong><span> When used to confirm Android compatibility of your final system image, CTS must be executed on devices with a user build.</span></aside> <h3 id="api-level-build" data-text="First API level build property" tabindex="-1">First API level build property</h3> <p>Certain CTS requirements depend on the build that a device was originally shipped with. For example, devices that originally ship with earlier builds might be excluded from system requirements that apply to devices that ship with later builds.</p> <p>To make this information available to CTS, device manufacturers could have defined the build-time property <code translate="no" dir="ltr">ro.product.first_api_level</code>. The value of this property is the first API level that the device was commercially launched with.</p> <p>The device manufacturers can reuse the common underlying implementation to launch a new product as an upgrade of an existing product in the same device group. The device manufacturers can optionally set the API level of the existing product to <code translate="no" dir="ltr">ro.product.first_api_level</code>, so that upgrade requirements are applied for CTS and Treble/VTS.</p> <p>The device manufacturers can define <code translate="no" dir="ltr">PRODUCT_SHIPPING_API_LEVEL</code> in their <code translate="no" dir="ltr">device.mk</code> file to set this property, as shown in the following example:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Maxima"><code translate="no" dir="ltr"><span class="devsite-syntax-o">#</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">PRODUCT_SHIPPING_API_LEVEL</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">sets</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">ro</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-nv">product</span><span class="devsite-syntax-o">.</span><span class="devsite-syntax-nv">first_api_level</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">to</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-no">ind</span><span class="devsite-syntax-nv">icate</span> <span class="devsite-syntax-o">#</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">the</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">first</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">api</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">level</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">that</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">the</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">device</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">has</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">been</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">commercially</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">launched</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nv">on</span><span class="devsite-syntax-o">.</span> <span class="devsite-syntax-nv">PRODUCT_SHIPPING_API_LEVEL</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">:=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">21</span> </code></pre></devsite-code> <h4 id="first-api-level-9" data-text="First API level for Android 9 or higher" tabindex="-1">First API level for Android 9 or higher</h4> <p>For devices launched with Android 9 or higher, set the <code translate="no" dir="ltr">ro.product.first_api_level</code> property to a valid value from <a href="/docs/setup/reference/build-numbers">Codenames, Tags, and Build Numbers</a>.</p> <h4 id="first-api-level-8" data-text="First API level for Android 8.x or lower" tabindex="-1">First API level for Android 8.x or lower</h4> <p>For devices launched on Android 8.x or lower, unset (remove) the <code translate="no" dir="ltr">ro.product.first_api_level</code> property for the first build of the product. For all subsequent builds, set <code translate="no" dir="ltr">ro.product.first_api_level</code> to the correct API level value. This allows the property to correctly identify a new product and preserves information about the first API level of the product. If the flag is unset, Android assigns <code translate="no" dir="ltr">Build.VERSION.SDK_INT</code> to <code translate="no" dir="ltr">ro.product.first_api_level</code>.</p> <h3 id="cts-shim-packages" data-text="CTS shim packages" tabindex="-1">CTS shim packages</h3> <p>Android 10 or higher includes a package format called <a href="/docs/core/ota/apex">APEX</a>. To run CTS tests for APEX management APIs (such as updating to a new version or reporting active APEXes) you must preinstall a <code translate="no" dir="ltr">CtsShimApex</code> package on a <code translate="no" dir="ltr">/system</code> partition.</p> <p>The APEX shim validation test verifies the implementation of <code translate="no" dir="ltr">CtsShimApex</code>.</p> <h4 id="ro-apex-req" data-text="ro.apex.updatable requirements" tabindex="-1">ro.apex.updatable requirements</h4> <ul> <li><p>If the <code translate="no" dir="ltr">ro.apex.updatable</code> property is set to <code translate="no" dir="ltr">true</code>, <code translate="no" dir="ltr">CtsShimApex</code> is required for all devices that support APEX package management.</p></li> <li><p>If the <code translate="no" dir="ltr">ro.apex.updatable</code> property is missing or isn't set, <code translate="no" dir="ltr">CtsShimApex</code> isn't required to be preinstalled on a device.</p></li> </ul> <p>The APEX shim validation test verifies the implementation of <code translate="no" dir="ltr">CtsShimApex</code>.</p> <h4 id="ctsshim-pre" data-text="CtsShim preinstalls and preloads" tabindex="-1">CtsShim preinstalls and preloads</h4> <p>Starting with Android 11, <code translate="no" dir="ltr">CtsShimApex</code> contains two prebuilt apps (built from <a href="https://android.googlesource.com/platform/frameworks/base/+/main/packages/CtsShim/build/">build source</a>), which don't contain any code except for the manifest. CTS uses these apps to test privileges and permissions.</p> <p>If the device doesn't support APEX package management (that is, the <code translate="no" dir="ltr">ro.apex.updatable</code> property is missing or isn't set), or if the device is running version 10 or lower, the two prebuilt apps must be preinstalled in the system separately.</p> <p>If APEX is supported, the preinstalls for the appropriate release must be placed as <code translate="no" dir="ltr">/system/apex/com.android.apex.cts.shim.apex</code>.</p> <p>If regular prebuilt apps are used, <code translate="no" dir="ltr">CtsShim</code> and <code translate="no" dir="ltr">CtsShimPriv</code> for the appropriate release must be placed as <code translate="no" dir="ltr">/system/app/CtsShimPrebuilt.apk</code> and <code translate="no" dir="ltr">/system/priv-app/CtsShimPrivPrebuilt.apk</code> respectively.</p> <p>The following table lists the preinstalls and preloads available for each device version and architecture.</p> <table> <tr> <th style="width:20%">Device Version</th> <th colspan="2" >Preinstall <br> (if APEX supported)</th> <th colspan="2" >Preload</th> <tr> <th> </th> <th>ARM </th> <th>x86 </th> <th>ARM </th> <th>x86 </th> </tr> <tr> <td>Android 15 </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android15-release/shim/prebuilts/arm/com.android.apex.cts.shim.v1.apex"> android15-arm-release</a> </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android15-release/shim/prebuilts/x86/com.android.apex.cts.shim.v1.apex"> android15-x86-release</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android15-release/packages/CtsShim/apk/arm/CtsShim.apk"> android15-arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android15-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> android15-arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android15-release/packages/CtsShim/apk/x86/CtsShim.apk"> android15-x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android15-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> android15-x86-CtsShimPriv.apk</a> </td> </tr> <tr> <td>Android 14 </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android14-release/shim/prebuilts/arm/com.android.apex.cts.shim.v1.apex"> android14-arm-release</a> </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android14-release/shim/prebuilts/x86/com.android.apex.cts.shim.v1.apex"> android14-x86-release</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android14-release/packages/CtsShim/apk/arm/CtsShim.apk"> android14-arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android14-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> android14-arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android14-release/packages/CtsShim/apk/x86/CtsShim.apk"> android14-x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android14-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> android14-x86-CtsShimPriv.apk</a> </td> </tr> <tr> <td>Android 13 </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android13-release/shim/prebuilts/arm/com.android.apex.cts.shim.v1.apex"> android13-arm-release</a> </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android13-release/shim/prebuilts/x86/com.android.apex.cts.shim.v1.apex"> android13-x86-release</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android13-release/packages/CtsShim/apk/arm/CtsShim.apk"> android13-arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android13-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> android13-arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android13-release/packages/CtsShim/apk/x86/CtsShim.apk"> android13-x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android13-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> android13-x86-CtsShimPriv.apk</a> </td> </tr> <tr> <td>Android 12 </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android12-release/shim/prebuilts/arm/com.android.apex.cts.shim.v1.apex"> android12-arm-release</a> </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android12-release/shim/prebuilts/x86/com.android.apex.cts.shim.v1.apex"> android12-x86-release</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android12-release/packages/CtsShim/apk/arm/CtsShim.apk"> android12-arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android12-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> android12-arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android12-release/packages/CtsShim/apk/x86/CtsShim.apk"> android12-x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android12-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> android12-x86-CtsShimPriv.apk</a> </td> </tr> <tr> <td>Android 11 </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android11-release/shim/prebuilts/arm/com.android.apex.cts.shim.v1.apex"> android11-arm-release</a> </td> <td><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android11-release/shim/prebuilts/x86/com.android.apex.cts.shim.v1.apex"> android11-x86-release</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android11-release/packages/CtsShim/apk/arm/CtsShim.apk"> android11-arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android11-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> android11-arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android11-release/packages/CtsShim/apk/x86/CtsShim.apk"> android11-x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android11-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> android11-x86-CtsShimPriv.apk</a> </td> </tr> <tr> <td>Android 10 </td> <td colspan="2" ><a href="https://android.googlesource.com/platform/system/apex/+/refs/heads/android10-release/shim/com.android.apex.cts.shim.v1.apex"> android10-release</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android10-release/packages/CtsShim/apk/arm/CtsShim.apk"> android10-arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android10-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> android10-arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android10-release/packages/CtsShim/apk/x86/CtsShim.apk"> android10-x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android10-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> android10-x86-CtsShimPriv.apk</a> </td> </tr> <tr> <td>Android 9, O, and O-MR1 </td> <td>N/A </td> <td>N/A </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/packages/CtsShim/apk/arm/CtsShim.apk"> arm-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/packages/CtsShim/apk/arm/CtsShimPriv.apk"> arm-CtsShimPriv.apk</a> </td> <td><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/packages/CtsShim/apk/x86/CtsShim.apk"> x86-CtsShim.apk</a> <p><a href="https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/packages/CtsShim/apk/x86/CtsShimPriv.apk"> x86-CtsShimPriv.apk</a> </td> </tr> </table> <p>To pass the tests, preload the apps into the appropriate directories on the system image without re-signing the apps.</p> <h3 id="sample-applet" data-text="Sample applet" tabindex="-1">Sample applet</h3> <p>Android 9 introduced Open Mobile APIs. For devices that report more than one secure element, CTS adds test cases to validate the behavior of the Open Mobile APIs. These test cases require the one-time installation of a sample applet into the embedded Secure Element (eSE) of the DUT or into the SIM card used by the DUT. The <a href="https://android.googlesource.com/platform/cts/+/main/tests/tests/secure_element/sample_applet/Google-eSE-test.cap">eSE sample applet</a> and the <a href="https://android.googlesource.com/platform/cts/+/main/tests/tests/secure_element/sample_applet/uicc/google-cardlet.cap">SIM sample applet</a> can be found in AOSP.</p> <p>See <a href="/docs/compatibility/cts/secure-element">CTS Test for Secure Element</a> for more detailed information on Open Mobile API test cases and Access Control test cases.</p> <h3 id="storage-reqs" data-text="Storage requirements" tabindex="-1">Storage requirements</h3> <p>The CTS media stress tests require video clips to be on external storage (<code translate="no" dir="ltr">/sdcard</code>). Most of the clips are from <a href="https://peach.blender.org/">Big Buck Bunny</a>, which is copyrighted by the Blender Foundation under the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 license</a>.</p> <p>The required space depends on the maximum video playback resolution supported by the device. See section 5 in the <a href="/docs/compatibility/cdd">Android Compatibility Definition document</a> for the platform version of the required resolutions.</p> <aside class="note"><strong>Note:</strong><span> The video playback capabilities of the DUT are checked through the <code translate="no" dir="ltr">android.media.CamcorderProfile</code> APIs for earlier versions of Android and the <code translate="no" dir="ltr">android.media.MediaCodecInfo.CodecCapabilities</code> APIs from Android 5.0.</span></aside> <p>Here are the storage requirements by maximum video playback resolution:</p> <ul> <li>480x360: 98 MB</li> <li>720x480: 193 MB</li> <li>1280x720: 606 MB</li> <li>1920x1080: 1863 MB</li> </ul> <h3 id="screen-storage" data-text="Screen and storage" tabindex="-1">Screen and storage</h3> <ul> <li>Any device that doesn't have an embedded screen needs to be connected to a screen.</li> <li><p>If the device has a memory card slot, plug in an empty SD card. <em>Use an SD card that supports ultra high speed (UHS) bus with SDHC or SDXC capacity or one with at least speed class 10 or higher to ensure that it can pass the CTS.</em></p> <aside class="warning"><strong>Warning:</strong><span> CTS might modify/erase data on the SD card plugged into the device.</span></aside></li> <li><p>If the device has SIM card slots, plug an activated SIM card into each slot. If the device supports SMS, each SIM card must have its own number field populated. For devices running Android 12 or higher, all SIM cards must have support for storing abbreviated dialing numbers (ADN). GSM and USIM cards with the telecom dedicated file (DF<sub>Telecom</sub>) satisfy this requirement.</p> <aside class="warning"><strong>Warning:</strong><span> CTS might modify/erase data on the SIM cards plugged into the device.</span></aside></li> </ul> <h3 id="developer-uicc" data-text="Developer UICC" tabindex="-1">Developer UICC</h3> <p>To run CTS carrier API tests, the device needs to use a SIM with CTS carrier privileges meeting the requirements specified in <a href="/docs/core/connect/uicc#prepare_uicc">Preparing the UICC</a>.</p> <h3 id="device-config" data-text="Android device configuration" tabindex="-1">Android device configuration</h3> <ol> <li><p>Factory data reset the device: <strong>Settings > Backup & reset > Factory data reset</strong>.</p> <aside class="warning"><strong>Warning:</strong><span> This reset erases all user data from the device.</span></aside></li> <li><p>Set your device's language to English (<strong>United States</strong>): <strong>Settings > Language & input > Language</strong>.</p></li> <li><p>If the device supports customizing default fonts, set the default <code translate="no" dir="ltr">sans-serif</code> font family to <code translate="no" dir="ltr">Roboto</code> (the default <code translate="no" dir="ltr">sans-serif</code> font family used in AOSP builds).</p></li> <li><p>Turn on the location setting if there's a GPS or Wi-Fi/cellular network feature on the device: <strong>Settings > Location > On</strong>.</p></li> <li><p>Connect to a Wi-Fi network that supports IPv6, can treat the DUT as an <em>isolated client</em> (see <a href="#physical_environment">Physical environment</a> above), and has an internet connection: <strong>Settings > Wi-Fi</strong>.</p></li> <li><p>Make sure that no lock pattern or password is set on the device: <strong>Settings > Security > Screen lock > None</strong>.</p></li> <li><p>Enable <strong>USB debugging</strong> on your device: <strong>Settings > Developer options > USB debugging</strong>.</p> <aside class="note"><strong>Note:</strong><span> On Android 4.2 or higher, <strong>Developer options</strong> is hidden by default. To make it available, go to <strong>Settings > About phone</strong> and tap <strong>Build number</strong> seven times. Return to the previous screen to find <strong>Developer options</strong>. See <a href="https://developer.android.com/studio/run/device.html#setting-up">Set up a device for development</a> for additional details.</span></aside></li> <li><p>Set the time to 12-hour format: <strong>Settings > Date & time > Use 24-hour format > Off</strong>.</p></li> <li><p>Set the device to stay awake: <strong>Settings > Developer options > Stay Awake > On</strong>.</p></li> <li><p>In <strong>Android 5.x and 4.4.x only</strong>, set the device to allow mock locations: <strong>Settings > Developer options > Allow mock locations > On</strong>.</p></li> <li><p>In <strong>Android 4.2 or higher</strong>, turn off USB app verification: <strong>Settings > Developer options > Verify apps over USB > Off</strong>.</p></li> <li><p>In <strong>Android 13 or higher</strong>, set the device to allow mock modem: <strong>Settings > Developer options > Allow Mock Modem > On</strong>.</p> <aside class="note"><strong>Note:</strong><span> On Android 13 or higher, Telephony added some CTS tests which use a mock modem instead of a real modem. This setting needs to be enabled on user builds to pass the CTS tests need the mock modem.</span></aside></li> <li><p>Launch the browser and dismiss any startup/setup screen.</p></li> <li><p>Connect the desktop machine that will be used to test the device with a USB cable.</p> <aside class="note"><strong>Note:</strong><span> When you connect a device running Android 4.2.2 or higher to your computer, the system shows a dialog asking whether to accept an RSA key that allows debugging through this computer. Select <em>Allow USB debugging</em>.</span></aside></li> <li><p>Before running CTS, set Roboto2 as the sans-serif font using a user accessible affordance (not hidden) setting.</p></li> </ol> <h3 id="file-installation" data-text="File installation" tabindex="-1">File installation</h3> <p>Install and configure helper apps on the device.</p> <ol> <li><p>Set up your device according to your CTS version:</p> <ul> <li><p><strong>CTS versions 2.1 R2 through 4.2 R4:</strong> Set up your device (or emulator) to run the accessibility tests with: <code translate="no" dir="ltr">adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk</code></p> <p>On the device, enable delegation: <strong>Settings > Accessibility > Accessibility > Delegating Accessibility Service</strong>.</p></li> <li><p><strong>CTS versions 6.x or lower:</strong> On devices that declare <code translate="no" dir="ltr">android.software.device_admin</code>, set up your device to run the device administration test using: <code translate="no" dir="ltr">adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`</code></p> <p>In <strong>Settings > Security > Select device administrators</strong>, enable the two <code translate="no" dir="ltr">android.deviceadmin.cts.CtsDeviceAdminReceiver*</code> device administrators. Ensure that <code translate="no" dir="ltr">android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver</code> and any other preloaded device administrators remain disabled.</p></li> </ul></li> <li><p>Copy the CTS media files to the device as follows:</p> <aside class="note"><strong>Note:</strong><span> For CTS 2.3 R12 or higher, if the device supports video codecs, the CTS media files must be copied to the device.</span></aside> <ol> <li>Navigate (<code translate="no" dir="ltr">cd</code>) to the path where the media files are downloaded and unzipped.</li> <li><p>Change the file permissions: <code translate="no" dir="ltr">chmod u+x copy_media.sh</code></p></li> <li><p>Copy the necessary files:</p> <ul> <li><p>To copy clips up to a resolution of 720x480, run:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash"><code class="devsite-terminal" translate="no" dir="ltr">./copy_media.sh<span class="devsite-syntax-w"> </span>720x480</code></pre></devsite-code></li> <li><p>If you aren't sure of the maximum resolution, copy all of the files:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash"><code class="devsite-terminal" translate="no" dir="ltr">./copy_media.sh<span class="devsite-syntax-w"> </span>all</code></pre></devsite-code></li> <li><p>If there are multiple devices under adb, add the serial option (<code translate="no" dir="ltr">-s</code>) of a specific device to the end. For example, to copy up to 720x480 to the device with serial 1234567, run:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Bash"><code class="devsite-terminal" translate="no" dir="ltr">./copy_media.sh<span class="devsite-syntax-w"> </span>720x480<span class="devsite-syntax-w"> </span>-s<span class="devsite-syntax-w"> </span><span class="devsite-syntax-m">1234567</span></code></pre></devsite-code></li> </ul></li> </ol></li> </ol> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Content and code samples on this page are subject to the licenses described in the <a href="/license">Content License</a>. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.</p> <p>Last updated 2024-11-01 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-01 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Build</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//android.googlesource.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android repository </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/source/requirements" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Requirements </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/source/downloading" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Downloading </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com/android/blobs-preview/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Preview binaries </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com/android/images/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Factory images </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com/android/drivers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Driver binaries </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/Android/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > @Android on Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/AndroidDev/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > @AndroidDev on Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//blog.google/products/android/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Android Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//security.googleblog.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Google Security Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/?fromgroups#!forum/android-platform/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Platform on Google Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/?fromgroups#!forum/android-building/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Building on Google Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/?fromgroups#!forum/android-porting/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Porting on Google Groups </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Get help</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//support.google.com/android/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android Help Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//support.google.com/pixelphone/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Pixel Help Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > www.android.com </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com/gms/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Google Mobile Services </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/android-source/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//issuetracker.google.com/issues?q=status:open%20componentid:190923" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Issue Tracker </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/source/" data-category="Site-Wide Custom Events" data-label="Footer About Android link" > About Android </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/source/community" data-category="Site-Wide Custom Events" data-label="Footer Community link" > Community </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/legal" data-category="Site-Wide Custom Events" data-label="Footer Legal link" > Legal </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/license" data-category="Site-Wide Custom Events" data-label="Footer License link" > License </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//issuetracker.google.com/issues/new?component=191476" data-category="Site-Wide Custom Events" data-label="Footer Site feedback link" > Site feedback </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [{"id": "G-2TQ26MFY2E", "purpose": 0}], "ga4p": [{"id": "G-2TQ26MFY2E", "purpose": 0}], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Android Open Source Project", "signedIn": "False", "tenant": "androidsource", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="g5EJSyvl6qPLh5qU9rFTnxhz4fFffb"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/js/app_loader.js', '[7,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource","https://androidsource-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/androidsource/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/images/favicon.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/androidsource/images/lockup.svg","https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","source.android.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_completecodelab_endpoint","Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_facet_chat","Cloud__enable_cloud_shell","MiscFeatureFlags__enable_view_transitions","Analytics__enable_clearcut_logging","MiscFeatureFlags__developers_footer_image","Profiles__enable_release_notes_notifications","Profiles__enable_profile_collections","TpcFeatures__enable_required_headers","Cloud__enable_legacy_calculator_redirect","Experiments__reqs_query_experiments","Search__enable_page_map","Profiles__enable_page_saving","Profiles__require_profile_eligibility_for_signin","Cloud__enable_cloud_shell_fte_user_flow","MiscFeatureFlags__developers_footer_dark_image","MiscFeatureFlags__enable_variable_operator","TpcFeatures__enable_mirror_tenant_redirects","CloudShell__cloud_shell_button","DevPro__enable_cloud_innovators_plus","MiscFeatureFlags__emergency_css","Cloud__enable_cloudx_ping","Profiles__enable_complete_playlist_endpoint","Profiles__enable_public_developer_profiles","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloud_dlp_service","Profiles__enable_developer_profiles_callout","MiscFeatureFlags__enable_project_variables","BookNav__enable_tenant_cache_key","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_free_trial_server_call","Search__enable_dynamic_content_confidential_banner","Profiles__enable_awarding_url","Search__enable_suggestions_from_borg","Search__enable_ai_eligibility_checks","MiscFeatureFlags__enable_firebase_utm","Concierge__enable_pushui","MiscFeatureFlags__enable_explain_this_code","EngEduTelemetry__enable_engedu_telemetry","Cloud__enable_llm_concierge_chat","DevPro__enable_developer_subscriptions","Profiles__enable_recognition_badges"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.googleapis.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[7,"androidsource","Android Open Source Project","source.android.com",null,"androidsource-dot-devsite-v2-prod.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1]],null,null,null,[1,null,1],[1,1,null,null,1]],null,[29,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,null,null,1,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1],null,[[null,null,null,[3,7],null,null,[1,[["docType","Choose a content type",[["Guide",null,null,null,null,null,null,null,null,"Guide"],["ReleaseNotes",null,null,null,null,null,null,null,null,"Release Notes"]]],["category","Choose a topic",[["Architecture",null,null,null,null,null,null,null,null,"Architecture"],["Automotive",null,null,null,null,null,null,null,null,"Automotive"],["AndroidBuilding",null,null,null,null,null,null,null,null,"Building"],["AndroidConnectivity",null,null,null,null,null,null,null,null,"Connectivity"],["Camera",null,null,null,null,null,null,null,null,"Camera"],["Compatibility",null,null,null,null,null,null,null,null,"Compatibility"],["Drivers",null,null,null,null,null,null,null,null,"Drivers"],["Graphics",null,null,null,null,null,null,null,null,"Graphics"],["Media",null,null,null,null,null,null,null,null,"Media"],["Security",null,null,null,null,null,null,null,null,"Security"],["Testing",null,null,null,null,null,null,null,null,"Testing"]]]]]],[1,1],null,1],[[null,null,null,null,null,null,null,[["G-2TQ26MFY2E"],null,null,[["G-2TQ26MFY2E",1]]],null,null,null,null,1]],null,4],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>