Skonfiguruj CTS

Aby uruchomić CTS, najpierw przygotuj środowisko fizyczne, komputer i urządzenie z Androidem, którego używasz do testów.

Środowisko fizyczne

Beacony Bluetooth LE

Jeśli testowane urządzenie obsługuje Bluetooth LE, umieść w odległości 5 metrów od niego co najmniej 3 beacony Bluetooth LE na potrzeby testowania skanowania Bluetooth LE. Nie trzeba ich konfigurować ani emitować żadnych konkretnych danych. Mogą to być beacony dowolnego typu, w tym iBeacon, Eddystone czy nawet urządzenia symulujące beacony BLE.

Łącze ultraszerokopasmowe

Jeśli urządzenie do testowania obsługuje łącze ultraszerokopasmowe (UWB), inne urządzenie obsługujące UWB musi znajdować się w odpowiedniej odległości i w taki sposób, aby nie było w strefie martwej anteny i strefy martwej radiowej. Testy dokładności odległości mają szczególne wymagania w zakresie pozycjonowania i orientacji. Szczegółowe informacje o konfiguracji znajdziesz w artykule Wymagania dotyczące UWB. Test UWB należy uruchomić ręcznie, wskazując w wierszu poleceń, które urządzenia znajdują się w odległości 1 metra od siebie. Szczegółowe informacje o fragmentacji wymaganej w tym teście znajdziesz w artykule o fragmentowaniu lokalnym.

Aparaty

Podczas korzystania z narzędzia CTS kamery użyj normalnych warunków oświetleniowych z testowym schematem wzorców (np. wzór w szachownicę). Umieść kartę z wzorcem testowym w odległości odpowiadającej minimalnej odległości ostrości urządzenia testowego, aby nie była ona zbyt blisko obiektywu.

Skieruj czujniki kamery na scenę o wystarczającym oświetleniu, aby testowane czujniki mogły osiągnąć i utrzymać maksymalną skonfigurowaną liczbę klatek na sekundę (FPS), jak określono w CONTROL_AE_TARGET_FPS_RANGE. Dotyczy to wszystkich czujników kamery zgłoszonych przez getCameraIdList, ponieważ test przechodzi przez wymienione urządzenia i mierzy wydajność indywidualnie.

Jeśli urządzenie do testowania obsługuje kamery zewnętrzne, takie jak kamery internetowe USB, podłącz kamerę zewnętrzną podczas uruchamiania CTS. W przeciwnym razie testy CTS się nie powiedzą.

GPS/GNSS

Jeśli urządzenie DUT obsługuje funkcję globalnego systemu pozycjonowania/globalnego systemu nawigacji satelitarnej (GPS/GNSS), podaj sygnał GPS/GNSS na urządzeniu DUT na odpowiednim poziomie sygnału do odbioru i obliczenia lokalizacji GPS. Część GPS musi być zgodna ze standardem ICD-GPS-200C. W przeciwnym razie sygnał GPS/GNSS może być dowolnego typu, w tym symulator satelity lub wzmacniacz GPS/GNSS sygnałów zewnętrznych. Można też umieścić DUT w pobliżu okna, aby mógł bezpośrednio odbierać wystarczający sygnał GPS/GNSS.

Wi-Fi i IPv6

Testy CTS wymagają sieci Wi-Fi obsługującej IPv4 i IPv6, która ma połączenie z internetem z działającym DNS-em dla IPv4 i IPv6, obsługuje multicast IP i może traktować DUT jako odizolowanego klienta. Odizolowany klient to konfiguracja, w której moduł DUT nie jest widoczny dla komunikatów transmisji/wielu sieci w tej podsieci. Występuje to w przypadku konfiguracji punktu dostępu Wi-Fi (AP) lub uruchomienia DUT na odizolowanej podsieci bez połączenia z innymi urządzeniami.

Jeśli nie masz dostępu do natywnej sieci IPv6, sieci operatora IPv6 lub sieci VPN, która pozwalałaby przejść niektóre testy w zależności od adresu IPv6, możesz użyć punktu dostępu Wi-Fi i tunelu IPv6.

Aby przejść CTS, urządzenie DUT musi mieć ustawione flagi UP, BROADCASTMULTICAST w interfejsie Wi-Fi. Interfejs Wi-Fi musi mieć przypisane adresy IPv4 i IPv6. Sprawdź właściwości interfejsu Wi-Fi za pomocą adb shell ifconfig.

