Skonfiguruj CTS

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

Środowisko fizyczne

Beacon Bluetooth LE

Jeśli testowane urządzenie (DUT) obsługuje Bluetooth LE, do testowania skanowania Bluetooth LE umieść co najmniej 3 beacony Bluetooth LE w odległości maksymalnie 5 metrów od DUT. Nie trzeba ich konfigurować ani emitować żadnych konkretnych komunikatów. Mogą to być urządzenia dowolnego typu, np. iBeacon, Eddystone, a nawet urządzenia symulujące beacony BLE.

Łącze ultraszerokopasmowe

Jeśli DUT obsługuje łącze ultraszerokopasmowe (UWB), inne urządzenie obsługujące ten standard musi być odpowiednio blisko i zorientowane, aby nie mieć anteny ani martwej strefy radiowej. Testy dokładności odległości mają szczególne wymagania w zakresie pozycjonowania i orientacji. Szczegóły konfiguracji znajdziesz w sekcji Wymagania 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. Więcej informacji o fragmentacji wymaganej w tym teście znajdziesz w artykule o fragmentowaniu lokalnym.

kamery,

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ść wykres wzorców testowych zgodnie z minimalną odległością ostrzenia urządzenia DUT, aby nie była zbyt blisko obiektywu.

Skieruj czujniki aparatu na scenę z odpowiednim oświetleniem, aby testowane czujniki mogły osiągnąć maksymalną dozwoloną liczbę klatek na sekundę i utrzymywać ich maksymalną dozwoloną liczbę klatek, zgodnie z zasadą CONTROL_AE_TARGET_FPS_RANGE. Dotyczy to wszystkich czujników aparatu zgłaszanych przez getCameraIdList w miarę powtarzania testu na wymienionych urządzeniach i poszczególnych pomiarów skuteczności.

Jeśli DUT obsługuje kamery zewnętrzne, takie jak kamery internetowe USB, podłącz kamerę zewnętrzną do uruchamiania CTS. W przeciwnym razie testy CTS nie powiodły się.

GPS/GNSS

Jeśli DUT obsługuje funkcję globalnego systemu pozycjonowania/globalnego systemu nawigacji satelitarnej (GPS/GNSS), przekaż sygnałowi GPS/GNSS do DUT na odpowiednim poziomie sygnału, aby mógł on odbierać i obliczać lokalizację GPS. Fragment GPS musi być zgodny z normą ICD-GPS-200C. Sygnał GPS/GNSS może być dowolny, w tym symulatorem satelitarnym lub reflektorem GPS/GNSS sygnałów zewnętrznych. Urządzenie można też umieścić wystarczająco blisko okna, by mogło bezpośrednio odbierać sygnał GPS/GNSS.

Wi-Fi i IPv6

Testy CTS wymagają sieci Wi-Fi obsługującej IPv4 i IPv6, połączenia internetowego z działającym DNS dla IPv4 i IPv6, obsługi multiemisji IP oraz możliwości traktowania DUT jako izolowanego klienta. Odizolowany klient to konfiguracja, w której moduł DUT nie jest widoczny dla komunikatów transmisji/wielu sieci w tej podsieci. Dzieje się tak w przypadku konfiguracji punktu dostępu Wi-Fi (AP) lub uruchomienia DUT w izolowanej podsieci bez podłączania innych urządzeń.

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, DUT wymaga ustawienia flag UP, BROADCAST i MULTICAST w interfejsie Wi-Fi. Interfejs Wi-Fi wymaga przypisania adresów IPv4 i IPv6. Sprawdź właściwości interfejsu Wi-Fi za pomocą polecenia adb shell ifconfig.

W przypadku urządzeń obsługujących współbieżność sieci Wi-Fi STA/STA wymaganych jest kilka sieci Wi-Fi (co najmniej 2). Aby przekazywać CTS, sieci Wi-Fi muszą działać w różnych pasmach o różnych identyfikatorach SSID lub o tym samym identyfikatorze SSID z różnymi identyfikatorami BSSID.

RTT Wi-Fi

Android obejmuje interfejs API Wi-Fi RTT do obsługi czasu błądzenia w sieci Wi-Fi (RTT). Dzięki temu urządzenia mogą mierzyć odległość od punktów dostępu z dokładnością do 1–2 metrów, co znacznie zwiększa dokładność lokalizacji wewnątrz budynków. Dwa zalecane urządzenia obsługujące RTT Wi-Fi to Google Wifi i punkt dostępu fitlet2 firmy Compulab (prędkość 40 MHz przy 5 GHz).

Punkty dostępu powinny być zasilane, ale nie wymagają połączenia sieciowego. Punkty dostępu nie muszą znajdować się obok urządzenia testowego, ale zalecane jest, aby znajdowały się w odległości nie większej niż 40 metrów od urządzenia testowego. Zazwyczaj wystarczy 1 punkt dostępu.

Konfiguracja komputera

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

Plik FFMPEG

Zainstaluj pakiet ffmpeg w wersji 5.1.3 (lub nowszej) na hoście.

Uaktualnienie hosta

