Developer-Powered CTS  |  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 Developer-Powered CTS Stay organized with collections Save and categorize content based on your preferences. This page outlines the usage guidelines for Developer-Powered CTS (CTS-D). Test coverage CTS-D, like CTS and CTS Verifier, can only enforce the following: All public APIs that are described in the developer SDK (developer.android.com) for a certain API level. All MUST requirements that are included in the Android Compatibility Definition Document (CDD) for a certain API level. Non-MUST requirements, such as STRONGLY RECOMMENDED, SHOULD, MAY, are optional and can't be tested using CTS. Because all APIs and CDD requirements are tied to a specific API level, all CTS tests (CTS, CTS-D, and CTS Verifier) are tied to the same API level as their associated APIs or requirements. If a specific API is deprecated or changed, its corresponding test must be deprecated or updated. CTS test creation rules A test must produce the same objective result consistently. A test must determine whether a device passes or fails by testing that device one time out of the box. Test creators must remove all possible factors that could affect test results. If a device needs a certain hardware condition/environment/setup, that setup must be clearly defined in the commit message. For example setup instructions, see Setting Up CTS. The test must not run for more than six hours at a time. If it needs to run longer, include the reasoning in your test proposal so that we can review it. The following is an example set of test conditions for testing an app restriction: Wi-Fi is stable (for a test that relies on Wi-Fi). The device remains stationary during the test (or not, depending on the test). The device is unplugged from any power source with X percent of battery level. No apps, foreground services, or background services are running, except for CTS. The screen is off while running CTS. The device is NOT isLowRamDevice. Battery saver and app restrictions haven't been changed from the out-of-box state. Test eligibility We accept new tests that enforce a behavior that isn't tested by existing CTS, CTS Verifier, or CTS-D tests. Any test that checks a behavior outside the scope of our test coverage is rejected. CTS submission process Write a test proposal: An app developer submits a test proposal using Google Issue Tracker, describing the issue that has been identified and proposing a test to check for it. The proposal must include the associated CDD requirement ID. The Android team reviews the proposal. Develop a CTS test: After a proposal is approved, its submitter creates a CTS test on AOSP on the Android latest release branch (android17-release). The Android team reviews the code and if accepted, cherry-picks the change and merges it into the internal development branch. For details, see Where should I propose changes to AOSP?. CTS-D test writing guidelines Follow the Java Code Style Guide. Follow all the steps described in CTS Development. Add your tests to the appropriate test plan: Use include-filters to add your new tests to the CTS-D test plan: platform/cts/tools/cts-tradefed/res/config/cts-developer.xml. Use exclude-filters to exclude your new tests from the main CTS test plan: platform/cts/tools/cts-tradefed/res/config/cts-developer-exclude.xml. Handle all errorprone warnings and suggestions in build_error.log. Rebase your changes to head. This includes the cts-developer.xml and cts-developer-exclude.xml test plans. Work with your Google engineering contact to determine whether your test case can be included in an existing CTS module. If it can't, they help you create a new module. For each new test module created, create an OWNERS file in the new test module directory. Your OWNERS file should contain the following information, obtained from the Google test owner you're working with: # Bug component: xxx Google test owner ldap In AndroidTest.xml, specify the following parameters. Refer to the sample files (1, 2) for examples: Instant_app or not_instant_app secondary_user or not_secondary_user all_foldable_states or no_foldable_states To specify the correct minSDK, refer to the <uses-sdk> documentation. When checking in new test methods, classes, or modules, add them to the CTS-D test plan and exclude them from the main CTS test plan in the same way as for new tests. Run your CTS-D test Run the CTS-D test plan from the command line using run cts --plan cts-developer. To run a specific test case, use run cts --include-filter "test_module_name test_name". For information on running the full CTS, see Run CTS tests. Acceptance and release After a test request is submitted, an internal team reviews it to make sure it tests a CDD requirement or a documented API behavior. If the test is determined to be checking for a valid requirement or behavior, the team forwards this test case to a Google engineer for further review. The Google engineer reaches out to you with feedback on how the test can be improved before it can be accepted into CTS. See Release schedule and branch information for details on the CTS release schedule. 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-07-16 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-07-16 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 Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어