W przypadku urządzeń obsługujących współbieżność Wi-Fi STA/STA wymagane są co najmniej 2 sieci Wi-Fi. Aby przejść test CTS, sieci Wi-Fi muszą działać na różnych pasmach z różnymi identyfikatorami SSID lub na tym samym identyfikatorze SSID z różnymi identyfikatorami BSSID.

Wi-Fi RTT

Android zawiera interfejs API RTT Wi-Fi, który umożliwia określanie czasu błądzenia (RTT) w sieci Wi-Fi. Pozwala to urządzeniom mierzyć odległość do punktów dostępu z dokładnością 1–2 m, co znacznie zwiększa dokładność lokalizacji w pomieszczeniach. Dwa zalecane urządzenia obsługujące Wi-Fi RTT to Google Wifi i punkt dostępu fitlet2 firmy Compulab (z ustawioną przepustowością 40 MHz w paśmie 5 GHz).

Punkty dostępu powinny być włączone, ale nie wymagają połączenia z siecią. Punkty dostępu nie muszą znajdować się obok urządzenia testowego, ale zaleca się, aby znajdowały się w odległości do 12 metrów od tego urządzenia. Zwykle wystarczy jeden punkt dostępu.

Konfiguracja komputera

Uwaga: pakiet CTS obsługuje 64-bitowe maszyny z systemem Linux. Platforma CTS nie jest obsługiwana w systemach Windows i macOS.

FFMPEG

Zainstaluj na maszynie hosta pakiet ffmpeg w wersji 5.1.3 (lub nowszej).

Wymagania dotyczące hosta

Minimalne wymagania dotyczące maszyny hosta CTS to 32 GB pamięci RAM i 256 GB pojemności dysku. Jest to konieczne, aby uwzględnić zwiększoną liczbę przypadków testów CTS i zwiększenie rezerwacji miejsca w kopcu Java w Tradefed.

ADB i AAPT2

Zanim uruchomisz CTS, upewnij się, że masz zainstalowane najnowsze wersje Android Debug Bridge (adb) i Android Asset Packaging Tool (AAPT2) oraz że dodałaś/dodałeś te narzędzia do ścieżki systemowej komputera.

Aby zainstalować ADB i AAPT2, pobierz najnowsze narzędzia platformy Android SDK oraz narzędzia Android SDK do kompilacjiMenedżera pakietu SDK w Android Studio lub za pomocą narzędzia wiersza poleceń sdkmanager.

Upewnij się, że adbaapt2 znajdują się na ścieżce systemowej. W tym poleceniu zakładamy, że zarchiwizowane pakiety zostały pobrane do podkatalogu o nazwie android-sdk w katalogu głównym:

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

Java Development Kit (Ubuntu)

Zainstaluj odpowiednią wersję pakietu Java Development Kit (JDK).

  • W przypadku Androida 11 zainstaluj OpenJDK11.
  • W przypadku Androida 9 i Androida 10 zainstaluj OpenJDK 9.
  • W przypadku Androida 7.0, 7.1, 8.0 i 8.1 zainstaluj OpenJDK 8.

Więcej informacji znajdziesz w wymaganiach dotyczących JDK.

Konfiguracja obsługi Pythona

Zainstaluj virtualenv na swojej platformie, postępując zgodnie z instrukcjami instalacji.

Aby sprawdzić, czy instalacja się udała, uruchom virtualenv -h.

Pliki CTS

Pobierz i otwórz pakiety CTS z Compatibility Test Suite Downloads (Pobieranie pakietów Compatibility Test Suite) odpowiadające wersji Androida na Twoich urządzeniach oraz wszystkim interfejsom binarnych aplikacji (ABI), które obsługują Twoje urządzenia.

Pobierz i otwórz najnowszą wersję plików multimedialnych CTS.

Pobieranie plików CTS związanych z Mainline (opcjonalnie)

Przy pierwszym uruchomieniu wersji CTS narzędzie CTS dynamicznie pobiera niektóre pliki CTS związane z Mainline, co dodaje co najmniej 10 minut do czasu działania w zależności od szybkości sieci.

Aby uniknąć wydłużonego czasu działania CTS, możesz pobrać pliki CTS związane z Mainline przed uruchomieniem wersji CTS, wykonując te instrukcje:

  1. Aby poznać poziom interfejsu API Androida na urządzeniu, wykonaj te czynności:

    adb shell getprop ro.build.version.sdk
    
  2. Aby pobrać pliki Mainline CTS, postępuj zgodnie z instrukcjami w skrypcie download_mcts.sh.

    W zależności od szybkości sieci pobieranie może potrwać co najmniej 10 minut.