Zdecydowanie zalecamy zwiększenie pamięci RAM hosta CTS do 128 GB, a dysku HDD do 256 GB. Jest to wymagane w związku ze zwiększoną liczbą przypadków testowych CTS i większą liczbą rezerwacji przestrzeni sterty Java w ramach platformy handlowej.

ADB i AAPT2

Zanim uruchomisz narzędzie CTS, sprawdź, czy masz zainstalowane najnowsze wersje zarówno Android Debug Bridge (adb), jak i Android Asset Packaging Tool (AAPT2), i dodajesz lokalizację tych narzędzi do ścieżki systemowej komputera.

Aby zainstalować ADB i AAPT2, pobierz najnowsze narzędzia platformy Android SDK i Android SDK Build Tools z Menedżera SDK w Android Studio lub narzędzia wiersza poleceń sdkmanager.

Upewnij się, że adb i aapt2 są w ścieżce systemowej. W tym poleceniu zakładamy, że archiwa zostały pobrane do podkatalogu android-sdk w Twoim katalogu głównym:

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

pakiet Java Development Kit dla systemu Ubuntu

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

  • W przypadku Androida 11 zainstaluj OpenJDK11.
  • Na Androidzie 9 i 10 zainstaluj OpenJDK9.
  • Na Androidzie 7.0, 7.1, 8.0 i 8.1 zainstaluj OpenJDK8.

Więcej informacji znajdziesz w wymaganiach JDK.

Konfiguracja obsługi języka Python

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

Aby sprawdzić, czy instalacja się powiodła, wywołaj virtualenv -h.

Pliki CTS

Pobierz i otwórz pakiety CTS ze strony Compatibility Test Suite do pobrania, które pasują do wersji Androida na Twoim urządzeniu i wszystkich interfejsów binarnych aplikacji (ABI) obsługiwanych przez Twoje urządzenia.

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

Pobierz pliki CTS związane 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ąć tego dodanego czasu działania CTS, przed uruchomieniem wersji CTS możesz pobrać pliki CTS związane z Mainline, wykonując te czynności:

  1. Pobierz poziom interfejsu Android API na urządzeniu, uruchamiając polecenie:

    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 potrwa co najmniej 10 minut.

Wykrywanie urządzeń

Postępuj zgodnie z instrukcjami, aby skonfigurować system w celu wykrywania urządzenia.

Limit pamięci

Możesz zwiększyć maksymalną ilość pamięci dostępnej podczas testu w skrypcie cts-tradefed. Więcej informacji znajdziesz w przykładowej liście zmian.

Konfiguracja urządzenia z Androidem

Kompilacje użytkowników

Zgodne urządzenie to urządzenie z kompilacją podpisaną przez użytkownika/klucz wersji. Na urządzeniu powinien być uruchomiony obraz systemu oparty na znanej kompilacji użytkownika (Android 4.0 lub nowszy) ze nazw kryptonimów, tagów i numerów 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 były pierwotnie wysyłane z wcześniejszymi kompilacjami, mogą zostać wykluczone z wymagań systemowych dotyczących 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ą użyć wspólnej implementacji bazowej do wprowadzenia na rynek nowego produktu jako uaktualnienia istniejącego produktu w tej samej grupie urządzeń. Producenci urządzeń mogą opcjonalnie ustawić w istniejących produktach poziom API na ro.product.first_api_level, aby w przypadku CTS i Treble/VTS wymagane były uaktualnienia.

Producenci urządzeń mogą zdefiniować PRODUCT_SHIPPING_API_LEVEL w swoim pliku device.mk, aby ustawić tę właściwość, 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 interfejsu API w Androidzie 9 lub nowszym

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 w Androidzie 8.x lub starszym

W przypadku urządzeń z Androidem w wersji 8.x lub starszej usuń (usuń) właściwość ro.product.first_api_level w pierwszej kompilacji usługi. W przypadku wszystkich kolejnych kompilacji ustaw ro.product.first_api_level na prawidłową wartość poziomu interfejsu API. Dzięki temu właściwość może prawidłowo zidentyfikować nowy produkt i zachować informacje o jego pierwszym poziomie interfejsu API. Jeśli flaga nie jest ustawiona, Android przypisuje Build.VERSION.SDK_INT do ro.product.first_api_level.

Pakiety podkładek CTS

Android 10 lub nowszy zawiera pakiet w formacie APEX. Aby uruchomić testy CTS interfejsów API do zarządzania APEX (np. zaktualizować je do nowej wersji lub zgłosić aktywne APEX), musisz wstępnie zainstalować pakiet CtsShimApex na partycji /system.

Test weryfikacji podkładki APEX sprawdza wdrożenie podkładki CtsShimApex.

Wymagania dotyczące ro.apex.updatable

  • Jeśli właściwość ro.apex.updatable ma wartość true, 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, właściwość CtsShimApex nie musi być wstępnie zainstalowana na urządzeniu.

Test weryfikacji podkładki APEX sprawdza wdrożenie podkładki CtsShimApex.

Wstępne instalacje i wstępne wczytywanie CtsShim

