Esta página contém instruções para configurar e executar testes do Android 16 QPR2 e do Android 17 no lado do host do CTS Verifier (CTS-V). Há dois tipos de testes do lado do host: testes multidisco (introduzidos antes do Android 17) e testes interativos (novidade do Android 17):
- Os testes em vários dispositivos são totalmente automatizados.
- Os testes interativos são semiautomatizados e exigem que você execute algumas etapas manuais no dispositivo em teste (DUT, na sigla em inglês).
Além dos novos testes interativos, os testes manuais de precisão de alcance e de telecomunicações agora são testes multidevice do lado do host, e os testes de conexão Wi-Fi são obrigatórios.
Configurar testes do lado do host
Siga estas etapas para configurar testes do lado do host (testes em vários dispositivos exigem configuração adicional):
Verifique se o computador atende aos requisitos do sistema operacional do CTS.
Siga as etapas 2 e 5 de Instalar software para computador para instalar e verificar se o adb, o AAPT2 e o Python estão instalados corretamente no computador.
A versão do Python para computador precisa ser a 3.11 ou mais recente. Para determinar a versão do Python, execute
python3 --version. Se a versão for anterior a 3.11, instale a versão oficial mais recente do Python. Para mais detalhes, consulte a seção "Downloads" depython.org.Alguns testes exigem que o host tenha o módulo
venvdo Python. Em sistemas Debian e Ubuntu, esse módulo pode não ser instalado por padrão. Para determinar se a versão do Python para computador tem o módulovenv, executepython3 -m venv venv. Se esse comando falhar, uma mensagem de erro será mostrada. Siga as instruções para instalar o pacotepython3.x-venv.
Se você executar apenas os testes interativos do lado do host, vá para Executar testes do lado do host. No entanto, se você quiser executar testes em vários dispositivos, acesse Configurar testes em vários dispositivos do lado do host.
Configurar testes multidevice do lado do host
Siga estas etapas para configurar testes multidisco no host:
Verifique se o computador atende aos requisitos do sistema operacional do CTS.
Siga as etapas 2 e 5 de Instalar software para computador para instalar e verificar se o adb, o AAPT2 e o Python estão instalados corretamente no computador.
A versão do Python para computador precisa ser a 3.11 ou mais recente. Para determinar a versão do Python, execute
python3 --version. Se a versão for anterior a 3.11, instale a versão oficial mais recente do Python. Para mais detalhes, consulte a seção "Downloads" depython.org.- Alguns testes exigem que o host tenha o módulo
venvdo Python. Em sistemas Debian e Ubuntu, esse módulo pode não ser instalado por padrão. Para determinar se a versão do Python para computador tem o módulovenv, executepython3 -m venv venv. Se esse comando falhar, uma mensagem de erro será mostrada. Siga as instruções para instalar o pacotepython3.x-venv.
- Alguns testes exigem que o host tenha o módulo
Prepare dois DUTs correspondentes, cada um com o CTS-V configurado.
- Para detalhes sobre como configurar um DUT, consulte Configurar o DUT.
- Para detalhes sobre a configuração do CTS-V, consulte Configuração.
Acesse a seção de configuração do seu tipo de teste:
- Para testes de NFC, acesse Configurar testes de NFC.
- Para testes de conexão de AP Wi-Fi, acesse Configurar testes de conexão de AP Wi-Fi.
- Para os testes de precisão de alcance, acesse Configurar testes de precisão de alcance.
- Para testar o módulo CDM, acesse Configurar testes padrão de dois dispositivos e depois Configurar testes de CDM.
Se o teste não estiver nessa lista, siga para Configurar testes padrão com dois dispositivos.
Configurar testes de NFC
Os testes de NFC usam um DUT e um chip de NFC PN532.
Para configurar testes de NFC:
- Compre um chip de NFC PN532. Recomendamos o All-In-One PN532 (link em inglês).
- No DUT, acesse o app Configurações.
- Ative a NFC.
Posicione o chip de NFC:
Para smartphones, posicione o leitor de NFC do DUT conforme mostrado na Figura 1:

