Ejecuta pruebas del verificador de CTS del host

En esta página, se incluyen instrucciones para configurar y ejecutar las pruebas de Android 16 QPR2 y Android 17 del lado del host del Verificador del CTS (CTS-V). Existen dos tipos de pruebas del lado del host: las pruebas multidispositivo (introducidas antes de Android 17) y las pruebas interactivas (nuevas en Android 17):

  • Las pruebas multidispositivo son pruebas completamente automatizadas.
  • Las pruebas interactivas son pruebas semiautomatizadas que requieren que realices algunos pasos manuales en el dispositivo que se está probando (DUT).

Además de las nuevas pruebas interactivas, las pruebas manuales de precisión de medición de distancia y de telecomunicaciones ahora son pruebas multidispositivo del host, y se requieren pruebas de conexión Wi-Fi.

Cómo configurar pruebas del host

Sigue estos pasos para configurar las pruebas del host (las pruebas de varios dispositivos requieren una configuración adicional):

  1. Verifica que tu máquina de escritorio cumpla con los requisitos del sistema operativo para CTS.

  2. Sigue los pasos 2 y 5 de Instala el software de escritorio para instalar y verificar que adb, AAPT2 y Python estén instalados correctamente en tu escritorio.

    • La versión de Python para computadoras de escritorio debe ser 3.11 o posterior. Para determinar la versión de Python, ejecuta python3 --version. Si la versión es anterior a la 3.11, instala la versión oficial más reciente de Python. Para obtener más información, consulta la sección Descargas de python.org.

    • Algunas pruebas requieren que el host tenga el módulo venv de Python. En los sistemas Debian y Ubuntu, es posible que este módulo no esté instalado de forma predeterminada. Para determinar si la versión de Python para computadoras tiene el módulo venv, ejecuta python3 -m venv venv. Si este comando falla, se muestra un mensaje de error. Sigue las indicaciones para instalar el paquete python3.x-venv.

Si solo ejecutas las pruebas interactivas del host, continúa con Ejecuta pruebas del host. Sin embargo, si quieres ejecutar pruebas de varios dispositivos, consulta Cómo configurar pruebas de varios dispositivos del lado del host.

Configura pruebas de varios dispositivos del lado del host

Sigue estos pasos para configurar las pruebas de varios dispositivos del lado del host:

  1. Verifica que tu máquina de escritorio cumpla con los requisitos del sistema operativo para CTS.

  2. Sigue los pasos 2 y 5 de Instala el software de escritorio para instalar y verificar que adb, AAPT2 y Python estén instalados correctamente en tu escritorio.

    • La versión de Python para computadoras de escritorio debe ser 3.11 o posterior. Para determinar la versión de Python, ejecuta python3 --version. Si la versión es anterior a la 3.11, instala la versión oficial más reciente de Python. Para obtener más información, consulta la sección Descargas de python.org.

      • Algunas pruebas requieren que el host tenga el módulo venv de Python. En los sistemas Debian y Ubuntu, es posible que este módulo no esté instalado de forma predeterminada. Para determinar si la versión de Python para computadoras tiene el módulo venv, ejecuta python3 -m venv venv. Si este comando falla, se muestra un mensaje de error. Sigue las indicaciones para instalar el paquete python3.x-venv.
  3. Prepara dos DUT que coincidan, cada uno con la configuración de CTS-V.

    • Para obtener detalles sobre cómo configurar un DUT, consulta Configura el DUT.
    • Para obtener detalles sobre cómo configurar el CTS-V, consulta Configuración.
  4. Ve a la sección de configuración para tu tipo de prueba:

Si tu prueba no está en esta lista, continúa con el paso para configurar pruebas estándar de dos dispositivos.

Configura pruebas de NFC

Las pruebas de NFC usan un DUT y un chip NFC PN532.

