CTS FAQ  |  Android Open Source Project Skip to main content Docs What's new? Release notes Latest security bulletins Latest Compatibility Definition Document (CDD) Site updates Getting Started About Start Download Builds Test Create Contribute Community Tools, build, and related reference Security Overview Bulletins Features Testing Best Practices Core Topics Architecture Audio Camera Connectivity Data Display Fonts Graphics Interaction Media Performance Permissions Power Runtime Settings Storage Tests Updates Virtualization Compatibility Compatibility Definition Document (CDD) Compatibility Test Suite (CTS) Android Devices Cuttlefish Enterprise TV Automotive Overview Software Defined Vehicle In-vehicle Infotainment Release Details Reference HIDL HAL Trade Federation Security Test Suite Android Code Search / English Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어 Sign in Documentation What's New? Getting Started Security Core Topics Compatibility Android Devices Automotive Reference Docs More What's New? Getting Started Security Core Topics Compatibility Android Devices Automotive Reference Android Code Search Overview Compatibility Android Compatibility program overview Compatibility Definition Document Compatibility Definition Document preview Changelog (Android 14 and 15) CDDs in HTML Android 17 (current) Android 16 Android 15 Android 14 Android 13 Android 12 Android 11 Android 10 Android 9 Android 8.1 Android 8.0 Android 7.1 Android 7.0 Android 6.0 Android 5.1 Android 5.0 Android 4.4 Android 4.3 Android 4.2 Android 4.1 Android 4.0 Android 2.3 Android 2.2 Android 2.1 Android 1.6 CDDs as PDF Android 12 Android 11 Android 10 Android 9 Android 8.1 Android 8.0 Android 7.1 Android 7.0 Android 6.0 Android 5.1 Android 5.0 Android 4.4 Android 4.3 Android 4.2 Android 4.1 Android 4.0 Android 2.3 Android 2.3.3 Android 2.2 Android 2.1 Android 1.6 Compatibility FAQs Compatibility Test Suite (CTS) Overview Set up CTS automated testing Set up CTS (AOSP 10 or lower) Run automated tests Run automated tests Run CTS automated tests (AOSP 10 or lower) Run media tests locally CTS device interaction helper module Troubleshoot CTS CTS v2 command console CTS v1 command console Instant apps CTS test for Secure Element Run media performance class tests Run NPU Manager Mobly tests Optimize the CTS Run CTS-V tests Run CTS-V tests CTS Verifier test guidance Test multidevice Run CTS Verifier multidevice tests Set up the BananaPi-R3 access point Run multidevice NFC tests (Android 15) Test audio CTS Verifier audio tests Near ultrasound tests Run audio framework CTS Verifier tests USB audio CTS Verifier tests CTS Verifier Pro Audio test CTS Verifier MIDI tests CTS Verifier audio data paths tests Audio Loopback Calibration panel CTS Verifier audio peripherals CTS Verifier multichannel mixdown test Audio Devices panel Audio loopback latency test Test audio multi-channel input and output Audio workload test Test camera Test camera images Overview Test camera images on foldables Test camera images using automation Obtain a modular rig system Obtain a Gen2 rig Obtain a regular FOV rig Obtain a wide FOV rig Purchase a foldable kit Test camera sensors Test sensor fusion Obtain a sensor fusion box Android 13 controller Obtain sensor fusion box for tablets Test camera HAL Test camera HAL Reference Camera ITS tests Android 17 Camera ITS release notes Android 16 Camera ITS release notes Android 15 Camera ITS release notes Android 14 Camera ITS release notes Android 13 Camera ITS release notes Android 12 Camera ITS release notes Android 11 Camera ITS release notes Run CTS Verifier media playback tests Rotation vector CV crosscheck CTS Verifier for instant apps CTS Verifier for head tracking latency test Barometer measurement tests Interpret results CTS development Developer-Powered CTS Downloads CTS release notes CTS 17 release notes CTS 16.1 release notes CTS 16 release notes CTS 15 release notes CTS 14 release notes CTS 13 release notes CTS 12L release notes CTS 12 release notes CTS FAQs What's new? Release notes Latest security bulletins Latest Compatibility Definition Document (CDD) Site updates Getting Started About Start Download Builds Test Create Contribute Community Tools, build, and related reference Security Overview Bulletins Features Testing Best Practices Core Topics Architecture Audio Camera Connectivity Data Display Fonts Graphics Interaction Media Performance Permissions Power Runtime Settings Storage Tests Updates Virtualization Compatibility Compatibility Definition Document (CDD) Compatibility Test Suite (CTS) Android Devices Cuttlefish Enterprise TV Automotive Overview Software Defined Vehicle In-vehicle Infotainment Release Details Reference HIDL HAL Trade Federation Security Test Suite Effective in 2026, to align with our trunk stable development model and ensure platform stability for the ecosystem, we will publish source code to AOSP in Q2 and Q4. For building and contributing to AOSP, use android-latest-release. The android-latest-release manifest branch will always reference the most recent release pushed to AOSP. For more information, see Changes to AOSP. AOSP Docs Compatibility CTS FAQ Stay organized with collections Save and categorize content based on your preferences. The Android Compatibility Program is the key driver to sustain the positive feedback for Android ecosystem. CTS is the key tool to ensure the quality of compatibility in the scale. The Android team continues to improve CTS tool and test coverage. The regular addition of test cases has significant improvement on the quality of compatible devices. General questions This section provides general CTS FAQs. What kinds of things does the CTS test? The CTS tests that all of the supported Android strong-typed APIs are present and behave correctly. The CTS also tests other non-API system behaviors such as app lifecycle and performance. How is the CTS licensed? The CTS is licensed under the same Apache Software License 2.0 that the bulk of Android uses. Are codecs verified by CTS? Yes. All mandatory codecs are verified by CTS. Test-specific questions This section provides FAQs that help run CTS tests more efficiently. What is the difference between CTS Sharding and TF Sharding? CTS Sharding and TF Sharding are totally different test plans powered by different test infrastructure codebase. While the run command is the same across different versions, the sharding result behaves differently. CTS Sharding statically assigns test cases to Devices Under Test (DUTs) as follows: Command: run cts Configuration for Android 8.1 and lower versions: /tools/cts-tradefed/res/config/cts.xml TF Sharding dynamically assigns test cases to available DUTs as follows: Command: run cts Configuration for Android 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml What is expected from a device supporting multiple ABIs? The device has to pass all CTS and CTS Verifier tests for each ABI mode it claims to support. Therefore, it is necessary to execute an app for the particular ABIs. The guidelines for multiple ABIs are as follows: For CTS and CTS Verifier, there are ARM and x86 releases for each architecture. Each of them can support to 32- or 64-bit mode. For CTS tests, if a device supports both ARM and x86, it has to run and pass both ARM and x86 CTS tests respectively. See CDD 3.3.1. Application Binary Interfaces for CDD requirements on ABI. Is it sufficient to run a test only on the primary ABI (for example, 64 bits) to reduce test execution time? No. An Android app runs on its own 32 -bit or 64-bit runtimes. The actual machine code, code path, and state are different between 32 and 64. If you skip one mode, you are only covering 50% of the device ABI. Why are there so many test cases reported as Not Executed? You should check the Module Done number instead of Not Executed number. In the previous versions, CTS modules were reported as Module Done too aggressively before being completed. Therefore, a Modules Done number was reported without all the test case complete even when some devices had problems. The new test harness is more conservative and reports a higher number of Not Executed tests when a problem occurs. A module run to completion reports Module Not Done in the most recent invocation (done="false") in the report during the following: A test run for the module was interrupted by a device connection issue. Not all expected test runs for the module were performed. Retried (using option -r/--retry) with additional filtering options, such as: --include-filter --exclude-filter -t/--test (Option not yet supported on retry) --retry-type failed --subplan To obtain a status of Module Done (done="true") for these modules, retry the following for the most recent invocation: run retry --retry <session_id> for Android 9 and later versions run cts --retry <session_id> for Android 8.1 and previous versions A module executed without any of the problems mentioned previously (even with 0 remaining tests) is marked Module Done in the new report. Exceptions CtsNNAPITestCases has a known issue due to linux/OS limitation of args. The module can be rerun in isolation through run cts -m CtsNNAPITestCases directly. How can I avoid test preparation failing behind corporate firewall? All automated test suites try to download either the CTS media files or the business logic files during runtime. In many corporate environments, a firewall and proxy is typical, which makes the test preparation fail. Execute the following line or add it to .profile (on Ubuntu). export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true' Do I need a SIM card for CTS for Secure Element? Whether a SIM card is needed for the test depends on the understanding if the feature is supported in the test device. If your device DOES NOT need to support the Android apps accessing secure elements—either in the UICC (e.g., a SIM card) distributed by the mobile network operators (carriers) or embedded in the device—you can configure the HIDL manifest to not include the android.hardware.secure_element HAL element. In this case, the android.se.omapi.SEService.getReaders() API reports an empty list and the CTS test automatically passes and reports a pass for the CTS. If your device DOES need to support Android apps accessing either secure elements—either in the UICC (e.g., a SIM card) distributed by the mobile network operators (carriers) or embedded in the device—you need to implement secure element properly and test it in-house. CTS Test for Secure Element outlines how to prepare to run the CTS tests that ensure android.se.omapi API package added in Android 9 is functional. We also recommend performing additional testing on your own since the CTS test coverage is minimal. Where can I get the SIM cards for CTS for Secure Element? You can reach out to your preferred SIM vendor. Why is Orange SIM on the lock screen during CTS execution with token sharding? The test case doesn't start because testing the SIM card is locked. Disable the Lock SIM card in **SIM card lock settings before executing the CTS with token sharding. Test runs when the feature flags are disabled in the device For all flags in the release builds, the @RequiresFlagsEnabled or @RequiresFlagsDisabled annotation uses the values of the flags from the CTS binary release config, not from the device release config. Disabling the flags on the device doesn't disable the test as the set of CTS tests that run for a given release is fixed to the AOSP platform released config. Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2026-06-17 UTC. [[["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 2026-06-17 UTC."],[],[]] Build Android repository Requirements Downloading Preview binaries Factory images Driver binaries Connect @Android on X @AndroidDev on X Android Blog Google Security Blog Platform on Google Groups Building on Google Groups Porting on Google Groups Get help Android Help Center Pixel Help Center www.android.com Google Mobile Services Stack Overflow Issue Tracker About Android Community Legal License Privacy Site feedback Manage cookies English Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어