Configurar CTS

Para ejecutar CTS, primero prepare su entorno físico, su máquina de escritorio y el dispositivo Android que está utilizando para la prueba.

Entorno físico

Balizas Bluetooth LE

Si el dispositivo bajo prueba (DUT) admite Bluetooth LE, coloque al menos tres balizas Bluetooth LE a menos de 5 metros del DUT para realizar pruebas de escaneo de Bluetooth LE. Esas balizas no necesitan configurarse ni emitir nada específico, y pueden ser de cualquier tipo, incluidos iBeacon, Eddystone o incluso dispositivos que simulen balizas BLE.

Ultra banda ancha

Si el DUT admite banda ultraancha (UWB), otro dispositivo que admita UWB debe colocarse lo suficientemente cerca y orientado para no tener antenas ni zona muerta de radio. Para las pruebas de precisión de distancia, existen necesidades específicas de posicionamiento y orientación. Para obtener detalles de configuración, consulte Requisitos de UWB . La prueba UWB debe ejecutarse manualmente, especificando en la línea de comando qué dos dispositivos están a un metro de distancia. Para obtener detalles sobre la fragmentación necesaria para esta prueba, consulte Fragmentación local .

Cámaras

Cuando ejecute la cámara CTS, utilice condiciones de iluminación normales con un gráfico de patrón de prueba (como un patrón de tablero de ajedrez). Coloque la tabla del patrón de prueba de acuerdo con la distancia mínima de enfoque del DUT para asegurarse de que no esté demasiado cerca de la lente.

Apunte los sensores de la cámara a una escena con suficiente iluminación para permitir que los sensores bajo prueba alcancen y permanezcan en los cuadros objetivo máximos configurados por segundo (FPS) como se especifica en CONTROL_AE_TARGET_FPS_RANGE . Esto se aplica a todos los sensores de cámara informados por getCameraIdList a medida que la prueba recorre los dispositivos enumerados y mide el rendimiento individualmente.

Si el DUT admite cámaras externas, como cámaras web USB, conecte una cámara externa cuando ejecute CTS. De lo contrario, las pruebas CTS fallan.

GPS/GNSS

Si el DUT admite la función del sistema de posicionamiento global/sistema de navegación global por satélite (GPS/GNSS), proporcione una señal GPS/GNSS al DUT a un nivel de señal adecuado para la recepción y el cálculo de la ubicación GPS. La parte del GPS debe cumplir con ICD-GPS-200C. De lo contrario, la señal GPS/GNSS puede ser de cualquier tipo, incluido un simulador de satélite o un repetidor GPS/GNSS de señales exteriores, o puede colocar el DUT lo suficientemente cerca de una ventana para que pueda recibir directamente suficiente señal GPS/GNSS.

Wifi e IPv6

Las pruebas CTS requieren una red Wi-Fi que admita IPv4 e IPv6, tenga una conexión a Internet con DNS funcional para IPv4 e IPv6, admita multidifusión de IP y pueda tratar el DUT como un cliente aislado. Un cliente aislado es una configuración en la que el DUT no tiene visibilidad de los mensajes de transmisión/multired en esa subred. Esto ocurre con una configuración de punto de acceso (AP) Wi-Fi o ejecutando el DUT en una subred aislada sin que otros dispositivos estén conectados.

Si no tiene acceso a una red IPv6 nativa, una red de operador IPv6 o una VPN para pasar algunas pruebas dependiendo de IPv6, puede usar un punto de acceso Wi-Fi y un túnel IPv6.

Para pasar CTS, el DUT necesita los indicadores UP , BROADCAST y MULTICAST configurados en la interfaz Wi-Fi. La interfaz Wi-Fi necesita direcciones IPv4 e IPv6 asignadas. Verifique las propiedades de la interfaz Wi-Fi con adb shell ifconfig .

RTT Wi-Fi

Android incluye la API Wi-Fi RTT para una capacidad de tiempo de ida y vuelta (RTT) de Wi-Fi . Esto permite a los dispositivos medir su distancia a los puntos de acceso con una precisión de 1 a 2 metros, lo que aumenta significativamente la precisión de la ubicación en interiores. Dos dispositivos recomendados que admiten Wi-Fi RTT son Google Wifi y el punto de acceso fitlet2 de Compulab (configurado en un ancho de banda de 40 MHz a 5 GHz).

Los puntos de acceso deben estar encendidos, pero no requieren una conexión de red. No es necesario que los puntos de acceso estén al lado del dispositivo de prueba, pero se recomienda que estén a menos de 40 pies del DUT. Normalmente, un punto de acceso es suficiente.