Para configurar las pruebas de NFC, haz lo siguiente:

  1. Compra un chip NFC PN532. Te recomendamos el PN532 todo en uno.
  2. En el DUT, navega a la app de Configuración.
  3. Habilita la NFC.
  4. Coloca el chip NFC de la siguiente manera:

    • En el caso de los teléfonos, coloca el lector de NFC del DUT como se muestra en la Figura 1:

      Posicionamiento del chip NFC

      Figura 1: Posicionamiento del chip NFC

    • Para otros tipos de dispositivos, coloca el chip junto a la antena NFC del dispositivo.

  5. Conecta el chip NFC PN532 a tu estación de trabajo de pruebas con un cable USB.

Configura pruebas de conexión de AP de Wi-Fi

Las pruebas de conectividad del punto de acceso Wi-Fi (AP) (CtsWifiConnectionTests) prueban la conectividad entre un DUT y un AP. Puedes configurar estas pruebas de las siguientes dos maneras:

  • Opción 1: Usa una red Wi-Fi existente que hayas configurado para CTS-V.
  • Opción 2: Configura un punto de acceso (AP) programable.

Para Android 17, recomendamos la opción 2, pero no es obligatoria. En las siguientes dos secciones, se explica cada opción.

Opción 1: Usa una red Wi-Fi existente que hayas configurado para CTS-V

La opción 1 requiere un DUT de Android dentro del área de cobertura de la red Wi-Fi. Si el DUT está en una caja de protección y no puede conectarse a la red Wi-Fi, quítalo de la caja.

Opción 2: Configura un AP programable

Para configurar un AP programable para las pruebas de conexión Wi-Fi, sigue estos pasos:

  1. Compra el AP Banana Pi R3 y configúralo. Para obtener información sobre cómo comprar y configurar el AP Banana Pi R3, consulta Configura el AP Banana Pi BPI-R3.

  2. (Opcional) Si no tienes una caja de protección, te recomendamos la caja de protección JTP-SR101. Compra esta caja con la siguiente información:

    Dong Guan Zheng Sheng Electronics Technology Co., LTD

    Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, China

    Contacto: Forest Pan

    Correo electrónico: forest.pan@jtpmak.cn

    Teléfono (China): +86 18676993556

  3. Conecta el DUT y el AP al host, y colócalos en una caja de protección de RF. El DUT y el AP deben estar separados por al menos 10 cm. En la figura 2, se muestra esta configuración:

    DUT y AP en la caja de protección

    Figura 2: DUT y AP en la caja de protección

  4. Usa SSH para verificar que se pueda acceder al AP desde el host.

Configura pruebas de exactitud de la medición de distancia

Para configurar las pruebas de precisión de la medición de distancia, haz lo siguiente:

  1. Coloca dos DUTs de Android que coincidan a 1 metro de distancia, a la misma altura, con una línea de visión directa y con la parte posterior de cada dispositivo enfrentada. En la Figura 3, se muestra esta orientación:

    Orientación del dispositivo

    Figura 3: La orientación del dispositivo.

  2. Conecta ambos dispositivos a la máquina de escritorio con cables USB.

Configura pruebas estándar de dos dispositivos

Para la configuración predeterminada de dos dispositivos, haz lo siguiente:

  1. Coloca dos DUTs de Android que coincidan a una distancia de aproximadamente 20 cm.

  2. Muy recomendable: Coloca ambos dispositivos en una caja de protección. La caja de protección mejora la estabilidad de las pruebas y facilita la depuración de las fallas.

  3. Para las pruebas de telecomunicaciones, cada DUT debe tener una tarjeta SIM y señal móvil. Si los DUT están en una caja de protección, la señal móvil debe acoplarse a la caja. De lo contrario, saca los dispositivos de la caja de protección.

  4. Opcional: Configura un rastreador de OTA para la depuración de Wi-Fi.

Configura pruebas de CDM

El caso de prueba test_permissions_sync tiene un comportamiento diferente según el tipo de compilación de los dispositivos en los que se ejecuta la prueba. Es fundamental que los OEM prueben ambas compilaciones, depurables (userdebug o eng) y no depurables (user), y que las pruebas se aprueben en ambos casos.