Począwszy od Androida 11 CtsShimApex zawiera 2 gotowe aplikacje (utworzone na podstawie źródła kompilacji), które nie zawierają żadnego kodu poza plikiem manifestu. CTS używa ich do testowania uprawnień.

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

Jeśli obsługiwany obszar APEX jest obsługiwany, instalacje wstępne odpowiedniej wersji muszą być umieszczone w polu /system/apex/com.android.apex.cts.shim.apex.

Jeśli używasz standardowych gotowych aplikacji, atrybuty CtsShim i CtsShimPriv odpowiedniej wersji muszą zostać umieszczone odpowiednio jako /system/app/CtsShimPrebuilt.apk i /system/priv-app/CtsShimPrivPrebuilt.apk.

W poniższej tabeli znajdziesz listę instalacji wstępnych i wstępnych dostępnych w przypadku poszczególnych wersji i architektur 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 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 aplet

W Androidzie 9 wprowadziliśmy Open Mobile API. W przypadku urządzeń, które zgłaszają więcej niż 1 bezpieczny element, CTS dodaje przypadki testowe, aby zweryfikować działanie interfejsów Open Mobile API. Te przypadki testowe wymagają jednorazowego zainstalowania przykładowego apletu w osadzonym Bezpiecznym elemencie (eSE) w DUT lub na karcie SIM używanej przez DUT. Przykładowy aplet eSE i przykładowy aplet SIM znajdziesz w AOSP.

Więcej informacji o testach Open Mobile API i przypadkach testowych kontroli dostępu znajdziesz w artykule Test CCS dla bezpiecznego elementu.

Wymagania dotyczące miejsca na dane

Testy wytrzymałościowe multimediów CTS wymagają umieszczenia klipów wideo w pamięci zewnętrznej (/sdcard). Większość klipów pochodzi od zespołu Big Buck Bunny, który jest chroniony prawem autorskim przez Blender Foundation na podstawie 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 osadzonego ekranu, musi być podłączone do ekranu.
  • Jeśli urządzenie ma gniazdo karty pamięci, włóż do niego pustą kartę SD. Użyj karty SD, która obsługuje magistrale UHS (UHS) o pojemności SDHC lub SDXC albo kart, które mają klasę prędkości co najmniej 10 lub wyższą, by zapewnić zgodność z normą 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, na każdej karcie SIM trzeba wypełnić osobne pole z numerem. W przypadku urządzeń z Androidem 12 lub nowszym wszystkie karty SIM muszą obsługiwać przechowywanie skróconych numerów wybierania numerów (ADN). Karty GSM i USIM z dedykowanym plikiem telekomunikacyjnym (DFTelecom) spełniają to wymaganie.

UICC dewelopera

Aby uruchomić testy interfejsu API CTS operatora, urządzenie musi używać karty SIM z uprawnieniami operatora CTS spełniającego wymagania określone w artykule dotyczącym przygotowywania UICC.

Konfiguracja urządzenia z Androidem

  1. Przywróć dane fabryczne na urządzeniu: Ustawienia > Kopia i kasowanie danych > Przywracanie danych fabrycznych.

  2. Ustaw język urządzenia na angielski (Stany Zjednoczone): Ustawienia > Język, klawiatura, głos > Język.

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

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

  5. Połącz się z siecią Wi-Fi, która obsługuje IPv6, może traktować DUT jako izolowanego 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 blokady ani hasło: 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 > Używaj formatu 24-godzinnego > Wył.

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

  10. W tylko Androidzie 5.x i 4.4.x skonfiguruj urządzenie, aby zezwalało na pozorowanie lokalizacji: Ustawienia > Opcje programisty > Zezwalaj na pozorowanie lokalizacji > Włączone.

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

  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/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ą za pomocą ustawienia Afordancji dostępu użytkownika (nie ukrytego).

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 do 4.2 R4: skonfiguruj urządzenie (lub emulator), aby przeprowadzać testy ułatwień dostępu: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Na urządzeniu włącz przekazywanie dostępu: Ustawienia > Ułatwienia dostępu > Ułatwienia dostępu > Przekazywanie dostępu do usługi.

    • CTS w wersji 6.x lub starszej: na urządzeniach z deklaracją android.software.device_admin skonfiguruj je tak, aby uruchamiać test administrowania urządzeniem przy użyciu tych poleceń: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      W sekcji Ustawienia > Zabezpieczenia > Wybierz administratorów urządzenia włącz dwóch administratorów urządzenia android.deviceadmin.cts.CtsDeviceAdminReceiver*. Dopilnuj, aby usługa android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver i wszyscy inni wstępnie załadowani administratorzy urządzeń pozostały wyłączone.

  2. Skopiuj pliki multimedialne CTS na urządzenie w ten sposób:

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

    3. Skopiuj niezbędne pliki:

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

        ./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 sekcji adb znajduje się kilka urządzeń, dodaj na końcu opcję szeregową (-s) konkretnego urządzenia. Na przykład, aby skopiować do urządzenia o numerze seryjnym 1234567 maksymalnie 720 x 480, uruchom polecenie:

        ./copy_media.sh 720x480 -s 1234567