Настроить CTS

Чтобы запустить CTS, сначала подготовьте физическую среду, настольный компьютер и устройство Android, которое вы используете для тестирования.

Физическая среда

Маяки Bluetooth LE

Если тестируемое устройство (ИУ) поддерживает Bluetooth LE, разместите не менее трех маяков Bluetooth LE в пределах 5 метров от ИУ для тестирования сканирования Bluetooth LE. Эти маяки не нужно настраивать или излучать что-то конкретное, и они могут быть любого типа, включая iBeacon, Eddystone или даже устройства, имитирующие маяки BLE.

Камеры

При запуске камеры CTS используйте нормальные условия освещения с тестовой таблицей (например, в виде шахматной доски). Поместите тестовую таблицу в соответствии с минимальным фокусным расстоянием тестируемого устройства, чтобы убедиться, что оно не слишком близко к объективу.

Направьте датчики камеры на сцену с достаточным освещением, чтобы тестируемые датчики могли достигать и оставаться на максимально настроенном целевом уровне кадров в секунду (FPS), как указано в CONTROL_AE_TARGET_FPS_RANGE . Это относится ко всем датчикам камеры, о которых сообщает getCameraIdList , поскольку тест повторяет перечисленные устройства и измеряет производительность по отдельности.

Если тестируемое устройство поддерживает внешние камеры, например веб-камеры USB, подключите внешнюю камеру во время работы CTS. В противном случае тесты CTS не пройдут.

GPS/ГНСС

Если тестируемое устройство поддерживает функцию глобальной системы позиционирования/глобальной навигационной спутниковой системы (GPS/GNSS), подайте на тестируемое устройство сигнал GPS/GNSS с подходящим уровнем сигнала для приема и определения местоположения по GPS. Часть GPS должна соответствовать ICD-GPS-200C. В противном случае сигнал GPS/GNSS может быть любого типа, включая спутниковый симулятор или ретранслятор сигналов GPS/GNSS вне помещения, или вы можете разместить ИУ достаточно близко к окну, чтобы он мог напрямую принимать достаточный сигнал GPS/GNSS.

Wi-Fi и IPv6

Для тестов CTS требуется сеть Wi-Fi, поддерживающая IPv4 и IPv6, имеющая подключение к Интернету с работающим DNS для IPv4 и IPv6, поддерживающая многоадресную рассылку IP и способная рассматривать DUT как изолированный клиент. Изолированный клиент — это конфигурация, в которой DUT не видит широковещательные/мультисетевые сообщения в этой подсети. Это происходит при настройке точки доступа Wi-Fi (AP) или при запуске тестируемого устройства в изолированной подсети без подключения других устройств.

Если у вас нет доступа к собственной сети IPv6, сети оператора связи IPv6 или VPN для прохождения некоторых тестов в зависимости от IPv6, вы можете использовать точку доступа Wi-Fi и туннель IPv6.

Для передачи CTS тестируемому устройству необходимо, чтобы на интерфейсе Wi-Fi были установлены флаги UP , BROADCAST и MULTICAST . Для интерфейса Wi-Fi необходимо назначить адреса IPv4 и IPv6. Проверьте свойства интерфейса Wi-Fi с помощью adb shell ifconfig .

Wi-Fi RTT

Android включает в себя Wi-Fi RTT API для возможности определения времени приема-передачи Wi-Fi (RTT) . Это позволяет устройствам измерять расстояние до точек доступа с точностью от 1 до 2 метров, что значительно повышает точность определения местоположения в помещении. Двумя рекомендуемыми устройствами, поддерживающими Wi-Fi RTT, являются Google Wifi и точка доступа fitlet2 от Compulab (настроена на полосу пропускания 40 МГц на частоте 5 ГГц).

Точки доступа должны быть включены, но не требуют подключения к сети. Точки доступа не обязательно должны находиться рядом с тестирующим устройством, но рекомендуется, чтобы они находились в пределах 40 футов от тестируемого устройства. Обычно достаточно одной точки доступа.

Настройка настольного компьютера

Внимание ! CTS поддерживает 64-разрядные машины Linux. CTS не поддерживается в ОС Windows или MacOS.

FFMPEG

Установите пакет ffmpeg версии 5.1.3 (или более поздней) на хост-компьютер.