Figura 1. Posicionamento do chip de NFC.
Para outros tipos de dispositivo, posicione o chip ao lado da antena NFC do dispositivo.
Conecte o chip de NFC PN532 à estação de trabalho de teste usando um cabo USB.
Configurar testes de conexão de ponto de acesso Wi-Fi
Os testes de conexão do ponto de acesso Wi-Fi (PA) (CtsWifiConnectionTests) testam a conectividade entre um DUT e um PA. É possível configurar esses testes de duas maneiras:
- Opção 1: use uma rede Wi-Fi que você configurou para o CTS-V.
- Opção 2: configurar um ponto de acesso (AP) programável.
Para o Android 17, recomendamos a opção 2, mas ela não é obrigatória. As duas seções a seguir explicam cada opção.
Opção 1: usar uma rede Wi-Fi configurada para o CTS-V
A opção 1 exige um DUT Android na área de cobertura da rede Wi-Fi. Se o DUT estiver em uma caixa de proteção e não puder se conectar à rede Wi-Fi, remova-o da caixa.
Opção 2: configurar um PA programável
Para configurar um AP programável para os testes de conexão Wi-Fi:
Compre e configure o Banana Pi R3 AP. Para informações sobre como comprar e configurar o ponto de acesso Banana Pi R3, consulte Configurar o ponto de acesso Banana Pi BPI-R3.
(Opcional) Se você não tiver uma caixa de proteção, recomendamos a JTP-SR101. Compre esta caixa usando as seguintes informações:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, China
Contato: Forest Pan
E-mail: forest.pan@jtpmak.cn
Telefone (China): +86 18676993556
Conecte o DUT e o AP ao host e coloque em uma caixa de proteção contra RF. O DUT e o AP precisam estar a pelo menos 10 cm de distância. A Figura 2 mostra essa configuração:

Figura 2. DUT e AP em uma caixa de proteção.
Use o SSH para verificar se o AP está acessível no host.
Configurar testes de precisão de alcance
Para configurar testes de precisão de alcance:
Coloque dois DUTs Android correspondentes a 1 metro de distância, na mesma altura, com linha de visão direta e com a parte de trás de cada dispositivo voltada uma para a outra. A Figura 3 mostra essa orientação:

