Skonfiguruj CTS

Aby uruchomić CTS, najpierw przygotuj środowisko fizyczne, komputer stacjonarny i urządzenie z systemem Android, którego używasz do testowania.

Środowisko fizyczne

Sygnały ostrzegawcze Bluetooth LE

Jeśli testowane urządzenie (DUT) obsługuje Bluetooth LE, umieść co najmniej trzy sygnalizatory Bluetooth LE w odległości 5 metrów od DUT w celu przetestowania skanowania Bluetooth LE. Te sygnalizatory nie muszą być konfigurowane ani emitować niczego konkretnego i mogą być dowolnego rodzaju, w tym iBeacon, Eddystone, a nawet urządzenia symulujące sygnalizatory BLE.

Ultra szerokopasmowy

Jeśli urządzenie testowane obsługuje ultraszerokopasmowe (UWB), inne urządzenie obsługujące UWB musi być umieszczone wystarczająco blisko i zorientowane tak, aby nie tworzyć martwej strefy anten i radia. W przypadku testów dokładności odległości istnieją szczególne potrzeby w zakresie pozycjonowania i orientacji. Aby uzyskać szczegółowe informacje na temat konfiguracji, zobacz wymagania UWB . Test UWB należy uruchomić ręcznie, podając w wierszu poleceń, które dwa urządzenia znajdują się w odległości jednego metra od siebie. Aby uzyskać szczegółowe informacje na temat fragmentowania wymaganego w tym teście, zobacz fragmentowanie lokalne .

Kamery

Podczas uruchamiania kamery CTS należy używać normalnych warunków oświetleniowych z wykresem wzorca testowego (np. wzorem szachownicy). Umieść tabelę wzorca testowego zgodnie z minimalną odległością ogniskowania testowanego urządzenia, aby upewnić się, że nie znajduje się ona zbyt blisko obiektywu.

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

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

GPS/GNSS

Jeżeli urządzenie badane obsługuje funkcję globalnego systemu pozycjonowania/globalnego systemu nawigacji satelitarnej (GPS/GNSS), należy dostarczyć sygnał GPS/GNSS do urządzenia DUT o odpowiednim poziomie sygnału do odbioru i obliczenia lokalizacji GPS. Część GPS musi być zgodna z ICD-GPS-200C. W przeciwnym razie sygnał GPS/GNSS może być dowolnego rodzaju, włączając symulator satelitarny lub wzmacniacz sygnału GPS/GNSS sygnałów zewnętrznych, lub można umieścić urządzenie DUT wystarczająco blisko okna, aby mogło bezpośrednio odbierać wystarczającą ilość sygnału GPS/GNSS.

Wi-Fi i IPv6

Testy CTS wymagają sieci Wi-Fi obsługującej IPv4 i IPv6, mającej połączenie internetowe z działającym systemem DNS dla IPv4 i IPv6, obsługującej multiemisję IP i mogącej traktować urządzenie DUT jako izolowanego klienta. Izolowany klient to konfiguracja, w której urządzenie DUT nie ma wglądu w komunikaty rozgłoszeniowe/wielosieciowe w tej podsieci. Dzieje się tak w przypadku konfiguracji punktu dostępu Wi-Fi (AP) lub uruchomienia urządzenia 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, aby przejść niektóre testy w zależności od protokołu IPv6, możesz skorzystać z punktu dostępu Wi-Fi i tunelu IPv6.

Aby przejść CTS, urządzenie DUT potrzebuje ustawionych 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ą adb shell ifconfig .

W przypadku urządzeń obsługujących współbieżność Wi-Fi STA/STA wymaganych jest wiele sieci Wi-Fi (co najmniej 2). Aby przejść 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 Wi-Fi RTT, który zapewnia czas podróży w obie strony (RTT) Wi-Fi . Dzięki temu urządzenia mogą mierzyć odległość do punktów dostępu z dokładnością od 1 do 2 metrów, znacznie zwiększając dokładność lokalizacji w pomieszczeniach zamkniętych. Dwa zalecane urządzenia obsługujące Wi-Fi RTT to punkt dostępowy Google Wifi i fitlet2 firmy Compulab (ustawiony na szerokość pasma 40 MHz przy 5 GHz).