Wykrywanie urządzeń

Wykonaj czynności, aby skonfigurować system tak, aby wykrywał urządzenie.

Limit pamięci

W skrypcie cts-tradefed możesz zwiększyć maksymalną ilość pamięci dostępnej podczas testowego uruchomienia. Więcej informacji znajdziesz w przykładowym pliku CL.

Konfiguracja urządzenia z Androidem

Kompilacje użytkowników

Zgodne urządzenie to urządzenie z kompilacją podpisaną za pomocą klucza użytkownika lub klucza wersji. Na urządzeniu musi być zainstalowany obraz systemu oparty na kompatybilnej kompilacji użytkownika (Android 4.0 lub nowszej) z nazwą kodową, tagiem i numerem kompilacji.

Pierwsza właściwość kompilacji na poziomie interfejsu API

Niektóre wymagania dotyczące CTS zależą od kompilacji, z którą urządzenie zostało pierwotnie wysłane. Na przykład urządzenia, które pierwotnie były dostarczane z wersjami wcześniejszymi, mogą nie spełniać wymagań systemowych obowiązujących w przypadku urządzeń z późniejszymi wersjami.

Aby udostępnić te informacje CTS, producenci urządzeń mogli zdefiniować właściwość ro.product.first_api_level czasu kompilacji. Wartość tej właściwości to pierwszy poziom interfejsu API, z którym urządzenie zostało wprowadzone na rynek.

Producenci urządzeń mogą ponownie wykorzystać wspólną implementację, aby wprowadzić nowy produkt jako uaktualnienie dotychczasowego produktu w tej samej grupie urządzeń. Producenci urządzeń mogą opcjonalnie ustawić poziom interfejsu API istniejącej usługi na ro.product.first_api_level, aby w przypadku CTS i Treble/VTS wymagane były uaktualnienia.

Aby ustawić tę właściwość, producenci urządzeń mogą zdefiniować wartość PRODUCT_SHIPPING_API_LEVEL w pliku device.mk, jak w tym przykładzie:

# 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

Pierwszy poziom API na Androida 9 lub nowszego

W przypadku urządzeń z Androidem 9 lub nowszym ustaw we właściwości ro.product.first_api_level prawidłową wartość z systemu kryptowaluty, tagi i numery kompilacji.

Pierwszy poziom interfejsu API na Androida 8.x lub starszego

W przypadku urządzeń z Androidem 8.x lub starszym usuń właściwość ro.product.first_api_level w pierwszej wersji produktu. W przypadku wszystkich kolejnych kompilacji ustaw wartość parametru ro.product.first_api_level na prawidłową wartość poziomu interfejsu API. Umożliwia to usłudze prawidłowe zidentyfikowanie nowego produktu i zachowanie informacji o pierwszym poziomie interfejsu API tego produktu. Jeśli flaga jest nieaktywna, Android przypisuje Build.VERSION.SDK_INT do ro.product.first_api_level.

Pakiety shim CTS

Android 10 lub nowszy zawiera format pakietu o nazwie APEX. Aby przeprowadzać testy CTS interfejsów API do zarządzania APEX (np. aktualizować APEX-y do nowej wersji lub zgłaszać aktywne APEX-y), musisz wstępnie zainstalować pakiet CtsShimApex w partycji /system.

Test walidacji shimu APEX sprawdza implementację CtsShimApex.

ro.apex.updatable requirements

  • Jeśli właściwość ro.apex.updatable jest ustawiona na true, właściwość CtsShimApex jest wymagana na wszystkich urządzeniach, które obsługują zarządzanie pakietami APEX.

  • Jeśli brakuje właściwości ro.apex.updatable lub nie jest ona skonfigurowana, CtsShimApex nie musi być wstępnie zainstalowana na urządzeniu.

Test walidacji shimu APEX sprawdza implementację CtsShimApex.

Wstępne instalacje i wstępne ładowanie CtsShim

Począwszy od Androida 11, CtsShimApex zawiera 2 wstępnie skompilowane aplikacje (skompilowane z źródeł kompilacji), które nie zawierają żadnego kodu oprócz pliku manifestu. Pakiet CTS używa tych aplikacji do testowania uprawnień i uprawnień.