Обновление хост-машины

Настоятельно рекомендуется увеличить объем оперативной памяти хост-компьютера CTS до 128 ГБ, а объем жесткого диска — до 256 ГБ. Это необходимо для размещения увеличенного количества тестовых случаев CTS и увеличения резервирования пространства кучи Java в tradefed.

АБР и ААПТ

Перед запуском CTS убедитесь, что вы установили последние версии Android Debug Bridge (adb) и Android Asset Packaging Tool (AAPT) и добавили расположение этих инструментов в системный путь вашего компьютера.

Чтобы установить ADB и AAPT, загрузите последние версии Android SDK Platform Tools и Android SDK Build Tools из диспетчера SDK Android Studio или из инструмента командной строки sdkmanager .

Убедитесь, что adb и aapt находятся в вашем системном пути. Следующая команда предполагает, что вы загрузили архивы пакетов в подкаталог android-sdk в вашем домашнем каталоге:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

Комплект разработки Java для Ubuntu

Установите правильную версию Java Development Kit (JDK) .

  • Для Android 11 установите OpenJDK11.
  • Для Android 9 и Android 10 установите OpenJDK9.
  • Для Android 7.0, 7.1, 8.0 и 8.1 установите OpenJDK8.

Подробнее см. в требованиях JDK .

Настройка поддержки Python

Установите virtualenv для своей платформы, следуя инструкциям по установке .

Вы можете убедиться, что установка прошла успешно, вызвав virtualenv -h .

CTS-файлы

Загрузите и откройте пакеты CTS из загрузок Compatibility Test Suite, соответствующие версии Android вашего устройства и всем двоичным интерфейсам приложений (ABI), которые поддерживают ваши устройства.

Загрузите и откройте последнюю версию мультимедийных файлов CTS .

Обнаружение устройства

Следуйте шагу, чтобы настроить систему для обнаружения вашего устройства .

Лимит памяти

Возможно, вы захотите увеличить максимальный объем памяти, доступный во время тестового прогона в сценарии cts-tradefed . Обратитесь к примеру CL для получения дополнительной информации.

Настройка Android-устройства

Пользовательские сборки

Совместимое устройство определяется как устройство со сборкой, подписанной пользователем/ключом выпуска. На вашем устройстве должен быть запущен образ системы, основанный на заведомо совместимой пользовательской сборке (Android 4.0 или более поздней версии) из кодовых имен, тегов и номеров сборок .

Свойство сборки первого уровня API

Некоторые требования CTS зависят от сборки, с которой изначально поставлялось устройство. Например, устройства, изначально поставляемые с более ранними сборками, могут быть исключены из требований к системе, которые применяются к устройствам, поставляемым с более поздними сборками.

Чтобы сделать эту информацию доступной для CTS, производители устройств могли бы определить свойство времени сборки ro.product.first_api_level . Значением этого свойства является первый уровень API, с которым устройство было запущено в коммерческую эксплуатацию.

Производители устройств могут повторно использовать общую базовую реализацию для запуска нового продукта в качестве обновления существующего продукта в той же группе устройств. Производители устройств могут дополнительно установить уровень API существующего продукта на ro.product.first_api_level , чтобы требования обновления применялись для CTS и Treble/VTS.

Производители устройств могут определить PRODUCT_SHIPPING_API_LEVEL в своем файле device.mk , чтобы установить это свойство, как показано в следующем примере:

# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21

Первый уровень API для Android 9 или выше

Для устройств, запущенных с Android 9 или более поздней версии, задайте для свойства ro.product.first_api_level допустимое значение из Codenames, Tags и Build Numbers .

Первый уровень API для Android 8.x или ниже

Для устройств, запущенных на Android 8.x или ниже, отключите (удалите) свойство ro.product.first_api_level для первой сборки продукта. Для всех последующих сборок задайте для ro.product.first_api_level правильное значение уровня API. Это позволяет свойству правильно идентифицировать новый продукт и сохраняет информацию о первом уровне API продукта. Если флаг не установлен, Android присваивает Build.VERSION.SDK_INT значение ro.product.first_api_level .

Пакеты прокладок CTS

Android 10 или выше включает формат пакета под названием APEX . Чтобы выполнить тесты CTS для API-интерфейсов управления APEX (например, обновление до новой версии или создание отчетов об активных APEX), необходимо предварительно установить пакет CtsShimApex в разделе /system .

