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
.
Para los dispositivos que admiten la simultaneidad de Wi-Fi STA/STA , se requieren varias redes Wi-Fi (al menos 2). Para aprobar CTS, las redes Wi-Fi deben funcionar en diferentes bandas con diferentes SSID o en el mismo SSID con diferentes BSSID.
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 entrue
, se requiereCtsShimApex
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 preinstalarCtsShimApex
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-x86-CtsShim.apk |
androide 13 | android13-liberación del brazo | lanzamiento de android13-x86 | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
androide 12 | android12-liberación del brazo | lanzamiento de android12-x86 | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
androide 11 | android11-liberación del brazo | android11-x86-lanzamiento | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
androide 10 | lanzamiento de android10 | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
Android 9, O y O-MR1 | N / A | N / A | arm-CtsShim.apk | x86-CtsShim.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
Restablecer los datos de fábrica del dispositivo: Configuración > Copia de seguridad y restablecer > Restablecer datos de fábrica .
Configure el idioma de su dispositivo en inglés ( Estados Unidos ): Configuración > Idioma y entrada > Idioma .
Si el dispositivo admite la personalización de fuentes predeterminadas, configure la familia de fuentes
sans-serif
predeterminada enRoboto
(la familia de fuentessans-serif
predeterminada utilizada en las compilaciones AOSP).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 .
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 .
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 .
Habilite la depuración de USB en su dispositivo: Configuración > Opciones de desarrollador > Depuración de USB .
Configure la hora en formato de 12 horas: Configuración > Fecha y hora > Usar formato de 24 horas > Desactivado .
Configure el dispositivo para que permanezca despierto: Configuración > Opciones de desarrollador > Permanecer despierto > Activado .
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 .
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 .
En Android 13 o superior , configure el dispositivo para permitir módem simulado: Configuración > Opciones de desarrollador > Permitir módem simulado > Activado .
Inicie el navegador y cierre cualquier pantalla de inicio/configuración.
Conecte la máquina de escritorio que se utilizará para probar el dispositivo con un cable USB.
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.
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 queandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
y cualquier otro administrador de dispositivo precargado permanezcan deshabilitados.
Copie los archivos multimedia CTS al dispositivo de la siguiente manera:
- Navegue (
cd
) hasta la ruta donde se descargan y descomprimen los archivos multimedia. Cambie los permisos del archivo:
chmod u+x copy_media.sh
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
- Navegue (