Punkty dostępowe powinny być zasilane, ale nie wymagają połączenia sieciowego. Punkty dostępu nie muszą znajdować się obok urządzenia testującego, ale zaleca się, aby znajdowały się w promieniu 40 stóp od testowanego urządzenia. Zwykle wystarczy jeden punkt dostępowy.

Konfiguracja komputera stacjonarnego

Uwaga : CTS obsługuje 64-bitowe komputery z systemem Linux. CTS nie jest obsługiwany w systemach operacyjnych Windows i MacOS.

FFMPEG

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

Aktualizacja komputera hosta

Zdecydowanie zaleca się aktualizację pamięci RAM komputera hosta CTS do 128 GB i dysku twardego do 256 GB. Konieczne jest uwzględnienie zwiększonej liczby przypadków testowych CTS i zwiększenia rezerwacji miejsca na stercie Java w handlu.

ADB i AAPT2

Przed uruchomieniem CTS upewnij się, że masz zainstalowane najnowsze wersje Android Debug Bridge (adb) i Android Asset Packaging Tool (AAPT2) oraz dodałeś lokalizację tych narzędzi do ścieżki systemowej swojego komputera.

Aby zainstalować ADB i AAPT2, pobierz najnowsze narzędzia platformy Android SDK i narzędzia do tworzenia zestawu SDK systemu Android z Menedżera SDK Android Studio lub z narzędzia wiersza poleceń sdkmanager .

Upewnij się, że adb i aapt2 znajdują się w ścieżce systemowej. Poniższe polecenie zakłada, że ​​pobrałeś archiwa pakietów do podkatalogu o nazwie android-sdk w swoim katalogu domowym:

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

Zestaw programistyczny Java dla Ubuntu

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

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

Aby uzyskać szczegółowe informacje, zobacz wymagania JDK .

Konfiguracja obsługi języka Python

Zainstaluj virtualenv na swoją platformę, postępując zgodnie z instrukcjami instalacji .

Możesz sprawdzić, czy instalacja przebiegła pomyślnie, wywołując virtualenv -h .

Pliki CTS

Pobierz i otwórz pakiety CTS z Compatibility Test Suite Downloads pasujące do wersji Androida na Twoich urządzeniach i wszystkich interfejsów binarnych aplikacji (ABI) obsługiwanych przez Twoje urządzenia.

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

Wykrywanie urządzenia

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

Limit pamięci

Możesz zwiększyć maksymalną ilość pamięci dostępnej podczas uruchamiania testu w skrypcie cts-tradefed . Więcej informacji można znaleźć w przykładzie CL .

Konfiguracja urządzenia z Androidem

Kompilacje użytkownika

Zgodne urządzenie definiuje się jako urządzenie z kompilacją podpisaną przez użytkownika/klucz wydania. Na Twoim urządzeniu powinien działać obraz systemu oparty na zgodnej kompilacji użytkownika (Android 4.0 lub nowszy) z nazw kodowych, tagów i numerów kompilacji .

Właściwość kompilacji na pierwszym poziomie interfejsu API

Niektóre wymagania CTS zależą od wersji, z jaką urządzenie zostało pierwotnie dostarczone. Na przykład urządzenia dostarczone z wcześniejszymi kompilacjami mogą zostać wyłączone z wymagań systemowych mających zastosowanie do urządzeń dostarczonych z późniejszymi kompilacjami.

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

Producenci urządzeń mogą ponownie wykorzystać wspólną implementację bazową do wprowadzenia nowego produktu jako uaktualnienia istniejącego produktu w tej samej grupie urządzeń. Producenci urządzeń mogą opcjonalnie ustawić poziom API istniejącego produktu na ro.product.first_api_level , tak aby wymagania dotyczące aktualizacji były stosowane dla CTS i Treble/VTS.

Producenci urządzeń mogą zdefiniować PRODUCT_SHIPPING_API_LEVEL w swoim pliku device.mk , aby ustawić tę właściwość, jak pokazano w poniższym 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 dla Androida 9 lub nowszego

W przypadku urządzeń z systemem Android 9 lub nowszym ustaw właściwość ro.product.first_api_level na prawidłową wartość z nazw kodowych, tagów i numerów kompilacji .

Pierwszy poziom API dla Androida 8.x lub starszego

