Configurar CTS

Para executar o CTS, primeiro prepare seu ambiente físico, sua máquina desktop e o dispositivo Android que você está usando para teste.

Ambiente físico

Faróis Bluetooth LE

Se o dispositivo em teste (DUT) suportar Bluetooth LE, coloque pelo menos três beacons Bluetooth LE a 5 metros do DUT para teste de varredura de Bluetooth LE. Esses beacons não precisam ser configurados nem emitir nada específico, podendo ser de qualquer tipo, incluindo iBeacon, Eddystone ou até mesmo dispositivos que simulem beacons BLE.

Banda ultralarga

Se o DUT suportar banda ultralarga (UWB), outro dispositivo que suporte UWB deverá ser posicionado próximo o suficiente e orientado para não ter antenas e zona morta de rádio. Para os testes de precisão de distância, existem necessidades específicas de posicionamento e orientação. Para obter detalhes de configuração, consulte Requisitos UWB . O teste UWB deve ser executado manualmente, especificando na linha de comando quais dois dispositivos estão separados por um metro. Para obter detalhes sobre a fragmentação necessária para este teste, consulte Fragmentação local .

Câmeras

Ao executar o CTS da câmera, use condições normais de iluminação com um gráfico de padrão de teste (como um padrão xadrez). Coloque o gráfico do padrão de teste de acordo com a distância mínima de foco do DUT para garantir que não fique muito próximo da lente.

Aponte os sensores da câmera para uma cena com iluminação suficiente para permitir que os sensores em teste alcancem e permaneçam nos quadros alvo por segundo (FPS) máximos configurados, conforme especificado em CONTROL_AE_TARGET_FPS_RANGE . Isso se aplica a todos os sensores de câmera relatados por getCameraIdList à medida que o teste itera nos dispositivos listados e mede o desempenho individualmente.

Se o DUT suportar câmeras externas, como webcams USB, conecte uma câmera externa ao executar o CTS. Caso contrário, os testes CTS falharão.

GPS/GNSS

Se o DUT suportar o recurso de sistema de posicionamento global/sistema de navegação global por satélite (GPS/GNSS), forneça um sinal GPS/GNSS ao DUT em um nível de sinal adequado para recepção e cálculo de localização GPS. A parte GPS deve ser compatível com ICD-GPS-200C. Caso contrário, o sinal GPS/GNSS pode ser de qualquer tipo, incluindo um simulador de satélite ou um repetidor GPS/GNSS de sinais externos, ou você pode colocar o DUT próximo o suficiente de uma janela para que possa receber diretamente sinal GPS/GNSS suficiente.

Wi-Fi e IPv6

Os testes CTS exigem uma rede Wi-Fi que suporte IPv4 e IPv6, tenha uma conexão à Internet com DNS funcional para IPv4 e IPv6, suporte IP multicast e possa tratar o DUT como um cliente isolado. Um cliente isolado é uma configuração em que o DUT não tem visibilidade para as mensagens de transmissão/multirrede nessa sub-rede. Isso ocorre com uma configuração de ponto de acesso (AP) Wi-Fi ou executando o DUT em uma sub-rede isolada sem que outros dispositivos estejam conectados.

Se você não tiver acesso a uma rede IPv6 nativa, a uma rede de operadora IPv6 ou a uma VPN para passar em alguns testes dependendo do IPv6, poderá usar um ponto de acesso Wi-Fi e um túnel IPv6.

Para passar no CTS, o DUT precisa dos sinalizadores UP , BROADCAST e MULTICAST definidos na interface Wi-Fi. A interface Wi-Fi precisa de endereços IPv4 e IPv6 atribuídos. Verifique as propriedades da interface Wi-Fi com adb shell ifconfig .

Para dispositivos compatíveis com Wi-Fi STA/STA Concurrency , são necessárias várias redes Wi-Fi (pelo menos 2). Para passar no CTS, as redes Wi-Fi devem funcionar em bandas diferentes com SSIDs diferentes ou no mesmo SSID com BSSIDs diferentes.

Wi-Fi RTT

O Android inclui a API Wi-Fi RTT para um recurso de tempo de ida e volta (RTT) de Wi-Fi . Isso permite que os dispositivos meçam a distância até os pontos de acesso com uma precisão de 1 a 2 metros, aumentando significativamente a precisão da localização interna. Dois dispositivos recomendados que suportam Wi-Fi RTT são o Google Wifi e o ponto de acesso fitlet2 da Compulab (definido para largura de banda de 40 MHz a 5 GHz).