Configuración de la máquina de escritorio

Precaución : CTS admite máquinas Linux de 64 bits. CTS no es compatible con el sistema operativo Windows o MacOS.

FFMPEG

Instale el paquete ffmpeg versión 5.1.3 (o posterior) en la máquina host.

Actualización de la máquina host

Se recomienda encarecidamente actualizar la RAM de la máquina host CTS a 128 GB y el disco duro a 256 GB. Es necesario dar cabida al mayor número de casos de prueba CTS y un aumento en la reserva de espacio de almacenamiento dinámico de Java en tradefed.

BAsD y AAPT2

Antes de ejecutar CTS, asegúrese de haber instalado las versiones recientes de Android Debug Bridge (adb) y Android Asset Packaging Tool (AAPT2) y de haber agregado la ubicación de esas herramientas a la ruta del sistema de su máquina.

Para instalar ADB y AAPT2, descargue las últimas herramientas de plataforma SDK de Android y herramientas de compilación de SDK de Android desde SDK Manager de Android Studio o desde la herramienta de línea de comandos sdkmanager .

Asegúrese de que adb y aapt2 estén en la ruta de su sistema. El siguiente comando supone que has descargado los archivos del paquete en un subdirectorio llamado android-sdk en tu directorio de inicio:

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

Kit de desarrollo Java para Ubuntu

Instale la versión adecuada del Java Development Kit (JDK) .

  • Para Android 11, instale OpenJDK11.
  • Para Android 9 y Android 10, instale OpenJDK9.
  • Para Android 7.0, 7.1, 8.0 y 8.1, instale OpenJDK8.

Para obtener más información, consulte los requisitos de JDK .

Configuración para soporte de Python

Instale virtualenv para su plataforma siguiendo las instrucciones de instalación .

Puede verificar que la instalación se realizó correctamente invocando virtualenv -h .

archivos CTS

Descargue y abra los paquetes CTS de Descargas del conjunto de pruebas de compatibilidad que coincidan con la versión de Android de sus dispositivos y todas las interfaces binarias de aplicaciones (ABI) que admiten sus dispositivos.

Descargue y abra la última versión de los archivos multimedia CTS .

Detección de dispositivos

Siga los pasos para configurar su sistema para detectar su dispositivo .

Limite de memoria

Es posible que desee aumentar la memoria máxima disponible durante la ejecución de la prueba en el script cts-tradefed . Consulte el ejemplo CL para obtener más información.

Configuración del dispositivo Android

Construcciones de usuario

Un dispositivo compatible se define como un dispositivo con una compilación firmada por el usuario/clave de liberación. Su dispositivo debe ejecutar una imagen del sistema basada en la compilación de usuario compatible (Android 4.0 o superior) de Nombres en clave, Etiquetas y Números de compilación .

Primera propiedad de compilación de nivel API

Ciertos requisitos de CTS dependen de la versión con la que se envió originalmente el dispositivo. Por ejemplo, los dispositivos que originalmente se envían con versiones anteriores pueden quedar excluidos de los requisitos del sistema que se aplican a los dispositivos que se envían con versiones posteriores.

Para que esta información esté disponible para CTS, los fabricantes de dispositivos podrían haber definido la propiedad de tiempo de compilación ro.product.first_api_level . El valor de esta propiedad es el primer nivel de API con el que se lanzó comercialmente el dispositivo.

Los fabricantes de dispositivos pueden reutilizar la implementación subyacente común para lanzar un nuevo producto como actualización de un producto existente en el mismo grupo de dispositivos. Opcionalmente, los fabricantes de dispositivos pueden establecer el nivel de API del producto existente en ro.product.first_api_level , de modo que se apliquen los requisitos de actualización para CTS y Treble/VTS.

Los fabricantes de dispositivos pueden definir PRODUCT_SHIPPING_API_LEVEL en su archivo device.mk para establecer esta propiedad, como se muestra en el siguiente ejemplo:

# 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

Primer nivel de API para Android 9 o superior

Para dispositivos lanzados con Android 9 o superior, establezca la propiedad ro.product.first_api_level en un valor válido de Codenames, Tags y Build Numbers .

Primer nivel de API para Android 8.x o inferior

Para dispositivos lanzados con Android 8.x o versiones anteriores, desactive (elimine) la propiedad ro.product.first_api_level para la primera compilación del producto. Para todas las compilaciones posteriores, establezca ro.product.first_api_level en el valor de nivel de API correcto. Esto permite que la propiedad identifique correctamente un producto nuevo y conserva información sobre el primer nivel API del producto. Si la bandera no está configurada, Android asigna Build.VERSION.SDK_INT a ro.product.first_api_level .