Figura 3. Orientação do dispositivo.
Conecte os dois dispositivos ao computador desktop com cabos USB.
Configurar testes padrão com dois dispositivos
Para a configuração padrão de dois dispositivos:
Coloque dois DUTs Android correspondentes a aproximadamente 20 cm de distância.
Altamente recomendável: coloque os dois dispositivos em uma caixa de proteção. A caixa de proteção melhora a estabilidade do teste e facilita a depuração de falhas.
Para testes de telecomunicações, cada DUT precisa ter um chip e um sinal de celular. Se os DUTs estiverem em uma caixa de proteção, o sinal celular precisará ser acoplado à caixa. Caso contrário, remova os dispositivos da caixa de proteção.
Opcional: configure um sniffer OTA para depuração de Wi-Fi.
Configurar testes de CDM
O caso de teste test_permissions_sync tem um comportamento diferente dependendo do
tipo de build dos dispositivos em que o teste é executado. É fundamental que ambas as versões depuráveis (userdebug ou eng) e não depuráveis (user) sejam testadas pelos OEMs e que os testes sejam aprovados para as duas.
Isenção
A cláusula de CDD para a implementação da API de sincronização de permissões exige apenas que ela consiga transferir dados entre dispositivos por um canal seguro. Como a implementação do canal seguro não é um requisito de conformidade do CDD, esse teste pode ser ignorado em builds não depuráveis (do usuário), mas apenas se você quiser desativar o recurso de sincronização de permissões do CDM.
Os testes precisam ser aprovados em builds depuráveis sem exceção.
Pré-requisitos para testes em builds não depuráveis
Se você não for isento, verifique se atende aos seguintes pré-requisitos.
O canal seguro usa AVF (AttestationVerificationFramework) para verificar a confiabilidade do hardware. As declarações geradas pelas duas partes contêm
várias informações sobre si mesmas para verificar se não houve
alteração não autorizada no sistema. O AVF verifica os seguintes estados durante o processo de verificação:
O dispositivo tem acesso à Internet
O dispositivo usa a inicialização verificada, e o build é assinado com uma chave de lançamento (não uma chave de desenvolvimento).
O carregador de inicialização do dispositivo está bloqueado. Para mais detalhes, consulte bloquear o carregador de inicialização.
O SO, a inicialização e os níveis de patch do fornecedor de chaves estão dentro de 12 meses. Não use uma build com mais de um ano.
O atestado do dispositivo é respaldado por um dos certificados raiz aprovados pelo fornecedor. Especifique seus certificados raiz confiáveis na sobreposição de recursos
vendor_required_attestation_certificates.xml.
Executar testes do lado do host
Alguns testes em vários dispositivos, como os de NFC, exigem configuração adicional. Para testes que exigem configuração adicional, cada teste é executado separadamente. Para testes que não exigem configuração adicional, você pode executá-los em um grupo.
Na estação de trabalho de teste, inicie o console
cts-v-hostno diretório em que o pacote zip do CTS-V foi descompactado:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedNo app CTS-V no DUT, clique em Testes do lado do host. A Figura 4 mostra os testes do lado do host no app CTS-V:
Figura 4. Testes do lado do host no app CTS-V.
Uma lista de módulos de teste multidimensional do lado do host é exibida.
No console do host CTS-V, use o comando a seguir para executar testes multidispositivo que usam uma configuração padrão de dois dispositivos:
run cts-v-host-multidevice-defaultOs resultados aparecem em cada módulo de teste no app CTS-V no DUT. Os testes marcados em verde foram aprovados, e os marcados em vermelho foram reprovados.
A Figura 5 mostra exemplos de resultados para os testes CtsCompanionDeviceManager:
Figura 5. Resultados de testes multidispositivo do lado do host no app CTS-V.
No console do host CTS-V, use o comando a seguir para executar os testes interativos:
run cts-v-host-interactiveOs resultados aparecem em cada módulo de teste no app CTS-V no DUT. Os testes marcados em verde foram aprovados, e os marcados em vermelho foram reprovados.
Para cada teste que exigiu configuração adicional, execute-o separadamente usando o seguinte comando:
run cts-v-host -m test_module_namePor exemplo, para executar os testes de NFC, use este comando:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesOs resultados aparecem em cada módulo de teste no app CTS-V no DUT. Os testes marcados em verde foram aprovados, e os marcados em vermelho foram reprovados.
Executar testes de conexão do ponto de acesso Wi-Fi
É possível executar os testes de conexão do ponto de acesso Wi-Fi de duas maneiras:
- Opção 1: use uma rede Wi-Fi que você configurou para o CTS-V.
- Opção 2: configurar um PA programável.
Opção 1: usar uma rede Wi-Fi configurada para o CTS-V
Para executar os testes de conexão do ponto de acesso Wi-Fi em uma rede Wi-Fi atual:
Edite o arquivo de configuração do ambiente de teste (
WifiConnectionTestbed.yaml). Esse arquivo está no diretório em que o CTS-Verifier foi descompactado. Exemplo:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlMude o valor dos campos
wifi_ssidewifi_passwordpara o SSID e a senha da rede Wi-Fi. O exemplo a seguir mostra a localização dessas configurações:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDNo console do host CTS-V, execute o seguinte comando:
run cts-v-host -m CtsWifiConnectionTests
Opção 2: executar com um AP programável
Para executar os testes de conexão do PA Wi-Fi em um PA programável:
Edite o arquivo de configuração do ambiente de teste (
WifiConnectionTestbed.yaml). Esse arquivo está no diretório em que o CTS-Verifier foi descompactado. Exemplo:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlMude o valor de
hostnamepara o endereço IP do AP, com base nas configurações de SSH local. Para identificar o endereço IP, consulte Encontrar o endereço IP do AP. O exemplo a seguir mostra a localização da configuraçãohostname:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueNo console do host CTS-V, execute o seguinte comando:
run cts-v-host -m CtsWifiConnectionTests
Executar testes do lado do host USB
O Android 17 inclui testes do lado do host do USB CTS-V que exigem adb por Wi-Fi para
serem executados.
Alguns testes de USB exigem o uso do host CTS-V para acessar SystemAPIs que têm
permissões que o app CTS-V normal não pode acessar. Esses testes são independentes e exigem o uso de adb por Wi-Fi.
Os seguintes acessórios Type-C são necessários se o DUT oferecer suporte a relatórios do tipo BC 1.2 do parceiro de porta ou perfis de energia USB em UsbPort.java:
- Um carregador USB-C com fornecimento de energia (PD)
- Uma porta downstream padrão (SDP) USB para carregamento de bateria 1.2 (BC 1.2). Essas portas são limitadas a fornecer 500 mA ou 900 mA ao DUT e são encontradas com frequência nas portas USB de hubs externos.
- Uma porta de carregamento USB BC 1.2 (CDP). Essas portas podem fornecer 1,5 A de corrente para o DUT e dados. Uma porta Type-C em um laptop ou computador provavelmente é uma CDP.
- Uma porta de carregamento dedicada (DCP) USB BC 1.2. Essas portas podem fornecer 1,5 A de corrente para o DUT sem dados. O carregador USB-C PD nesta lista provavelmente é um DCP.
Conecte o DUT usando
adbpor Wi-Fi. Para mais detalhes sobre a configuração, consulte Conectar-se a um dispositivo por Wi-Fi.Desconecte fisicamente o dispositivo de todas as conexões USB. O teste falha se o dispositivo estiver conectado a qualquer host ou acessório USB quando o comando de teste for executado.
Execute este comando de teste:
run cts-v-host -m CtsUsbTypecTestCases
Após os testes, os resultados aparecem no app CTS-V em Testes do lado do host, conforme mostrado nas figuras a seguir:
Figura 6. Testes USB do lado do host no app CTS-V.
Figura 7. Suíte CtsUsbTypecTestCases no app USB CTS-V do lado do host.
Resolver problemas de testes em vários dispositivos
Esta seção ajuda a resolver problemas comuns.
Falha ao receber o número de telefone durante o CtsTelecomTest
Se você receber a mensagem de erro Failed to get phone number for <serial>,
siga estas etapas:
Verifique se cada DUT tem um chip instalado.
Se o erro persistir, talvez os chips não sejam compatíveis com a recuperação automática de números. Nesse caso, você precisa fornecer explicitamente os números de telefone no comando.
Por exemplo, para DUT 1 (serial
17011FDEE0002N, número de telefone555-0000) e DUT 2 (serialR3CN90YNAR, número de telefone555-1111), adicione os seguintes argumentos ao comandorun 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
Nenhuma resposta do servidor durante CtsMultiDeviceGenericRangingAccuracyTests
Se você receber a seguinte mensagem de erro, o app de teste poderá ser congelado ou encerrado pelo gerenciamento de processos em segundo plano específico do OEM em determinados dispositivos:
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Para resolver esse problema, desative as restrições em segundo plano ou adicione à lista de permissões os seguintes pacotes:
| Pacote | Nome de exibição |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
Correção de "Sem resposta para GetFirmwareVersion durante testes de NFC"
Se você receber a mensagem verify_firmware_version RuntimeError: No response
for GetFirmwareVersion ao executar os testes em vários dispositivos, isso significa que eles não podem
acessar a placa NFC PN532.
Para corrigir esse problema, identifique o caminho serial usado pela placa NFC PN532 no seu
host, como dev/ttyUSB1, e especifique-o manualmente usando o argumento --module-arg
no console:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
Correção da mensagem de erro "Falha na transação" durante os testes de NFC
Se você receber a mensagem Transaction failed, check device logs for more
information. para todos os casos de teste de NFC, provavelmente é porque o chip NFC do DUT
não consegue detectar o PN532.
Se você tiver vários dispositivos conectados ao host e alguns deles não tiverem um PN532 colocado em cima, o DUT errado pode ter sido selecionado. Para mais informações, consulte Configurar testes de NFC.
Para corrigir esse problema, faça o seguinte:
Defina o número de série correto do DUT no comando de teste do lado do host usando a flag
-s.Desconecte todos os dispositivos que não são o DUT do host.
O caso de teste de CDM test_permissions_sync é ignorado
Se o teste estiver sendo executado em dispositivos não depuráveis, verifique se você está isento. Caso contrário, verifique se os dois dispositivos atendem aos pré-requisitos.