Os pontos de acesso devem estar ligados, mas não requerem conexão de rede. Os pontos de acesso não precisam estar próximos ao dispositivo de teste, mas é recomendado que estejam a 12 metros do DUT. Um ponto de acesso normalmente é suficiente.

Configuração da máquina desktop

Cuidado : o CTS oferece suporte a máquinas Linux de 64 bits. CTS não é compatível com sistema operacional Windows ou MacOS.

FFMPEG

Instale o pacote ffmpeg versão 5.1.3 (ou posterior) na máquina host.

Atualização da máquina host

É altamente recomendável atualizar a RAM da máquina host CTS para 128 GB e o HDD para 256 GB. É necessário acomodar o aumento do número de casos de teste CTS e um aumento na reserva de espaço de heap Java no tradefed.

ADB e AAPT2

Antes de executar o CTS, certifique-se de ter instalado as versões recentes do Android Debug Bridge (adb) e do Android Asset Packaging Tool (AAPT2) e adicionado a localização dessas ferramentas ao caminho do sistema da sua máquina.

Para instalar o ADB e o AAPT2, baixe as ferramentas da plataforma Android SDK e as ferramentas de compilação do Android SDK mais recentes no SDK Manager do Android Studio ou na ferramenta de linha de comando sdkmanager .

Certifique-se de que adb e aapt2 estejam no caminho do sistema. O comando a seguir pressupõe que você baixou os arquivos do pacote em um subdiretório chamado android-sdk em seu diretório inicial:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

Kit de desenvolvimento Java para Ubuntu

Instale a versão adequada do Java Development Kit (JDK) .

  • Para Android 11, instale o OpenJDK11.
  • Para Android 9 e Android 10, instale o OpenJDK9.
  • Para Android 7.0, 7.1, 8.0 e 8.1, instale o OpenJDK8.

Para obter detalhes, consulte os requisitos do JDK .

Configuração para suporte a Python

Instale virtualenv para sua plataforma seguindo as instruções de instalação .

Você pode verificar se a instalação foi bem-sucedida invocando virtualenv -h .

Arquivos CTS

Baixe e abra os pacotes CTS em Downloads do Compatibility Test Suite correspondentes à versão do Android dos seus dispositivos e a todas as interfaces binárias de aplicativos (ABIs) suportadas pelos seus dispositivos.

Baixe e abra a versão mais recente dos arquivos de mídia CTS .

Detecção de dispositivo

Siga a etapa para configurar seu sistema para detectar seu dispositivo .

Limite de memória

Talvez você queira aumentar a memória máxima disponível durante a execução do teste no script cts-tradefed . Consulte o exemplo CL para obter mais informações.

Configuração do dispositivo Android

Compilações de usuários

Um dispositivo compatível é definido como um dispositivo com uma versão assinada pelo usuário/chave de liberação. Seu dispositivo deve estar executando uma imagem do sistema com base na versão do usuário compatível (Android 4.0 ou superior) em Codenames, Tags e Build Numbers .

Propriedade de compilação de primeiro nível de API

Certos requisitos do CTS dependem da versão com a qual o dispositivo foi enviado originalmente. Por exemplo, os dispositivos fornecidos originalmente com compilações anteriores podem ser excluídos dos requisitos do sistema que se aplicam aos dispositivos fornecidos com compilações posteriores.

Para disponibilizar essas informações ao CTS, os fabricantes de dispositivos poderiam ter definido a propriedade de tempo de construção ro.product.first_api_level . O valor desta propriedade é o primeiro nível de API com o qual o dispositivo foi lançado comercialmente.

Os fabricantes de dispositivos podem reutilizar a implementação subjacente comum para lançar um novo produto como uma atualização de um produto existente no mesmo grupo de dispositivos. Os fabricantes de dispositivos podem opcionalmente definir o nível de API do produto existente como ro.product.first_api_level , para que os requisitos de atualização sejam aplicados para CTS e Treble/VTS.

Os fabricantes de dispositivos podem definir PRODUCT_SHIPPING_API_LEVEL em seu arquivo device.mk para definir esta propriedade, conforme mostrado no exemplo a seguir:

# 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

Primeiro nível de API para Android 9 ou superior

Para dispositivos lançados com Android 9 ou superior, defina a propriedade ro.product.first_api_level como um valor válido em Codenames, Tags e Build Numbers .

Primeiro nível de API para Android 8.x ou inferior