Paquetes de cuñas CTS

Android 10 o superior incluye un formato de paquete llamado APEX . Para ejecutar pruebas CTS para las API de administración de APEX (como actualizar a una nueva versión o informar APEX activos), debe preinstalar un paquete CtsShimApex en una partición /system .

La prueba de validación de cuña APEX verifica la implementación de CtsShimApex .

requisitos actualizables de ro.apex.

  • Si la propiedad ro.apex.updatable está configurada en true , se requiere CtsShimApex para todos los dispositivos que admiten la administración de paquetes APEX.

  • Si falta la propiedad ro.apex.updatable o no está configurada, no es necesario preinstalar CtsShimApex en un dispositivo.

La prueba de validación de cuña APEX verifica la implementación de CtsShimApex .

CtsShim preinstala y precarga

A partir de Android 11, CtsShimApex contiene dos aplicaciones prediseñadas (creadas a partir del código fuente de compilación ), que no contienen ningún código excepto el manifiesto. CTS utiliza estas aplicaciones para probar privilegios y permisos.

Si el dispositivo no admite la administración de paquetes APEX (es decir, falta la propiedad ro.apex.updatable o no está configurada), o si el dispositivo ejecuta la versión 10 o inferior, las dos aplicaciones prediseñadas deben estar preinstaladas en el sistema por separado.

Si se admite APEX, las preinstalaciones para la versión adecuada deben colocarse como /system/apex/com.android.apex.cts.shim.apex .

Si se utilizan aplicaciones prediseñadas normales, CtsShim y CtsShimPriv para la versión adecuada se deben colocar como /system/app/CtsShimPrebuilt.apk y /system/priv-app/CtsShimPrivPrebuilt.apk respectivamente.

La siguiente tabla enumera las preinstalaciones y precargas disponibles para cada versión y arquitectura del dispositivo.

Versión del dispositivo Preinstalar
(si es compatible con APEX)
Precarga
BRAZO x86 BRAZO x86
Androide 14 android14-liberación del brazo lanzamiento de android14-x86 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

androide 13 android13-liberación del brazo lanzamiento de android13-x86 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

androide 12 android12-liberación del brazo lanzamiento de android12-x86 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

androide 11 android11-liberación del brazo android11-x86-lanzamiento android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

androide 10 lanzamiento de android10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O y O-MR1 N / A N / A arm-CtsShim.apk

brazo-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Para pasar las pruebas, cargue previamente las aplicaciones en los directorios apropiados en la imagen del sistema sin volver a firmar las aplicaciones.

Subprograma de muestra

Android 9 introdujo las API Open Mobile. Para los dispositivos que informan más de un elemento seguro, CTS agrega casos de prueba para validar el comportamiento de las API de Open Mobile. Estos casos de prueba requieren la instalación única de un subprograma de muestra en el elemento seguro integrado (eSE) del DUT o en la tarjeta SIM utilizada por el DUT. El subprograma de muestra eSE y el subprograma de muestra SIM se pueden encontrar en AOSP.

Consulte Prueba CTS para elemento seguro para obtener información más detallada sobre los casos de prueba de Open Mobile API y los casos de prueba de control de acceso.

Requisitos de almacenamiento

Las pruebas de estrés de medios CTS requieren que los videoclips estén en un almacenamiento externo ( /sdcard ). La mayoría de los clips son de Big Buck Bunny , cuyo copyright pertenece a la Blender Foundation bajo la licencia Creative Commons Attribution 3.0 .

El espacio requerido depende de la resolución máxima de reproducción de video admitida por el dispositivo. Consulte la sección 5 en el documento Definición de compatibilidad de Android para conocer la versión de plataforma de las resoluciones requeridas.

Estos son los requisitos de almacenamiento por resolución máxima de reproducción de video:

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

Pantalla y almacenamiento

  • Cualquier dispositivo que no tenga una pantalla integrada debe estar conectado a una pantalla.
  • Si el dispositivo tiene una ranura para tarjeta de memoria, conecte una tarjeta SD vacía. Utilice una tarjeta SD que admita bus de velocidad ultraalta (UHS) con capacidad SDHC o SDXC o una con al menos clase de velocidad 10 o superior para garantizar que pueda pasar el CTS.

  • Si el dispositivo tiene ranuras para tarjetas SIM, conecte una tarjeta SIM activada en cada ranura. Si el dispositivo admite SMS, cada tarjeta SIM debe tener su propio campo de número completo. Para dispositivos con Android 12 o superior, todas las tarjetas SIM deben admitir el almacenamiento de números de marcación abreviada (ADN). Las tarjetas GSM y USIM con archivo dedicado a telecomunicaciones (DF Telecom ) cumplen este requisito.

