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 entrue
, se requiereCtsShimApex
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 preinstalarCtsShimApex
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 | android12-x86-CtsShim.apk en /system/app/CtsShimPrebuilt.apk android12-x86-CtsShimPriv.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 | android11-x86-CtsShim.apk en /system/app/CtsShimPrebuilt.apk android11-x86-CtsShimPriv.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 | android10-x86-CtsShim.apk en /system/app/CtsShimPrebuilt.apk android10-x86-CtsShimPriv.apk | |
Android 9, O y O-MR1 | N / A | N / A | brazo-CtsShim.apk en /system/app/CtsShimPrebuilt.apk brazo-CtsShimPriv.apk | x86-CtsShim.apk en /system/app/CtsShimPrebuilt.apk x86-CtsShimPriv.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
Restablece los datos de fábrica del dispositivo: Ajustes > Copia de seguridad y restablecimiento > Restablecimiento de 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 red GPS o Wi-Fi/celular en el dispositivo: Configuración > Ubicación > Activar .
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 .
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 .
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 > Mantenerse 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 .
Inicie el navegador y descarte cualquier pantalla de inicio/configuración.
Conecte la máquina de escritorio que se usará para probar el dispositivo con un cable USB.
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.
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 queandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
y cualquier otro administrador de dispositivos precargado permanezcan deshabilitados.
Copie los archivos multimedia CTS en el 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 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
- Navegue (