Para dispositivos lançados no Android 8.x ou inferior, desmarque (remova) a propriedade ro.product.first_api_level para a primeira compilação do produto. Para todas as compilações subsequentes, defina ro.product.first_api_level com o valor correto do nível de API. Isso permite que a propriedade identifique corretamente um novo produto e preserve informações sobre o primeiro nível de API do produto. Se o sinalizador não estiver definido, o Android atribuirá Build.VERSION.SDK_INT a ro.product.first_api_level .

Pacotes de calços CTS

O Android 10 ou superior inclui um formato de pacote chamado APEX . Para executar testes CTS para APIs de gerenciamento APEX (como atualizar para uma nova versão ou relatar APEXes ativos), você deve pré-instalar um pacote CtsShimApex em uma partição /system .

O teste de validação de correção APEX verifica a implementação de CtsShimApex .

Requisitos ro.apex.atualizáveis

  • Se a propriedade ro.apex.updatable estiver definida como true , CtsShimApex será necessário para todos os dispositivos que oferecem suporte ao gerenciamento de pacotes APEX.

  • Se a propriedade ro.apex.updatable estiver ausente ou não estiver definida, CtsShimApex não precisará ser pré-instalado em um dispositivo.

O teste de validação de correção APEX verifica a implementação de CtsShimApex .

Pré-instalações e pré-carregamentos do CtsShim

A partir do Android 11, CtsShimApex contém dois aplicativos pré-construídos (criados a partir do build source ), que não contêm nenhum código, exceto o manifesto. O CTS usa esses aplicativos para testar privilégios e permissões.

Se o dispositivo não suportar o gerenciamento de pacotes APEX (ou seja, a propriedade ro.apex.updatable estiver ausente ou não estiver definida) ou se o dispositivo estiver executando a versão 10 ou inferior, os dois aplicativos pré-construídos deverão ser pré-instalados no sistema separadamente.

Se o APEX for compatível, as pré-instalações da versão apropriada deverão ser colocadas como /system/apex/com.android.apex.cts.shim.apex .

Se aplicativos pré-construídos regulares forem usados, CtsShim e CtsShimPriv para a versão apropriada devem ser colocados como /system/app/CtsShimPrebuilt.apk e /system/priv-app/CtsShimPrivPrebuilt.apk respectivamente.

A tabela a seguir lista as pré-instalações e pré-carregamentos disponíveis para cada versão e arquitetura do dispositivo.

Versão do dispositivo Pré-instalar
(se houver suporte para APEX)
Pré-carregar
BRAÇO x86 BRAÇO x86
Andróide 14 android14-arm-release lançamento android14-x86 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Andróide 13 android13-arm-release lançamento android13-x86 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release lançamento android12-x86 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 liberação do braço android11 lançamento android11-x86 android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 versão android10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O e O-MR1 N / D N / D arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Para passar nos testes, pré-carregue os aplicativos nos diretórios apropriados na imagem do sistema sem assinar novamente os aplicativos.

Miniaplicativo de amostra

O Android 9 introduziu APIs Open Mobile. Para dispositivos que reportam mais de um elemento seguro, o CTS adiciona casos de teste para validar o comportamento das APIs Open Mobile. Esses casos de teste exigem a instalação única de um miniaplicativo de amostra no elemento seguro incorporado (eSE) do DUT ou no cartão SIM usado pelo DUT. O miniaplicativo de amostra eSE e o miniaplicativo de amostra SIM podem ser encontrados no AOSP.

Consulte Teste CTS para elemento seguro para obter informações mais detalhadas sobre casos de teste de API Open Mobile e casos de teste de controle de acesso.

Requisitos de armazenamento

Os testes de estresse de mídia CTS exigem que os videoclipes estejam em armazenamento externo ( /sdcard ). A maioria dos clipes é de Big Buck Bunny , que possui direitos autorais da Blender Foundation sob a licença Creative Commons Attribution 3.0 .

O espaço necessário depende da resolução máxima de reprodução de vídeo suportada pelo dispositivo. Consulte a seção 5 no documento de definição de compatibilidade do Android para obter a versão da plataforma das resoluções necessárias.

Aqui estão os requisitos de armazenamento por resolução máxima de reprodução de vídeo:

  • 480x360: 98 MB
  • 720x480: 193 MB
  • 1280x720: 606MB
  • 1920x1080: 1863MB