Jeśli urządzenie nie obsługuje zarządzania pakietami APEX (czyli brakuje lub nie ma ustawionej właściwości ro.apex.updatable) albo jeśli na urządzeniu jest zainstalowana wersja 10 lub starsza, obie wstępnie skompilowane aplikacje muszą być zainstalowane w systemie osobno.

Jeśli APEX jest obsługiwany, w przypadku odpowiedniej wersji należy umieścić w nim wstępnie zainstalowane pliki jako /system/apex/com.android.apex.cts.shim.apex.

Jeśli używasz zwykłych wstępnie utworzonych aplikacji, wartości CtsShimCtsShimPriv dla odpowiedniej wersji muszą być umieszczone odpowiednio jako /system/app/CtsShimPrebuilt.apk/system/priv-app/CtsShimPrivPrebuilt.apk.

W tabeli poniżej znajdziesz listę aplikacji wstępnie instalowanych i wstępnie wczytywanych w przypadku każdej wersji i architektury urządzenia.

Wersja urządzenia Wstępnie zainstaluj
(jeśli obsługiwany jest pakiet APEX)
Wczytaj wstępnie
WŁĄCZ WYKRYWANIE x86 WŁĄCZ WYKRYWANIE x86
Android 15 android15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

Android 14 android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O i O-MR1 Nie dotyczy Nie dotyczy arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Aby zaliczyć testy, wczytaj aplikacje wcześniej do odpowiednich katalogów w obrazie systemowym bez ponownego podpisywania aplikacji.

Przykładowy applet

W Androidzie 9 wprowadzono interfejsy Open Mobile API. W przypadku urządzeń, które zgłaszają więcej niż 1 element zabezpieczeń, CTS dodaje testy weryfikujące działanie interfejsów Open Mobile API. Te przypadki testowe wymagają jednorazowej instalacji przykładowej aplety w wbudowanym elemencie zabezpieczeń (eSE) urządzenia testowego lub na karcie SIM używanej przez to urządzenie. Przykładowy aplet eSE i przykładowy aplet SIM znajdziesz w AOSP.

Więcej informacji o przypadkach testowych interfejsu Open Mobile API i przypadków testowych kontroli dostępu znajdziesz w dokumentacji CTS Test for Secure Element (test CTS dla bezpiecznego elementu).

Wymagania dotyczące miejsca na dane

Testy obciążeniowe CTS wymagają, aby klipy wideo znajdowały się w pamięci zewnętrznej (/sdcard). Większość klipów pochodzi z utworu Big Buck Bunny, którego prawa autorskie posiada fundacja Blender Foundation na mocy licencji Creative Commons Attribution 3.0.

Wymagana ilość miejsca zależy od maksymalnej rozdzielczości odtwarzania filmu obsługiwanej przez urządzenie. Informacje o wersji wymaganych rozdzielczości znajdziesz w sekcji 5 dokumentu definicji zgodności z Androidem.

Oto wymagania dotyczące miejsca na dane podzielone według maksymalnej rozdzielczości odtwarzania filmów:

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

Ekran i miejsce na dane

  • Każde urządzenie, które nie ma wbudowanego ekranu, musi być podłączone do ekranu.
  • Jeśli urządzenie ma gniazdo na kartę pamięci, włóż pustą kartę SD. Użyj karty SD obsługującej magistralę UHS (Ultra High Speed) z pojemnością SDHC lub SDXC albo karty o klasie szybkości co najmniej 10, aby mieć pewność, że przejdzie test CTS.

  • Jeśli urządzenie ma gniazda karty SIM, podłącz do każdego gniazda aktywowaną kartę SIM. Jeśli urządzenie obsługuje SMS-y, każda karta SIM musi mieć wypełnione własne pole numeru. W przypadku urządzeń z Androidem 12 lub nowszym wszystkie karty SIM muszą obsługiwać przechowywanie numerów skróconego wybierania (ADN). Karty GSM i USIM z dedykowanym plikiem telekomunikacyjnym (DFTelecom) spełniają to wymaganie.

UICC dewelopera

Aby przeprowadzić testy interfejsu CTS carrier API, urządzenie musi używać karty SIM z uprawnieniami CTS carrier spełniającymi wymagania określone w artykule Przygotowanie karty UICC.