Проверочный тест оболочки APEX проверяет реализацию CtsShimApex .

ro.apex.обновляемые требования

  • Если для свойства ro.apex.updatable задано значение true , CtsShimApex требуется для всех устройств, поддерживающих управление пакетами APEX.

  • Если свойство ro.apex.updatable отсутствует или не задано, CtsShimApex не требуется предварительно устанавливать на устройстве.

Проверочный тест оболочки APEX проверяет реализацию CtsShimApex .

Предустановки и предзагрузки CtsShim

Начиная с Android 11, CtsShimApex содержит два готовых приложения (созданы из исходного кода сборки ), которые не содержат никакого кода, кроме манифеста. CTS использует эти приложения для проверки привилегий и разрешений.

Если устройство не поддерживает управление пакетами APEX (то есть свойство ro.apex.updatable отсутствует или не задано) или если на устройстве установлена ​​версия 10 или более ранняя, два готовых приложения должны быть предварительно установлены в система отдельно.

Если APEX поддерживается, предустановки для соответствующего выпуска должны быть размещены как /system/apex/com.android.apex.cts.shim.apex .

Если используются обычные готовые приложения, CtsShim и CtsShimPriv для соответствующего выпуска должны быть размещены как /system/app/CtsShimPrebuilt.apk и /system/priv-app/CtsShimPrivPrebuilt.apk соответственно.

В следующей таблице перечислены предварительные установки и предварительные загрузки, доступные для каждой версии устройства и архитектуры.

Версия устройства Предустановить
(если поддерживается APEX)
Предварительная загрузка
РУКА x86 РУКА x86
Андроид 13 android13-arm-релиз android13-x86-выпуск android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Андроид 12 android12-arm-релиз android12-x86-выпуск android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Андроид 11 android11-arm-релиз android11-x86-выпуск android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Андроид 10 android10-выпуск android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O и O-MR1 Н/Д Н/Д arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Чтобы пройти тесты, предварительно загрузите приложения в соответствующие каталоги образа системы без повторной подписи приложений.

Пример апплета

В Android 9 представлены открытые мобильные API. Для устройств, которые сообщают о более чем одном безопасном элементе, CTS добавляет тестовые примеры для проверки поведения Open Mobile API. Эти тестовые примеры требуют однократной установки образца апплета во встроенный элемент безопасности (eSE) тестируемого устройства или в SIM-карту, используемую тестируемым устройством. Образец апплета eSE и пример апплета SIM можно найти в AOSP.

См. CTS Test for Secure Element для получения более подробной информации о тестовых примерах Open Mobile API и контрольных примерах контроля доступа.

Требования к хранению

Для нагрузочных тестов CTS media требуется, чтобы видеоклипы находились во внешнем хранилище ( /sdcard ). Большинство клипов взяты из Big Buck Bunny , авторские права на которые принадлежат Blender Foundation в соответствии с лицензией Creative Commons Attribution 3.0 .

Необходимое пространство зависит от максимального разрешения воспроизведения видео, поддерживаемого устройством. См. раздел 5 в документе «Определение совместимости с Android» для версии платформы требуемых разрешений.

Вот требования к хранилищу для максимального разрешения воспроизведения видео:

  • 480x360: 98 МБ
  • 720x480: 193 МБ
  • 1280x720: 606 МБ
  • 1920x1080: 1863 МБ

Экран и память

  • Любое устройство, не имеющее встроенного экрана, должно быть подключено к экрану.
  • Если в устройстве есть слот для карты памяти, вставьте пустую SD-карту. Используйте SD-карту, которая поддерживает шину сверхвысокой скорости (UHS) с емкостью SDHC или SDXC, или карту с классом скорости не менее 10 или выше, чтобы убедиться, что она может пройти тест CTS.

  • Если в устройстве есть слоты для SIM-карт, вставьте активированную SIM-карту в каждый слот. Если устройство поддерживает SMS, для каждой SIM-карты должно быть заполнено собственное поле номера. Для устройств под управлением Android 12 или более поздней версии все SIM-карты должны поддерживать сохранение номеров сокращенного набора (ADN). Этому требованию удовлетворяют карты GSM и USIM с выделенным файлом телекоммуникаций (DF Telecom ).

