O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Configurando o 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

sinalizadores Bluetooth LE

Se o dispositivo em teste (DUT) for compatível com Bluetooth LE, coloque pelo menos três beacons Bluetooth LE a 5 metros do DUT para teste de leitura de Bluetooth LE. Esses beacons não precisam ser configurados ou emitir nada específico, e podem ser de qualquer tipo, incluindo iBeacon, Eddystone ou até mesmo dispositivos que simulam beacons BLE.

Câmeras

Ao executar o CTS da câmera, use condições normais de iluminação com um gráfico padrão de teste (como um padrão quadriculado). Coloque o gráfico padrão de teste de acordo com a distância mínima de foco do DUT para garantir que não esteja 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 no máximo configurado de quadros por segundo (FPS) conforme especificado em CONTROL_AE_TARGET_FPS_RANGE . Isso se aplica a todos os sensores de câmera relatados por getCameraIdList conforme o teste repete os 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 for compatível com 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 do 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 perto o suficiente de uma janela para que possa receber diretamente sinal GPS/GNSS suficiente.

Wi-Fi e IPv6

Os testes CTS requerem uma rede Wi-Fi que suporte IPv4 e IPv6, tenha uma conexão com a 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/multi-rede nessa sub-rede. Isso ocorre com uma configuração de ponto de acesso Wi-Fi (AP) ou executando o DUT em uma sub-rede isolada sem outros dispositivos conectados.

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

Para passar 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 .

Wi-Fi RTT

O Android inclui a API Wi-Fi RTT para um recurso de tempo de ida e volta (RTT) Wi-Fi . Isso permite que os dispositivos meçam sua 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 uma conexão de rede. Os pontos de acesso não precisam estar próximos ao dispositivo de teste, mas recomenda-se que estejam a 12 metros do DUT. Um ponto de acesso normalmente é suficiente.

Configuração da máquina desktop

ADB e AAPT

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 (AAPT) e adicionado o local dessas ferramentas ao caminho do sistema de sua máquina.

Para instalar o ADB e o AAPT, baixe as ferramentas Android SDK Platform Tools e Android SDK Build Tools mais recentes no SDK Manager do Android Studio ou na ferramenta de linha de comando sdkmanager .

Certifique-se de que adb e aapt estejam no caminho do sistema. O comando a seguir pressupõe que você baixou os arquivos do pacote para 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

Faça o download e abra os pacotes CTS em Downloads do Conjunto de Testes de Compatibilidade correspondentes à versão do Android de seus dispositivos e todas as interfaces binárias de aplicativos (ABIs) compatíveis com 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

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

Configuração do dispositivo Android

Compilações do usuário

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

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

Certos requisitos do CTS dependem da compilação com a qual um dispositivo foi originalmente enviado. Por exemplo, os dispositivos fornecidos originalmente com compilações anteriores podem ser excluídos dos requisitos do sistema que se aplicam a 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 dessa 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 para 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 essa 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 iniciados com Android 9 ou superior, defina a propriedade ro.product.first_api_level com um valor válido de 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 de nível de API correto. Isso permite que a propriedade identifique corretamente um novo produto e preserve as 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 shim APEX verifica a implementação de CtsShimApex .

requisitos ro.apex.updatable

  • Se a propriedade ro.apex.updatable for 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 precisa ser pré-instalado em um dispositivo.

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

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

A partir do Android 11, CtsShimApex contém dois aplicativos pré-criados (criados a partir da fonte de compilação ), 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 for compatível com o gerenciamento de pacotes APEX (ou seja, a propriedade ro.apex.updatable está ausente ou não está definida) ou se o dispositivo estiver executando a versão 10 ou inferior, os dois aplicativos pré-criados devem ser pré-instalados no sistema separadamente.

Versão do dispositivo Pré-instalar
(se APEX suportado)
Pré-carregar
BRAÇO x86 BRAÇO x86
Androide 12 android12-arm-release
em /system/apex/com.android.apex.cts.shim.apex
android12-x86-release
em /system/apex/com.android.apex.cts.shim.apex
android12-arm-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

android12-arm-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

android12-x86-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

android12-x86-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

Android 11 android11-arm-release
em /system/apex/com.android.apex.cts.shim.apex
android11-x86-release
em /system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

android11-arm-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

android11-x86-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

android11-x86-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

Android 10 android10-release
em /system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

android10-arm-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

android10-x86-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

android10-x86-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

Android 9, O e O-MR1 N / D N / D arm-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

arm-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.apk

x86-CtsShim.apk
em /system/app/CtsShimPrebuilt.apk

x86-CtsShimPriv.apk
em /system/priv-app/CtsShimPrivPrebuilt.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 móveis abertas. Para dispositivos que relatam mais de um elemento seguro, o CTS adiciona casos de teste para validar o comportamento das Open Mobile APIs. Esses casos de teste requerem a instalação única de um miniaplicativo de exemplo no Secure Element (eSE) incorporado do DUT ou no cartão SIM usado pelo DUT. O applet de amostra eSE e o applet de amostra SIM podem ser encontrados no AOSP.

Consulte Teste CTS para elemento seguro para obter informações mais detalhadas sobre os casos de teste Open Mobile API 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 são de Big Buck Bunny , que tem 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 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:

  • 480 x 360: 98 MB
  • 720 x 480: 193 MB
  • 1280 x 720: 606 MB
  • 1920 x 1080: 1863 MB

Tela e armazenamento

  • Qualquer dispositivo que não tenha uma tela incorporada precisa ser 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 o 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 de cartão SIM, conecte um cartão SIM ativado em cada slot. Se o dispositivo suportar SMS, cada cartão SIM deve 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 armazenar números de discagem abreviada (ADN). Os cartões GSM e USIM com o arquivo telecom dedicado (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 atendam aos requisitos especificados em Preparando o UICC .

configuração do dispositivo Android

  1. Redefinir dados de fábrica do dispositivo: Configurações > Backup e redefinição > Redefinição de 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 oferecer suporte à 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 GPS ou recurso de rede Wi-Fi/celular no dispositivo: Configurações > Localização > Ativado .

  5. Conecte-se a uma rede Wi-Fi compatível com IPv6, que trate 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. Ative a depuração USB no seu dispositivo: Configurações > Opções do desenvolvedor > Depuração USB .

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

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

  10. Somente no Android 5.xe 4.4.x , defina 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 aplicativo USB: Configurações > Opções do desenvolvedor > Verificar aplicativos por USB > Desativado .

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

  13. Inicie o navegador e descarte 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 a fonte sem serifa usando uma configuração acessível 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, ative a delegação: Configurações > Acessibilidade > Acessibilidade > Delegar serviço de acessibilidade .

    • CTS versões 6.x ou inferior: 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 maneira:

    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 até uma resolução de 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