Tela e armazenamento

  • Qualquer dispositivo que não tenha uma tela incorporada precisa estar conectado a uma tela.
  • Se o dispositivo tiver um slot para cartão de memória, conecte um cartão SD vazio. Use um cartão SD que suporte barramento de ultra alta velocidade (UHS) com capacidade SDHC ou SDXC ou um com pelo menos classe de velocidade 10 ou superior para garantir que ele possa passar no CTS.

  • Se o dispositivo tiver slots para cartão SIM, conecte um cartão SIM ativado em cada slot. Se o dispositivo suportar SMS, cada cartão SIM deverá ter seu próprio campo de número preenchido. Para dispositivos com Android 12 ou superior, todos os cartões SIM devem ter suporte para armazenamento de números de discagem abreviada (ADN). Os cartões GSM e USIM com arquivo dedicado para telecomunicações (DF Telecom ) atendem a esse requisito.

Desenvolvedor UICC

Para executar testes de API de operadora CTS, o dispositivo precisa usar um SIM com privilégios de operadora CTS que atenda aos requisitos especificados em Preparando o UICC .

Configuração do dispositivo Android

  1. Redefinir os dados de fábrica do dispositivo: Configurações > Backup e redefinição > Redefinir dados de fábrica .

  2. Defina o idioma do seu dispositivo para inglês ( Estados Unidos ): Configurações > Idioma e entrada > Idioma .

  3. Se o dispositivo suportar a personalização de fontes padrão, defina a família de fontes sans-serif padrão como Roboto (a família de fontes sans-serif padrão usada em compilações AOSP).

  4. Ative a configuração de localização se houver um recurso de GPS ou rede Wi-Fi/celular no dispositivo: Configurações > Localização > Ativado .

  5. Conecte-se a uma rede Wi-Fi que suporte IPv6, possa tratar o DUT como um cliente isolado (consulte Ambiente físico acima) e tenha uma conexão com a Internet: Configurações > Wi-Fi .

  6. Certifique-se de que nenhum padrão de bloqueio ou senha esteja definido no dispositivo: Configurações > Segurança > Bloqueio de tela > Nenhum .

  7. Habilite a depuração USB no seu dispositivo: Configurações > Opções do desenvolvedor > Depuração USB .

  8. Defina a hora para o formato de 12 horas: Configurações > Data e hora > Usar formato de 24 horas > Desligado .

  9. Configure o dispositivo para ficar acordado: Configurações > Opções do desenvolvedor > Ficar acordado > Ligado .

  10. Somente no Android 5.xe 4.4.x , configure o dispositivo para permitir locais fictícios: Configurações > Opções do desenvolvedor > Permitir locais fictícios > Ativado .

  11. No Android 4.2 ou superior , desative a verificação de aplicativos USB: Configurações > Opções do desenvolvedor > Verificar aplicativos por USB > Desligado .

  12. No Android 13 ou superior , configure o dispositivo para permitir modem simulado: Configurações > Opções do desenvolvedor > Permitir modem simulado > Ativado .

  13. Inicie o navegador e feche qualquer tela de inicialização/configuração.

  14. Conecte a máquina desktop que será usada para testar o dispositivo com um cabo USB.

  15. Antes de executar o CTS, defina Roboto2 como fonte sem serifa usando uma configuração de recursos acessíveis ao usuário (não oculta).

Instalação de arquivo

Instale e configure aplicativos auxiliares no dispositivo.

  1. Configure seu dispositivo de acordo com sua versão CTS:

    • CTS versões 2.1 R2 a 4.2 R4: Configure seu dispositivo (ou emulador) para executar os testes de acessibilidade com: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      No dispositivo, habilite a delegação: Configurações > Acessibilidade > Acessibilidade > Delegando serviço de acessibilidade .

    • CTS versões 6.x ou inferiores: em dispositivos que declaram android.software.device_admin , configure seu dispositivo para executar o teste de administração do dispositivo usando: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Em Configurações > Segurança > Selecionar administradores de dispositivos , habilite os dois administradores de dispositivos android.deviceadmin.cts.CtsDeviceAdminReceiver* . Certifique-se de que android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver e quaisquer outros administradores de dispositivos pré-carregados permaneçam desativados.

  2. Copie os arquivos de mídia CTS para o dispositivo da seguinte forma:

    1. Navegue ( cd ) até o caminho onde os arquivos de mídia são baixados e descompactados.
    2. Altere as permissões do arquivo: chmod u+x copy_media.sh

    3. Copie os arquivos necessários:

      • Para copiar clipes com resolução de até 720x480, execute:

        ./copy_media.sh 720x480
        
      • Se você não tiver certeza da resolução máxima, copie todos os arquivos:

        ./copy_media.sh all
        
      • Se houver vários dispositivos em adb, adicione a opção serial ( -s ) de um dispositivo específico ao final. Por exemplo, para copiar até 720x480 para o dispositivo com serial 1234567, execute:

        ./copy_media.sh 720x480 -s 1234567