Desarrollador UICC

Para ejecutar pruebas de API del operador CTS, el dispositivo debe usar una tarjeta SIM con privilegios de operador CTS que cumpla con los requisitos especificados en Preparación de la UICC .

Configuración del dispositivo Android

  1. Restablecer los datos de fábrica del dispositivo: Configuración > Copia de seguridad y restablecer > Restablecer datos de fábrica .

  2. Configure el idioma de su dispositivo en inglés ( Estados Unidos ): Configuración > Idioma y entrada > Idioma .

  3. Si el dispositivo admite la personalización de fuentes predeterminadas, configure la familia de fuentes sans-serif predeterminada en Roboto (la familia de fuentes sans-serif predeterminada utilizada en las compilaciones AOSP).

  4. Active la configuración de ubicación si hay una función de GPS o Wi-Fi/red celular en el dispositivo: Configuración > Ubicación > Activado .

  5. Conéctese a una red Wi-Fi que admita IPv6, pueda tratar el DUT como un cliente aislado (consulte Entorno físico arriba) y tenga una conexión a Internet: Configuración > Wi-Fi .

  6. Asegúrese de que no haya ningún patrón de bloqueo ni contraseña configurados en el dispositivo: Configuración > Seguridad > Bloqueo de pantalla > Ninguno .

  7. Habilite la depuración de USB en su dispositivo: Configuración > Opciones de desarrollador > Depuración de USB .

  8. Configure la hora en formato de 12 horas: Configuración > Fecha y hora > Usar formato de 24 horas > Desactivado .

  9. Configure el dispositivo para que permanezca despierto: Configuración > Opciones de desarrollador > Permanecer despierto > Activado .

  10. Solo en Android 5.x y 4.4.x , configure el dispositivo para permitir ubicaciones simuladas: Configuración > Opciones de desarrollador > Permitir ubicaciones simuladas > Activado .

  11. En Android 4.2 o superior , desactive la verificación de aplicaciones USB: Configuración > Opciones de desarrollador > Verificar aplicaciones a través de USB > Desactivado .

  12. En Android 13 o superior , configure el dispositivo para permitir módem simulado: Configuración > Opciones de desarrollador > Permitir módem simulado > Activado .

  13. Inicie el navegador y cierre cualquier pantalla de inicio/configuración.

  14. Conecte la máquina de escritorio que se utilizará para probar el dispositivo con un cable USB.

  15. Antes de ejecutar CTS, configure Roboto2 como fuente sans-serif utilizando una configuración accesible para el usuario (no oculta).

Instalación de archivos

Instale y configure aplicaciones auxiliares en el dispositivo.

  1. Configure su dispositivo de acuerdo con su versión CTS:

    • Versiones de CTS 2.1 R2 a 4.2 R4: configure su dispositivo (o emulador) para ejecutar las pruebas de accesibilidad con: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      En el dispositivo, habilite la delegación: Configuración > Accesibilidad > Accesibilidad > Delegar servicio de accesibilidad .

    • Versiones de CTS 6.x o inferiores: en dispositivos que declaran android.software.device_admin , configure su dispositivo para ejecutar la prueba de administración del dispositivo usando: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      En Configuración > Seguridad > Seleccionar administradores de dispositivos , habilite los dos administradores de dispositivos android.deviceadmin.cts.CtsDeviceAdminReceiver* . Asegúrese de que android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver y cualquier otro administrador de dispositivo precargado permanezcan deshabilitados.

  2. Copie los archivos multimedia CTS al dispositivo de la siguiente manera:

    1. Navegue ( cd ) hasta la ruta donde se descargan y descomprimen los archivos multimedia.
    2. Cambie los permisos del archivo: chmod u+x copy_media.sh

    3. Copie los archivos necesarios:

      • Para copiar clips con una resolución de hasta 720x480, ejecute:

        ./copy_media.sh 720x480
        
      • Si no está seguro de la resolución máxima, copie todos los archivos:

        ./copy_media.sh all
        
      • Si hay varios dispositivos en adb, agregue la opción de serie ( -s ) de un dispositivo específico al final. Por ejemplo, para copiar hasta 720x480 al dispositivo con el número de serie 1234567, ejecute:

        ./copy_media.sh 720x480 -s 1234567