Esta página contém instruções para configurar e executar testes do Android 16 QPR2 e Android 17 no lado do host do CTS Verifier (CTS-V). Há dois tipos de testes do lado do host: testes de vários dispositivos (introduzidos antes do Android 17) e testes interativos (novidade no 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).
Além dos novos testes interativos, convertemos a precisão de alcance manual e os testes de telecomunicações em testes multidevice do lado do host. Agora, 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. Os testes em vários dispositivos exigem configuração adicional.
- Verifique se seu computador atende aos requisitos do sistema 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 precisa ser 3.11 ou mais recente. Para determinar a versão do Python, execute
python3 --version. Se a versão for inferior a 3.11, instale a versão oficial mais recente do Python. Para mais informações, consulte a seção Downloads dopython.org. - Alguns testes exigem que o host tenha o módulo Python
venv. Em sistemas Debian e Ubuntu, esse módulo pode não ser instalado por padrão. Para determinar se a sua versão do Python tem o módulovenv, executepython3 -m venv venv. Se esse comando falhar, uma mensagem de erro será exibida. Siga as instruções para instalar o pacotepython3.x-venv.
- A versão do Python precisa ser 3.11 ou mais recente. Para determinar a versão do Python, execute
Se você executar apenas os testes interativos do lado do host, acesse Executar testes do lado do host. No entanto, se você quiser executar testes em vários dispositivos, vá para Configurar testes em vários dispositivos no host.
Configurar testes multidevice do lado do host
Siga estas etapas para configurar testes multidisco no host:
- Verifique se seu computador atende aos requisitos do sistema 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 precisa ser 3.11 ou mais recente. Para determinar a versão do Python, execute
python3 --version. Se a versão for inferior a 3.11, instale a versão oficial mais recente do Python. Para mais informações, consulte a seção Downloads dopython.org. - Alguns testes exigem que o host tenha o módulo Python
venv. Em sistemas Debian e Ubuntu, esse módulo pode não ser instalado por padrão. Para determinar se a sua versão do Python tem o módulovenv, executepython3 -m venv venv. Se esse comando falhar, uma mensagem de erro será exibida. Siga as instruções para instalar o pacotepython3.x-venv.
- A versão do Python precisa ser 3.11 ou mais recente. Para determinar a versão do Python, execute
Prepare dois DUTs correspondentes, cada um com o CTS-V configurado.
- Para informações sobre como configurar um DUT, consulte Configurar o DUT.
- Para instruções sobre como configurar o 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 em 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 (em inglês).
- No DUT, navegue até o app Configurações.
- Ative a NFC.
Posicione o chip de NFC:
Para smartphones, posicione o leitor NFC do DUT conforme mostrado na Figura 1:

Figura 1. Posicionamento do chip de NFC.
Para outros tipos de dispositivo, posicione o chip perto da antena NFC.
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 (AP) (CtsWifiConnectionTests) testam a conectividade entre um DUT e um AP. É 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 o modelo JTP-SR101. Compre a 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 18676993556Conecte 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 um 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 cerca de 20 cm de distância.
Altamente recomendado: 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 a ela. 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 os OEMs testem ambas as versões depuráveis (userdebug ou eng) e não depuráveis (user) 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 suporte ao recurso de sincronização de permissões do CDM.
Os testes precisam ser aprovados em builds depuráveis sem exceção.
Pré-requisitos para testar em builds não depuráveis
Se você não for isento, verifique se atende aos seguintes pré-requisitos.
O canal seguro usa o 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 precisa ser assinado com uma chave de lançamento, não uma chave de desenvolvimento.
- O carregador de inicialização do dispositivo está bloqueado. Para instruções detalhadas, consulte como bloquear o carregador de inicialização.
- Os níveis de patch do SO, da inicialização e do fornecedor da chave estão dentro de 12 meses. Não use uma versão mais antiga que 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, é possível 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 será exibida.
No console do host CTS-V, use o comando a seguir para executar testes em vários dispositivos usando 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 falharam.
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 seguinte comando 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 falharam.
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 falharam.
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 das seguintes 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 suas configurações locais de SSH. 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 Power Delivery (PD)
- Uma porta downstream padrão (SDP) de carregamento de bateria USB 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 downstream 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 um host ou acessório USB quando o comando de teste for executado.
Execute o seguinte 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 com 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 "Nenhuma 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, eles não poderão acessar a placa NFC PN532.
Para corrigir esse problema, identifique o caminho serial usado pela placa NFC PN532 no
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 uma das seguintes ações:
Defina o número de série correto do DUT no comando de teste do host usando a flag
-s.Desconecte todos os dispositivos que não são DUT do host.
O caso de teste test_permissions_sync do CDM foi 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.