W przypadku urządzeń z systemem Android 8.x lub starszym odznacz (usuń) właściwość ro.product.first_api_level dla pierwszej kompilacji produktu. Dla wszystkich kolejnych kompilacji ustaw ro.product.first_api_level na poprawną wartość poziomu API. Dzięki temu właściwość może poprawnie zidentyfikować nowy produkt i zachować informację o pierwszym poziomie API produktu. 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 format pakietu o nazwie APEX . Aby uruchomić testy CTS dla interfejsów API zarządzania APEX (takie jak aktualizacja do nowej wersji lub raportowanie aktywnych APEXów), musisz wstępnie zainstalować pakiet CtsShimApex na partycji /system .

Test walidacyjny podkładki APEX weryfikuje implementację CtsShimApex .

wymagania dotyczące aktualizacji ro.apex

  • Jeśli właściwość ro.apex.updatable jest ustawiona na true , CtsShimApex jest wymagany dla wszystkich urządzeń obsługujących zarządzanie pakietami APEX.

  • Jeśli brakuje właściwości ro.apex.updatable lub nie jest ona ustawiona, nie jest wymagana preinstalacja CtsShimApex na urządzeniu.

Test walidacyjny podkładki APEX weryfikuje implementację CtsShimApex .

CtsShim preinstaluje i ładuje

Począwszy od Androida 11, CtsShimApex zawiera dwie gotowe aplikacje (skompilowane ze źródła kompilacji ), które nie zawierają żadnego kodu poza manifestem. CTS używa tych aplikacji do testowania przywilejów i uprawnień.

Jeśli urządzenie nie obsługuje zarządzania pakietami APEX (oznacza to, że brakuje właściwości ro.apex.updatable lub nie jest ona ustawiona) lub jeśli na urządzeniu działa wersja 10 lub starsza, obie wstępnie skompilowane aplikacje muszą być preinstalowane w systemu osobno.

Jeśli obsługiwany jest APEX, preinstalacje odpowiedniej wersji muszą zostać umieszczone jako /system/apex/com.android.apex.cts.shim.apex .

Jeśli używane są zwykłe, gotowe aplikacje, CtsShim i CtsShimPriv dla odpowiedniej wersji muszą zostać umieszczone odpowiednio jako /system/app/CtsShimPrebuilt.apk i /system/priv-app/CtsShimPrivPrebuilt.apk .

Poniższa tabela zawiera listę preinstalacji i preinstalacji dostępnych dla każdej wersji urządzenia i architektury.

Wersja urządzenia Zainstaluj wstępnie
(jeśli obsługiwany jest APEX)
Wstępnie załaduj
RAMIĘ x86 RAMIĘ x86
Androida 14 Android14-arm-release wersja Android14-x86 android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Androida 13 Android13-arm-release wersja Android13-x86 android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Androida 12 Android12-arm-release wersja Android12-x86 android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Androida 11 Android11-arm-release wersja Android11-x86 android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Androida 10 wersja Androida 10 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 przejść testy, załaduj wstępnie aplikacje do odpowiednich katalogów w obrazie systemu bez ponownego podpisywania aplikacji.

Przykładowy aplet

W systemie Android 9 wprowadzono interfejsy API Open Mobile. W przypadku urządzeń, które zgłaszają więcej niż jeden bezpieczny element, CTS dodaje przypadki testowe w celu sprawdzenia zachowania interfejsów API Open Mobile. Te przypadki testowe wymagają jednorazowej instalacji przykładowego apletu we wbudowanym bezpiecznym elemencie (eSE) urządzenia DUT lub na karcie SIM używanej przez urządzenie DUT. Przykładowy aplet eSE i przykładowy aplet karty SIM można znaleźć w AOSP.

Więcej szczegółowych informacji na temat przypadków testowych Open Mobile API i przypadków testowych kontroli dostępu można znaleźć w artykule Test CTS dla elementu bezpiecznego .

Wymagania dotyczące przechowywania

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

Wymagana ilość miejsca zależy od maksymalnej rozdzielczości odtwarzania wideo obsługiwanej przez urządzenie. Zobacz sekcję 5 w dokumencie Definicja zgodności systemu Android , aby zapoznać się z wersją platformy wymaganych rozdzielczości.

Oto wymagania dotyczące przechowywania według maksymalnej rozdzielczości odtwarzania wideo:

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

