Инструмент проверки совместимости Android (CTS Verifier) дополняет инструмент проверки совместимости Compatibility Test Suite (CTS). CTS проверяет API и функции, которые можно автоматизировать, а CTS Verifier — API и функции, которые невозможно протестировать на стационарном устройстве без ручного ввода или позиционирования, например, качество звука, сенсорный экран, акселерометр и камера.
Требования
Перед запуском CTS Verifier убедитесь, что у вас есть следующее оборудование:
- Устройство Android, успешно прошедшее проверку на совместимость с API Android, является тестируемым устройством (DUT).
- Компьютер на базе Linux с портом, совместимым с USB 2.0. Все подключения к проверяемому устройству осуществляются через этот порт.
- Второе устройство Android с заведомо совместимыми функциями Bluetooth, Wi-Fi Direct, Wi-Fi Aware, UWB (если DUT поддерживает UWB) и реализацией эмуляции хост-карты NFC (HCE).
- Wi-Fi-роутер, настроенный с указанием имени точки доступа и пароля. Роутер должен иметь возможность отключения от интернета, но не должен выключаться.
Также подготовьте штативы, держатели для устройств и предварительно измеренные расстояния, необходимые для проведения испытаний на дальность (близость) для UWB, Wi-Fi NAN и Bluetooth RSSI. Подробнее см. в разделе «Калибровка присутствия» .
Требования UICC к тестам NFC
CTS Verifier имеет следующие тестовые случаи NFC:
- Field-off (использует данные транзакции из 0x54)
- Отменить выбор (использует данные транзакции из 0x52)
- Команда HCI (0025000000) (использует данные транзакции из 0x02)
Для тестирования событий транзакций требуются два устройства, одно из которых должно иметь SecureElement UICC со следующими правилами доступа:
- Хеш APK CtsVerifier: 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
- Авторизованный идентификатор приложения (AID) для доступа к событию NFC: 0xA000000476416E64726F696443545341
Со стороны эмулятора мы ожидаем, что событие транзакции выведет соответствующую активность на передний план.
Настраивать
Измените режим навигации системы тестового устройства на трехкнопочный режим следующим образом:
- Откройте «Настройки».
- Перейдите в раздел Система > Жесты > Системная навигация .
- Выберите любой кнопочный режим навигации (предпочтительнее трехкнопочный режим), если он доступен.
Чтобы настроить среду тестирования CTS Verifier:
На компьютере Linux:
Выполните следующую команду перед установкой CTS Verifier, чтобы разрешить доступ к интерфейсам, не относящимся к SDK.
adb shell settings put global hidden_api_policy 1
Установите Android Studio .
Загрузите CTS Verifier APK для версии Android, которую хотите протестировать.
Подключите проверяемое устройство к компьютеру Linux.
С терминала на компьютере Linux установите
CtsVerifier.apkна проверяемое устройство.adb install -r -g CtsVerifier.apk
Для Android 10 и выше выполните следующую команду, чтобы предоставить приложению разрешение на создание отчета.
adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
Для Android 11 и выше выполните следующую команду, чтобы разрешить сохранение отчетов в самостоятельно определяемом каталоге во внешнем каталоге верхнего уровня устройства.
adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
Для Android 13 и выше выполните следующую команду, чтобы разрешить тестовый API-доступ для CTS Verifier.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
Для Android 14 и выше выполните следующую команду, чтобы предоставить приложению разрешение на включение экрана.
adb shell appops set com.android.cts.verifier TURN_SCREEN_ON 0
Убедитесь, что на проверяемом устройстве правильно установлены системная дата и время.
Запустить CTS Verifier
Запустите приложение CTS Verifier, нажав значок CTS Verifier на проверяемом устройстве.
![]()
Рисунок 1. Значок CTS Verifier
Приложение отображает несколько наборов тестов, доступных для ручной проверки.

