Configuración de CTS

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

Entorno físico

balizas Bluetooth LE

Si el dispositivo bajo prueba (DUT) es compatible con Bluetooth LE, coloque al menos tres balizas Bluetooth LE a menos de 5 metros del DUT para la prueba 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 simulan balizas BLE.

Cámaras

Cuando ejecute el CTS de la cámara, use condiciones de iluminación normales con un gráfico de patrón de prueba (como un patrón de tablero de ajedrez). Coloque el gráfico de patrón de prueba de acuerdo con la distancia de enfoque mínima del dispositivo bajo prueba 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 el máximo de fotogramas por segundo (FPS) configurados 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 itera sobre 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 dispositivo bajo prueba es compatible con la función de sistema de posicionamiento global/sistema de navegación global por satélite (GPS/GNSS), proporcione una señal GPS/GNSS al dispositivo bajo prueba con 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 de CTS requieren una red Wi-Fi que admita IPv6, tenga una conexión a Internet y pueda tratar el DUT como un cliente aislado. Un cliente aislado hace referencia a una configuración en la que el dispositivo bajo prueba no tiene visibilidad de los mensajes de difusión/multired en esa subred. Esto ocurre con una configuración de punto de acceso Wi-Fi o al ejecutar el DUT en una subred aislada sin que se conecten otros dispositivos.

Si no tiene acceso a una red IPv6 nativa, una red de operador IPv6 o una VPN para pasar algunas pruebas según IPv6, puede usar un punto de acceso Wi-Fi y un túnel IPv6. Consulte la lista de agentes de túneles IPv6 de Wikipedia.

RTT wifi

Android incluye la API RTT de Wi-Fi para una capacidad de tiempo de ida y vuelta (RTT) de Wi-Fi. Esto permite que los dispositivos midan 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 compatibles con 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 dentro de los 40 pies del dispositivo bajo prueba. Un punto de acceso suele ser suficiente.

Configuración de la máquina de escritorio

ADB y AAPT

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

Para instalar ADB, descargue el paquete Android SDK Tools para su sistema operativo, ábralo y siga las instrucciones en el archivo README incluido. Para obtener información sobre la solución de problemas, consulte Instalación de las herramientas SDK independientes .

Asegúrese de que adb y aapt estén en la ruta de su sistema. El siguiente comando asume que ha abierto el archivo del paquete en su directorio de inicio:

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

Kit de desarrollo de Java para Ubuntu

Instale la versión adecuada de 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 compatibilidad con Python

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

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

archivos CTS

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

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

Detección de dispositivos

Siga el paso 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-tradfed . Consulte el ejemplo CL para obtener más información.

Configuración del dispositivo Android

Compilaciones de usuario

Un dispositivo compatible se define como un dispositivo con una compilación firmada por el usuario/clave de versión. Su dispositivo debe ejecutar una imagen del sistema basada en la compilación de usuario compatible conocida (Android 4.0 o superior) de Codenames, Tags y Build Numbers .

Propiedad de compilación del primer nivel de API

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

Para que esta información esté disponible para CTS, los fabricantes de dispositivos podrían haber definido la propiedad de tiempo de 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 una actualización de un producto existente en el mismo grupo de dispositivos. Los fabricantes de dispositivos pueden configurar opcionalmente 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 agregar PRODUCT_PROPERTY_OVERRIDES en su archivo device.mk para establecer esta propiedad, como se muestra en el siguiente ejemplo:

#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

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 en Android 8.x o anterior, 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 nuevo producto y conserva la información sobre el primer nivel de API del producto. Si la marca no está configurada, Android asigna Build.VERSION.SDK_INT a ro.product.first_api_level .

Paquetes de calzas CTS

Android 10 o superior incluye un formato de paquete llamado APEX . Para ejecutar pruebas CTS para 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 APEX shim verifica la implementación de CtsShimApex .

ro.apex.updatable

  • Si la propiedad ro.apex.updatable se establece en true , se requiere CtsShimApex para todos los dispositivos compatibles con 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 APEX shim verifica la implementación de CtsShimApex .

CtsShim y precargas de CtsShim

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

Si el dispositivo no es compatible con 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 anterior, las dos aplicaciones prediseñadas deben estar preinstaladas en el sistema por separado.

Versión del dispositivo Preinstalar
(si APEX es compatible)
Precarga
BRAZO x86 BRAZO x86
androide 12 android12-brazo-liberación
en /system/apex/com.android.apex.cts.shim.apex
Android12-x86-lanzamiento
en /system/apex/com.android.apex.cts.shim.apex
android12-brazo-CtsShim.apk
en /system/app/CtsShimPrebuilt.apk

android12-brazo-CtsShimPriv.apk
en /system/priv-app/CtsShimPrivPrebuilt.apk

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

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

androide 11 android11-brazo-liberación
en /system/apex/com.android.apex.cts.shim.apex
android11-x86-lanzamiento
en /system/apex/com.android.apex.cts.shim.apex
android11-brazo-CtsShim.apk
en /system/app/CtsShimPrebuilt.apk

android11-brazo-CtsShimPriv.apk
en /system/priv-app/CtsShimPrivPrebuilt.apk

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

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

androide 10 Android10-lanzamiento
en /system/apex/com.android.apex.cts.shim.apex
android10-brazo-CtsShim.apk
en /system/app/CtsShimPrebuilt.apk

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

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

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

Android 9, O y O-MR1 N / A N / A brazo-CtsShim.apk
en /system/app/CtsShimPrebuilt.apk

brazo-CtsShimPriv.apk
en /system/priv-app/CtsShimPrivPrebuilt.apk

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

x86-CtsShimPriv.apk
en /system/priv-app/CtsShimPrivPrebuilt.apk

Para pasar las pruebas, precargue 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 móviles abiertas. Para dispositivos que reportan más de un elemento seguro, CTS agrega casos de prueba para validar el comportamiento de las API móviles abiertas. 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 applet de muestra eSE y el applet 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 de CTS requieren que los clips de video estén en un almacenamiento externo ( /sdcard ). La mayoría de los clips son de Big Buck Bunny , que tiene derechos de autor de 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 la plataforma de las resoluciones requeridas.

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

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

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 ultra alta velocidad (UHS) con capacidad SDHC o SDXC o una con al menos clase de velocidad 10 o superior para asegurarse de que puede pasar el CTS.

  • Si el dispositivo tiene ranuras para tarjetas SIM, inserte 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 ser compatibles con el almacenamiento de números de marcación abreviada (ADN). Las tarjetas GSM y USIM con el archivo dedicado de telecomunicaciones (DF Telecom ) cumplen este requisito.

Desarrollador UICC

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

Configuración de dispositivos Android

  1. Restablece los datos de fábrica del dispositivo: Ajustes > Copia de seguridad y restablecimiento > Restablecimiento de 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 red GPS o Wi-Fi/celular en el dispositivo: Configuración > Ubicación > Activar .

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

  6. Asegúrese de que no se haya establecido ningún patrón de bloqueo o contraseña 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 > Mantenerse 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. Inicie el navegador y descarte cualquier pantalla de inicio/configuración.

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

  14. Antes de ejecutar CTS, configure Roboto2 como la 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 según su versión de CTS:

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

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

    • Versiones de CTS 6.x o anteriores: en dispositivos que declaran android.software.device_admin , configure su dispositivo para ejecutar la prueba de administración de dispositivos 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 dispositivos precargado permanezcan deshabilitados.

  2. Copie los archivos multimedia CTS en el 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 hasta una resolución de 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 número de serie 1234567, ejecute:

        ./copy_media.sh 720x480 -s 1234567