Exención

La cláusula del CDD para la implementación de la API de sincronización de permisos solo requiere que pueda transferir datos entre dispositivos a través de un canal seguro. Dado que la implementación del canal seguro no es un requisito de cumplimiento de la CDD, esta prueba se puede omitir en las compilaciones no depurables (de usuario), pero solo si quieres inhabilitar la función de sincronización de permisos del CDM.

Las pruebas deben aprobarse en compilaciones depurables sin excepción.

Requisitos previos para realizar pruebas en compilaciones no depurables

Si no estás exento, verifica que cumplas con los siguientes requisitos previos.

El canal seguro usa AVF (AttestationVerificationFramework) para verificar la confiabilidad del hardware. Las certificaciones generadas por ambas partes contienen varios datos sobre sí mismas para verificar que no haya habido ninguna alteración no autorizada en su sistema. AVF verifica los siguientes estados durante el proceso de verificación:

  • El dispositivo tiene acceso a Internet.

  • El dispositivo usa el inicio verificado y la compilación está firmada con una clave de lanzamiento (no una clave de desarrollo).

  • El dispositivo tiene el bootloader bloqueado. Para obtener más detalles, consulta Cómo bloquear el bootloader.

  • Los niveles de parches del SO, del inicio de claves y del proveedor de claves están dentro de los 12 meses. No uses una compilación que tenga más de un año.

  • La certificación del dispositivo está respaldada por uno de los certificados raíz aprobados por el proveedor. Especifica tus certificados raíz de confianza en la superposición de recursos vendor_required_attestation_certificates.xml.

Ejecuta pruebas del host

Algunas pruebas multidispositivo, como las de NFC, requieren una configuración adicional. En el caso de las pruebas que requieren una configuración adicional, cada prueba se ejecuta por separado. En el caso de las pruebas que no requieren configuración adicional, puedes ejecutarlas en un grupo.

  1. En tu estación de trabajo de prueba, inicia la consola de cts-v-host desde el directorio en el que se descomprimió el paquete ZIP de CTS-V:

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. En la app de CTS-V del DUT, haz clic en Host-side Tests. En la Figura 4, se muestran las pruebas del host en la app de CTS-V:

    Pruebas del host en la app de CTS-V

    Figura 4: Pruebas del host en la app de CTS-V

    Se muestra una lista de módulos de prueba de varios dispositivos del host.

  3. En la consola del host de CTS-V, usa el siguiente comando para ejecutar pruebas de varios dispositivos que usen una configuración estándar de dos dispositivos:

    run cts-v-host-multidevice-default
    

    Los resultados aparecen debajo de cada módulo de prueba en la app de CTS-V en el DUT. Las pruebas marcadas en verde se aprobaron, mientras que las marcadas en rojo fallaron.

    En la figura 5, se muestran ejemplos de resultados de las pruebas de CtsCompanionDeviceManager:

    Resultados de las pruebas de varios dispositivos del host en la app de CTS-V

    Figura 5: Resultados de las pruebas de varios dispositivos del host en la app de CTS-V

  4. En la consola del host de CTS-V, usa el siguiente comando para ejecutar las pruebas interactivas:

    run cts-v-host-interactive
    

    Los resultados aparecen debajo de cada módulo de prueba en la app de CTS-V en el DUT. Las pruebas marcadas en verde se aprobaron, mientras que las marcadas en rojo fallaron.

  5. Para cada prueba que requiera una configuración adicional, ejecútala por separado con el siguiente comando:

    run cts-v-host -m test_module_name
    

    Por ejemplo, para ejecutar las pruebas de NFC, usa este comando:

    run cts-v-host -m CtsNfcHceMultiDeviceTestCases
    

    Los resultados aparecen debajo de cada módulo de prueba en la app de CTS-V en el DUT. Las pruebas marcadas en verde se aprobaron, mientras que las marcadas en rojo fallaron.