Рисунок 2. Меню тестов CTS Verifier
Каждый тест содержит набор общих элементов в нижней части экрана.

Рисунок 3. Тестовый экран с выделенными общими элементами теста.
- Пройдено (✓). Нажмите, если проверяемое устройство соответствует требованиям теста согласно информационным инструкциям.
- Информация (?). Нажмите, чтобы отобразить инструкции к тесту. Также отображается автоматически при первом открытии теста.
- Не пройдено (!). Нажмите, если проверяемое устройство не соответствует требованиям теста согласно инструкциям в разделе «Информация».
Некоторые тесты, такие как режим USB-аксессуара и тест калибровки камеры, требуют дополнительной настройки теста и инструкций, подробно изложенных в следующих разделах.
Тестовый режим USB-аксессуара для версии 8.0 и выше

Рисунок 4. Процедура проверки USB-аксессуара для версии 8.0 и выше

Рисунок 5. Тестирование режима USB-аксессуара для версии 8.0 и выше
Тестовый режим USB-аксессуара для версий 7.x и ниже
Для теста USB-аксессуара требуется компьютер с ОС Linux для запуска программы настольного компьютера USB (хоста).
- Подключите проверяемое устройство к компьютеру Linux.
На компьютере запустите программу
cts-usb-accessoryиз пакета CTS Verifier:./cts-usb-accessory
Дождитесь появления всплывающего сообщения на проверяемом устройстве, затем нажмите кнопку ОК .

Рисунок 6. Тест USB-аксессуара
Перейдите к тесту USB-аксессуара в приложении CTS Verifier на проверяемом устройстве.
На компьютере проверьте вывод консоли. Пример вывода:
CTS USB Accessory Tester Found possible Android device (413c:2106) - attempting to switch to accessory mode... Failed to read protocol versionfigure3 Found Android device in accessory mode (18d1:2d01)... [RECV] Message from Android device #0 [SENT] Message from Android accessory #0 [RECV] Message from Android device #1 [SENT] Message from Android accessory #1 [RECV] Message from Android device #2 [SENT] Message from Android accessory #2 [RECV] Message from Android device #3 [SENT] Message from Android accessory #3 [RECV] Message from Android device #4 [SENT] Message from Android accessory #4 [RECV] Message from Android device #5 [SENT] Message from Android accessory #5 [RECV] Message from Android device #6 [SENT] Message from Android accessory #6 [RECV] Message from Android device #7 [SENT] Message from Android accessory #7 [RECV] Message from Android device #8 [SENT] Message from Android accessory #8 [RECV] Message from Android device #9 [SENT] Message from Android accessory #9 [RECV] Message from Android device #10 [SENT] Message from Android accessory #10
Калибровка поля зрения камеры
Используйте процедуру калибровки поля зрения для быстрого определения поля зрения устройства с умеренной точностью.
Настройте тестовую среду:
- Распечатайте целевой файл calibration-pattern.pdf на бумаге размером 11 x 17 дюймов или формата A3.
- Закрепите отпечатанный рисунок на жесткой подложке.
Расположите камеру и напечатанную мишень, как показано на следующей схеме.

