Настройка 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, которая поддерживает IPv6, имеет подключение к Интернету и может рассматривать DUT как изолированный клиент. Изолированный клиент относится к конфигурации, в которой DUT не видит широковещательные/многосетевые сообщения в этой подсети. Это происходит при настройке точки доступа Wi-Fi или при запуске тестируемого устройства в изолированной подсети без подключения других устройств.

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

Wi-Fi RTT

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

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

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

АБР и ААПТ

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

Чтобы установить ADB, загрузите пакет Android SDK Tools для вашей операционной системы, откройте его и следуйте инструкциям в прилагаемом файле README. Сведения об устранении неполадок см. в разделе Установка автономных инструментов SDK .

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

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version

Комплект разработки 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 .

CTS-файлы

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

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

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

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

Лимит памяти

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

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

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

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

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

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

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

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

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

#ro.product.first_api_level indicates the first api level that the device has
been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_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.updatable требования

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

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

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

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

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

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

Версия устройства Предустановить
(если поддерживается APEX)
Предварительная загрузка
РУКА x86 РУКА x86
Андроид 12 android12-arm-релиз
в /system/apex/com.android.apex.cts.shim.apex
android12-x86-выпуск
в /system/apex/com.android.apex.cts.shim.apex
android12-arm-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

android12-arm-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

android12-x86-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

android12-x86-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

Андроид 11 android11-arm-релиз
в /system/apex/com.android.apex.cts.shim.apex
android11-x86-выпуск
в /system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

android11-arm-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

android11-x86-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

android11-x86-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

Андроид 10 android10-выпуск
в /system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

android10-arm-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

android10-x86-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

android10-x86-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

Android 9, O и O-MR1 Н/Д Н/Д arm-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

arm-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.apk

x86-CtsShim.apk
в /system/app/CtsShimPrebuilt.apk

x86-CtsShimPriv.apk
в /system/priv-app/CtsShimPrivPrebuilt.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. Запустите браузер и закройте любой экран запуска/настройки.

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

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

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

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

    • Версии CTS с 2.1 R2 по 4.2 R4: настройте свое устройство (или эмулятор) для запуска тестов доступности с помощью: abd 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