Konfiguracja urządzenia z Androidem

  1. Przywróć dane fabryczne na urządzeniu: Ustawienia > Tworzenie kopii zapasowej i resetowanie > Przywracanie danych fabrycznych.

  2. Ustaw język urządzenia na angielski (Stany Zjednoczone): Ustawienia > Język i wprowadzanie tekstu > Język.

  3. Jeśli urządzenie obsługuje dostosowywanie domyślnych czcionek, ustaw domyślną rodzinę czcionek sans-serif na Roboto (domyślna rodzina czcionek sans-serif używana w kompilacji AOSP).

  4. Włącz ustawienia lokalizacji, jeśli na urządzeniu jest funkcja GPS lub Wi-Fi/sieci komórkowej: Ustawienia > Lokalizacja > Włączone.

  5. Połącz się z siecią Wi-Fi obsługującą IPv6, która może traktować urządzenie DUT jako odizolowanego klienta (patrz Środowisko fizyczne powyżej) i mieć połączenie z internetem: Ustawienia > Wi-Fi.

  6. Upewnij się, że na urządzeniu nie jest ustawiony wzór ani hasło blokady: Ustawienia > Zabezpieczenia > Blokada ekranu > Brak.

  7. Włącz Debugowanie USB na urządzeniu: Ustawienia > Opcje programisty > Debugowanie USB.

  8. Ustaw format czasu na 12-godzinny: Ustawienia > Data i godzina > Format 24-godzinny > Wył.

  9. Aby ustawić urządzenie w trybie uśpienia: Ustawienia > Opcje programisty > Nie wybudzaj > Włącz.

  10. Androidzie 5.x i 4.4.x ustaw urządzenie tak, aby zezwalało na fałszywe lokalizacje: Ustawienia > Opcje programisty > Zezwalaj na fałszywe lokalizacje > Wył.

  11. W Androidzie 4.2 lub nowszym wyłącz weryfikację aplikacji przez USB: Ustawienia > Opcje programisty > Weryfikuj aplikacje przez USB > Wyłącz.

  12. W Androidzie 13 lub nowszym skonfiguruj urządzenie, aby zezwalało na modem pozorowany: Ustawienia > Opcje programisty > Zezwól na pozorowanie modemu > Włączone.

  13. Uruchom przeglądarkę i zamknij wszystkie ekrany uruchamiania lub konfiguracji.

  14. Podłącz komputer, który będzie używany do testowania urządzenia, za pomocą kabla USB.

  15. Przed uruchomieniem CTS ustaw Roboto2 jako czcionkę bezszeryfową, używając dostępnej dla użytkownika opcji (nie ukrytej).

Instalacja plików

Zainstaluj i skonfiguruj aplikacje pomocnicze na urządzeniu.

  1. Skonfiguruj urządzenie zgodnie z wersją CTS:

    • CTS w wersjach 2.1 R2–4.2 R4: skonfiguruj urządzenie (lub emulator) do przeprowadzania testów dostępności za pomocą:adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Na urządzeniu włącz delegowanie: Ustawienia > Ułatwienia dostępu > Ułatwienia dostępu > Delegowanie usługi ułatwień dostępu.

    • CTS w wersji 6.x lub starszej: na urządzeniach, które deklarująandroid.software.device_admin, skonfiguruj urządzenie tak, aby można było uruchomić test administracji urządzenia za pomocą:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      W sekcji Ustawienia > Bezpieczeństwo > Wybierz administratorów urządzenia włącz android.deviceadmin.cts.CtsDeviceAdminReceiver* administratorów urządzenia. Upewnij się, że android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver i innych wstępnie zainstalowanych administratorów urządzeń pozostają wyłączone.

  2. Aby skopiować pliki multimedialne pakietu CTS na urządzenie, wykonaj te czynności:

    1. Przejdź (cd) do ścieżki, na której pobrane i rozpakowane pliki multimedialne są przechowywane.
    2. Zmień uprawnienia pliku: chmod u+x copy_media.sh

    3. Skopiuj niezbędne pliki:

      • Aby skopiować klipy o rozdzielczości do 720 x 480, uruchom:

        ./copy_media.sh 720x480
        
      • Jeśli nie masz pewności co do maksymalnej rozdzielczości, skopiuj wszystkie pliki:

        ./copy_media.sh all
        
      • Jeśli w konfiguracji adb jest kilka urządzeń, dodaj na końcu opcję szeregową (-s) konkretnego urządzenia. Aby na przykład skopiować obraz o rozdzielczości do 720 x 480 na urządzenie o numerze seryjnym 1234567, uruchom:

        ./copy_media.sh 720x480 -s 1234567