Ekran i pamięć

  • Każde urządzenie, które nie ma wbudowanego ekranu, musi być podłączone do ekranu.
  • Jeżeli urządzenie posiada slot na kartę pamięci, podłącz pustą kartę SD. Użyj karty SD obsługującej magistralę ultraszybkiej (UHS) o pojemności SDHC lub SDXC lub karty o klasie szybkości co najmniej 10 lub wyższej, aby mieć pewność, że przejdzie ona test CTS.

  • Jeśli urządzenie ma gniazda kart SIM, podłącz aktywowaną kartę SIM do każdego gniazda. Jeśli urządzenie obsługuje wiadomości SMS, każda karta SIM musi mieć wypełnione własne pole numeru. W przypadku urządzeń z systemem Android 12 lub nowszym wszystkie karty SIM muszą obsługiwać zapisywanie numerów skróconych (ADN). Karty GSM i USIM z dedykowanym plikiem telekomunikacyjnym (DF Telecom ) spełniają ten wymóg.

Deweloper UICC

Aby uruchomić testy API operatora CTS, urządzenie musi korzystać z karty SIM z uprawnieniami operatora CTS spełniającej wymagania określone w Przygotowanie UICC .

Konfiguracja urządzenia z Androidem

  1. Przywracanie danych fabrycznych urządzenia: Ustawienia > Kopia zapasowa i resetowanie > Przywracanie danych fabrycznych .

  2. Ustaw język urządzenia na angielski ( Stany Zjednoczone ): Ustawienia > Język i wprowadzanie > 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 kompilacjach AOSP).

  4. Włącz ustawienie lokalizacji, jeśli na urządzeniu dostępna jest funkcja GPS lub Wi-Fi/sieć komórkowa: Ustawienia > Lokalizacja > Włączone .

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

  6. Upewnij się, że na urządzeniu nie ustawiono żadnego wzoru blokady ani hasła: Ustawienia > Zabezpieczenia > Blokada ekranu > Brak .

  7. Włącz debugowanie USB na swoim urządzeniu: Ustawienia > Opcje programistyczne > Debugowanie USB .

  8. Ustaw godzinę w formacie 12-godzinnym: Ustawienia > Data i godzina > Użyj formatu 24-godzinnego > Wył .

  9. Ustaw urządzenie tak, aby nie zasypiało: Ustawienia > Opcje programisty > Nie śpij > Włącz .

  10. Tylko w Androidzie 5.x i 4.4.x skonfiguruj urządzenie tak, aby zezwalało na fałszywe lokalizacje: Ustawienia > Opcje programisty > Zezwalaj na fałszywe lokalizacje > Włączone .

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

  12. W systemie Android 13 lub nowszym skonfiguruj urządzenie tak, aby zezwalało na próbowanie modemu: Ustawienia > Opcje programisty > Zezwalaj na próbowanie modemu > Wł .

  13. Uruchom przeglądarkę i zamknij ekran startowy/konfiguracji.

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

  15. Przed uruchomieniem CTS ustaw Roboto2 jako czcionkę bezszeryfową, korzystając z ustawienia afordancji dostępnego dla użytkownika (nie ukrytego).

Instalacja pliku

Zainstaluj i skonfiguruj aplikacje pomocnicze na urządzeniu.

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

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

      Na urządzeniu włącz delegowanie: Ustawienia > Dostępność > Dostępność > Delegowanie usługi ułatwień dostępu .

    • CTS w wersji 6.x lub starszej: Na urządzeniach z deklaracją android.software.device_admin skonfiguruj urządzenie tak, aby uruchamiało test administrowania urządzeniem, używając: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      W Ustawieniach > Zabezpieczenia > Wybierz administratorów urządzenia włącz dwóch administratorów urządzeń android.deviceadmin.cts.CtsDeviceAdminReceiver* . Upewnij się, że android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver i inni wstępnie załadowani administratorzy urządzeń pozostają wyłączeni.

  2. Skopiuj pliki multimedialne CTS na urządzenie w następujący sposób:

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

    3. Skopiuj niezbędne pliki:

      • Aby skopiować klipy do rozdzielczości 720x480, uruchom:

        ./copy_media.sh 720x480
        
      • Jeśli nie jesteś pewien maksymalnej rozdzielczości, skopiuj wszystkie pliki:

        ./copy_media.sh all
        
      • Jeśli w adb znajduje się wiele urządzeń, dodaj na końcu opcję szeregową ( -s ) konkretnego urządzenia. Na przykład, aby skopiować do 720x480 na urządzenie o numerze seryjnym 1234567, uruchom:

        ./copy_media.sh 720x480 -s 1234567