Ejecuta pruebas de conexión de AP de Wi-Fi

Puedes ejecutar las pruebas de conexión del AP de Wi-Fi de las siguientes dos maneras:

  • Opción 1: Usa una red Wi-Fi existente que hayas configurado para CTS-V.
  • Opción 2: Configura un AP programable.

Opción 1: Usa una red Wi-Fi existente que hayas configurado para CTS-V

Para ejecutar las pruebas de conexión del AP de Wi-Fi en una red Wi-Fi existente, haz lo siguiente:

  1. Edita el archivo de configuración del banco de pruebas (WifiConnectionTestbed.yaml). Este archivo se encuentra en el directorio en el que se descomprime el CTS-Verifier. Por ejemplo:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Cambia el valor de los campos wifi_ssid y wifi_password por el SSID y la contraseña de la red Wi-Fi. En el siguiente ejemplo, se muestra la ubicación de estos parámetros de configuración:

    TestBeds:
    -   Name: WifiConnectionTestbed
    Controllers:
      AndroidDevice: '*'
    TestParams:
      use_programmable_ap: False
      wifi_ssid: WIFI-SSID
      wifi_password: WIFI-PASSWORD
    
  3. En la consola del host de CTS-V, ejecuta el siguiente comando:

    run cts-v-host -m CtsWifiConnectionTests
    

Opción 2: Ejecuta con un AP programable

Para ejecutar las pruebas de conexión de AP de Wi-Fi en un AP programable, haz lo siguiente:

  1. Edita el archivo de configuración del banco de pruebas (WifiConnectionTestbed.yaml). Este archivo se encuentra en el directorio en el que se descomprime el CTS-Verifier. Por ejemplo:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Cambia el valor de hostname por la dirección IP del AP, según tu configuración de SSH local. Para identificar la dirección IP, consulta Busca la dirección IP del AP. En el siguiente ejemplo, se muestra la ubicación del parámetro de configuración hostname:

    TestBeds:
    -   Name: WifiConnectionTestbed
      Controllers:
        AndroidDevice: '*'
        # Specify settings for the AP.
        OpenWrtDevice:
        -   hostname: AP-IP
          skip_init_reboot: True
      TestParams:
        use_programmable_ap: True
    
  3. En la consola del host de CTS-V, ejecuta el siguiente comando:

    run cts-v-host -m CtsWifiConnectionTests
    

Ejecuta pruebas del lado del host USB

Android 17 incluye pruebas del host de CTS-V de USB que requieren adb por Wi-Fi para ejecutarse.

Algunas pruebas de USB requieren el uso del host de CTS-V para acceder a las APIs del sistema que tienen permisos a los que la app normal de CTS-V no puede acceder. Estas pruebas no están vinculadas y requieren el uso de adb a través de Wi-Fi.

Se requieren los siguientes accesorios Type-C si el DUT admite informar el tipo de BC 1.2 del socio de puerto o los perfiles de alimentación USB en UsbPort.java:

  • Un cargador USB tipo C con Power Delivery (PD)
  • Un puerto de bajada estándar (SDP) de carga de batería USB 1.2 (BC 1.2) Estos puertos se limitan a proporcionar 500 mA o 900 mA al DUT y, por lo general, se encuentran en los puertos USB de los concentradores externos.
  • Un puerto de carga de bajada (CDP) USB BC 1.2 Estos puertos pueden proporcionar 1.5 A de corriente al DUT y datos. Es probable que un puerto tipo C en una laptop o computadora sea un CDP.
  • Un puerto de carga dedicado (DCP) USB BC 1.2 Estos puertos pueden proporcionar 1.5 A de corriente al DUT sin datos. Es probable que el cargador USB tipo C con PD de esta lista sea un DCP.
  1. Conecta el DUT con adb a través de Wi-Fi. Para obtener detalles sobre la configuración, consulta Cómo conectarse a un dispositivo a través de Wi-Fi.

  2. Desconecta físicamente el dispositivo de todas las conexiones USB. La prueba falla si el dispositivo está conectado a un host o accesorio USB cuando se ejecuta el comando de prueba.

  3. Ejecuta el siguiente comando de prueba:

    run cts-v-host -m CtsUsbTypecTestCases
    