UICC-разработчик

Для запуска тестов API оператора CTS устройство должно использовать SIM-карту с привилегиями оператора CTS, отвечающую требованиям, указанным в разделе Подготовка карты UICC .

Конфигурация Android-устройства

  1. Сброс заводских данных устройства: «Настройки» > «Резервное копирование и сброс» > «Сброс заводских данных» .

  2. Установите язык устройства на английский ( США ): «Настройки» > «Язык и ввод» > «Язык» .

  3. Если устройство поддерживает настройку шрифтов по умолчанию, задайте для семейства шрифтов sans-serif по умолчанию значение Roboto (семейство шрифтов sans-serif по умолчанию, используемое в сборках AOSP).

  4. Включите настройку местоположения, если на устройстве есть функция GPS или Wi-Fi/сотовой сети: «Настройки» > «Местоположение» > «Вкл.» .

  5. Подключитесь к сети Wi-Fi, которая поддерживает IPv6, может рассматривать DUT как изолированный клиент (см. раздел «Физическая среда» выше) и имеет подключение к Интернету: «Настройки» > «Wi-Fi» .

  6. Убедитесь, что на устройстве не установлен графический ключ или пароль блокировки: «Настройки» > «Безопасность» > «Блокировка экрана» > «Нет» .

  7. Включите отладку по USB на вашем устройстве: «Настройки» > «Параметры разработчика» > «Отладка по USB ».

  8. Установите время в 12-часовом формате: «Настройки» > «Дата и время» > «Использовать 24-часовой формат» > «Выкл.» .

  9. Настройте устройство на бодрствование: «Настройки» > «Параметры разработчика» > «Не спать» > «Вкл.» .

  10. Только в Android 5.x и 4.4.x настройте устройство на разрешение фиктивных местоположений: «Настройки» > «Параметры разработчика» > «Разрешить фиктивные местоположения» > «Вкл.» .

  11. В Android 4.2 или более поздней версии отключите проверку приложений через USB: «Настройки» > «Параметры разработчика» > «Проверять приложения через USB» > «Выкл.» .

  12. В Android 13 или более поздней версии настройте устройство для разрешения имитации модема: «Настройки» > «Параметры разработчика» > «Разрешить имитация модема» > «Вкл.» .

  13. Запустите браузер и закройте любой экран запуска/настройки.

  14. Подключите настольный компьютер, который будет использоваться для тестирования устройства, с помощью USB-кабеля.

  15. Перед запуском CTS установите Roboto2 в качестве шрифта без засечек, используя доступную для пользователя настройку доступности (не скрытую).

Установка файла

Установите и настройте вспомогательные приложения на устройстве.

  1. Настройте свое устройство в соответствии с вашей версией CTS:

    • Версии CTS с 2.1 R2 по 4.2 R4: настройте свое устройство (или эмулятор) для запуска тестов доступности с помощью: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      На устройстве включите делегирование: Настройки > Специальные возможности > Специальные возможности > Служба делегирования специальных возможностей .

    • CTS версии 6.x или ниже: на устройствах, которые объявляют android.software.device_admin , настройте свое устройство для запуска теста администрирования устройства, используя: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      В разделе «Настройки» > «Безопасность» > «Выбрать администраторов устройства » включите двух администраторов устройств android.deviceadmin.cts.CtsDeviceAdminReceiver* . Убедитесь, что android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver и любые другие предварительно загруженные администраторы устройств остаются отключенными.

  2. Скопируйте мультимедийные файлы CTS на устройство следующим образом:

    1. Перейдите ( cd ) к пути, по которому файлы мультимедиа загружаются и распаковываются.
    2. Измените права доступа к файлу: chmod u+x copy_media.sh

    3. Скопируйте необходимые файлы:

      • Чтобы скопировать клипы до разрешения 720x480, выполните:

        ./copy_media.sh 720x480
        
      • Если вы не уверены в максимальном разрешении, скопируйте все файлы:

        ./copy_media.sh all
        
      • Если в adb есть несколько устройств, добавьте в конец серийный номер ( -s ) конкретного устройства. Например, чтобы скопировать разрешение до 720x480 на устройство с серийным номером 1234567, выполните:

        ./copy_media.sh 720x480 -s 1234567