Рисунок 7. Мишень, напечатанная камерой
Установите целевую ширину:
- Измерьте расстояние (в сантиметрах) между сплошными линиями на целевом шаблоне, чтобы учесть неточности печати (~38 см).
- Запустите приложение калибровки.
- Нажмите кнопку настройки и выберите Расстояние маркера .
- Измерьте и введите расстояние до целевого шаблона (~100 см).
- Нажмите кнопку «Назад», чтобы вернуться к предварительному просмотру калибровки.
Убедитесь, что устройство и мишень расположены так, как показано на рисунке, и в диалоговом окне настройки введены правильные расстояния. В окне предварительного просмотра отображается изображение с наложенной на него вертикальной линией; эта линия должна совпадать с центральной линией шаблона мишени. Прозрачную сетку можно использовать вместе с другими вертикальными линиями, чтобы обеспечить ортогональность оптической оси к мишени.
Запустите калибровочный тест:
- Выберите разрешение изображения (с помощью селектора в левом нижнем углу), затем коснитесь экрана, чтобы сделать снимок. Тест перейдёт в режим калибровки и отобразит фотографию с двумя вертикальными линиями, наложенными на изображение.
- Определить точность:
- Если линии совпадают с вертикальными линиями на целевом шаблоне с точностью до нескольких сантиметров, то указанное поле зрения для выбранного разрешения является точным.
- Если линии не совпадают, отображаемое поле зрения неточно. Чтобы исправить это, перемещайте ползунок в нижней части экрана до тех пор, пока наложение не совпадёт с целевым шаблоном максимально точно. При совпадении наложения и изображения целевого шаблона отображаемое поле зрения будет близко к правильному значению. Отображаемое поле зрения должно отличаться от калибровочного значения в пределах +/-2 градуса.
- Нажмите кнопку «Назад» и повторите калибровочный тест для всех разрешений изображения, поддерживаемых тестируемым устройством.
Запустите CTS Verifier для альтернативных режимов
Начиная с версий CTS 10 R6 и CTS 11 R2, CTS Verifier поддерживает тесты, необходимые для устройств с альтернативными режимами или для устройств с более чем одним режимом экрана.
В верхней части основного списка в CTS Verifier отображается кнопка, позволяющая переключаться между развернутым и сложенным режимами отображения. CTS Verifier покажет необходимые тесты для выбранного режима отображения. Для запуска альтернативных режимов в CTS Verifier необходимо переключить кнопку в соответствующий режим отображения и запустить список отображаемых тестов.

Рисунок 8. Переключатель CTS Verifier
Результаты свёрнутых тестов будут записаны в том же отчёте, что и развёрнутые. Для идентификации результата каждого теста, из которого взят набор тестов, к названию каждого теста в свёрнутом режиме добавляется суффикс.
<Test result="fail" name="com.android.cts.verifier.deskclock.DeskClockTestsActivity[folded]">
<RunHistory subtest="CREATE_ALARM[folded]">
<Run start="1594176663973" end="1594176665841" isAutomated="false" />
</RunHistory>
</Test>
Экспорт результатов
После завершения всех тестов вы можете сохранить результаты в виде отчёта и загрузить их на компьютер. Названия отчётов автоматически снабжаются временными метками, основанными на системном времени тестируемого устройства.
Чтобы сохранить результаты теста, нажмите значок сохранения (диск) в верхней части списка категорий тестов.
Дождитесь всплывающего сообщения, в котором будет указан путь к файлу сохраненного отчета (например,
/sdcard/verifierReports/ctsVerifierReport-date-time.zip), затем запишите путь.Подключите проверяемое устройство к компьютеру Linux.
Из установки Android SDK на компьютере Linux загрузите отчеты с подключенного устройства с помощью
adb shell content readилиadb pull CTSVerifierReportPath.Для Android 7.x и выше загрузите все отчеты с помощью следующей команды:
adb pull /sdcard/verifierReports
Для Android 6.0 и ниже загрузите все отчеты с помощью следующей команды:
adb pull /mnt/sdcard/ctsVerifierReports/
Для Android 10 и выше, реализующих Automotive и устройств, работающих как вторичный пользователь , загрузите последний отчет с помощью следующей команды:
adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/latest > report.zip
Чтобы вывести список всех отчетов, доступных на подключенном устройстве:
adb shell content query --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports
Чтобы загрузить отчёт из списка, укажите идентификатор строки или имя файла. Например:
adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip adb shell content read --user CURRENT_USER --uri content://com.android.cts.verifier.testresultsprovider/reports/ctsVerifierReport-date-time.zip > report.zip
Чтобы очистить результаты «прошел/не прошёл», выберите результаты в приложении CTS Verifier и выберите Меню > Очистить .