Después de las pruebas, los resultados aparecen en la app de CTS-V en Host-side tests, como se muestra en las siguientes figuras:

Pruebas de USB del host en la app de
CTS-V

Figura 6: Pruebas de USB del host en la app de CTS-V

Conjunto de pruebas CtsUsbTypecTestCases en la app de CTS-V de USB del host

Figura 7: Conjunto de pruebas CtsUsbTypecTestCases en la app de CTS-V de USB del host

Soluciona problemas de las pruebas multidispositivo

En esta sección, se explica cómo solucionar problemas habituales.

No se pudo obtener el número de teléfono durante CtsTelecomTest

Si recibes el mensaje de error Failed to get phone number for <serial>, sigue estos pasos:

  1. Verifica que cada DUT tenga una tarjeta SIM instalada.

  2. Si el error persiste, es posible que las tarjetas SIM no admitan la recuperación automática de números, en cuyo caso debes proporcionar de forma explícita los números de teléfono en el comando.

    Por ejemplo, para el DUT 1 (número de serie 17011FDEE0002N, número de teléfono 555-0000) y el DUT 2 (número de serie R3CN90YNAR, número de teléfono 555-1111), agrega los siguientes argumentos al comando run cts-v-host:

    --module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \
    --module-arg CtsTelecomTest:dut_phone_number:555-0000 \
    --module-arg CtsTelecomTest:ref_phone_number:555-1111
    

No hay respuesta del servidor durante CtsMultiDeviceGenericRangingAccuracyTests

Si recibes el siguiente mensaje de error, es posible que la app de prueba se haya detenido o finalizado debido a la administración de procesos en segundo plano específica del OEM en ciertos dispositivos:

mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.

Para resolver este problema, inhabilita las restricciones en segundo plano o agrega a la lista de entidades permitidas los siguientes paquetes:

Paquete Nombre visible
com.google.snippet.uwb CtsUwbSnippetApp
com.google.snippet.ranging CtsRangingSnippetApp
com.google.snippet.bluetooth CtsBluetoothMultiDeviceSnippetApp
com.google.android.mobly.snippet.bundled androidx.multidex.MultDexApplication

Se corrigió el problema por el que no se obtenía respuesta para GetFirmwareVersion durante las pruebas de NFC.

Si recibes el mensaje verify_firmware_version RuntimeError: No response for GetFirmwareVersion mientras ejecutas las pruebas de varios dispositivos, estas no podrán acceder a la placa NFC PN532.

Para solucionar este problema, identifica la ruta de acceso en serie que usa la placa NFC PN532 en tu host, como dev/ttyUSB1, y, luego, especifícala de forma manual con el argumento --module-arg en la consola:

run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1

Cómo corregir el mensaje de error de transacción fallida durante las pruebas de NFC

Si recibes el mensaje Transaction failed, check device logs for more information. para todos los casos de prueba de NFC, es probable que se deba a que el chip NFC del DUT no puede detectar el PN532.

Si tienes varios dispositivos conectados al host y algunos de ellos no tienen un PN532 colocado en la parte superior, es posible que se haya seleccionado el DUT incorrecto. Para obtener más información, consulta Cómo configurar pruebas de NFC.

Para solucionar este problema, realiza una de las siguientes acciones:

  • Establece el número de serie correcto del DUT en el comando de prueba del lado del host con la marca -s.

  • Desconecta todos los dispositivos que no sean DUT del host.

Se ignora el caso de prueba de CDM test_permissions_sync

Si la prueba se ejecuta en dispositivos no depurables, consulta si estás exento. De lo contrario, verifica que ambos dispositivos cumplan con los requisitos previos.