Konfiguracja CTS

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

Środowisko fizyczne

Sygnalizatory Bluetooth LE

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

Kamery

Podczas uruchamiania kamery CTS należy używać normalnych warunków oświetleniowych z tabelą wzorców testowych (np. szachownicą). Umieść tablicę wzorców testowych 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 umożliwić testowanym czujnikom osiągnięcie i utrzymanie maksymalnej skonfigurowanej liczby klatek docelowych na sekundę (FPS) określonej w CONTROL_AE_TARGET_FPS_RANGE . Dotyczy to wszystkich czujników kamer zgłaszanych przez getCameraIdList , ponieważ test przechodzi przez wymienione urządzenia i indywidualnie mierzy wydajność.

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

GPS/GNSS

Jeżeli testowane urządzenie obsługuje funkcję globalnego systemu pozycjonowania/globalnego systemu nawigacji satelitarnej (GPS/GNSS), należy dostarczyć do testowanego urządzenia sygnał GPS/GNSS o odpowiednim poziomie sygnału do odbioru i obliczania lokalizacji GPS. Część GPS musi być zgodna z ICD-GPS-200C. W przeciwnym razie sygnał GPS/GNSS może być dowolnego rodzaju, wliczając w to symulator satelitarny lub przemiennik GPS/GNSS sygnałów zewnętrznych, lub można umieścić testowane urządzenie 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, która obsługuje IPv4 i IPv6, ma połączenie internetowe z działającym DNS dla IPv4 i IPv6, obsługuje multiemisję IP i może traktować testowane urządzenie jako izolowanego klienta. Izolowany klient to konfiguracja, w której testowane urządzenie 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 testowanego urządzenia w izolowanej podsieci bez podłączonych 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 IPv6, możesz użyć punktu dostępu Wi-Fi i tunelu IPv6.

Aby przejść CTS, testowane urządzenie potrzebuje flag UP , BROADCAST i MULTICAST ustawionych 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 .

Wi-Fi RTT

Android zawiera interfejs Wi-Fi RTT API , który umożliwia korzystanie z funkcji czasu podróży w obie strony (RTT) Wi-Fi . Pozwala to urządzeniom mierzyć odległość do punktów dostępowych z dokładnością do 1 do 2 metrów, znacznie zwiększając dokładność lokalizacji w pomieszczeniach. Dwa zalecane urządzenia obsługujące Wi-Fi RTT to Google Wifi i punkt dostępowy Fitlet2 firmy Compulab (ustawiony na pasmo 40 MHz przy 5 GHz).

Punkty dostępowe powinny być włączone, ale nie wymagają połączenia sieciowego. Punkty dostępowe nie muszą znajdować się obok urządzenia testowego, ale zaleca się, aby znajdowały się w odległości nie większej niż 40 stóp od badanego urządzenia. Zazwyczaj wystarczy jeden punkt dostępu.

Konfiguracja komputera stacjonarnego

ADB i AAPT

Przed uruchomieniem CTS upewnij się, że zainstalowano najnowsze wersje Android Debug Bridge (adb) i Android Asset Packaging Tool (AAPT) oraz dodano lokalizację tych narzędzi do ścieżki systemowej komputera.

Aby zainstalować ADB, pobierz pakiet Android SDK Tools dla swojego systemu operacyjnego, otwórz go i postępuj zgodnie z instrukcjami zawartymi w dołączonym pliku README. Aby uzyskać informacje dotyczące rozwiązywania problemów, zobacz Instalowanie autonomicznych narzędzi SDK .

Upewnij się, że adb i aapt znajdują się w ścieżce systemowej. Poniższe polecenie zakłada, że ​​otworzyłeś archiwum pakietów w swoim katalogu domowym:

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version

Java Development Kit dla Ubuntu

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

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

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

Konfiguracja obsługi Pythona

Zainstaluj virtualenv dla swojej platformy, postępując zgodnie z instrukcjami instalacji .

Możesz sprawdzić, czy instalacja się powiodła, wywołując virtualenv -h .

Pliki CTS

Pobierz i otwórz pakiety CTS z Compatibility Test Suite Downloads pasujące do wersji Androida Twojego urządzenia 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ądzeń

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

Limit pamięci

Możesz chcieć zwiększyć maksymalną ilość pamięci dostępną podczas testu w skrypcie cts-tradfed . Zobacz przykład CL , aby uzyskać więcej informacji.

Konfiguracja urządzenia z Androidem

Buduje użytkownika

Zgodne urządzenie jest zdefiniowane jako urządzenie z kompilacją podpisaną przez użytkownika/klucz zwalniający. Na urządzeniu powinien być uruchomiony obraz systemu oparty na znanej, zgodnej kompilacji użytkownika (Android 4.0 lub nowszy) z nazw kodowych, tagów i numerów kompilacji .

Właściwość kompilacji pierwszego poziomu interfejsu API

Niektóre wymagania CTS zależą od kompilacji, z którą urządzenie zostało pierwotnie dostarczone. Na przykład urządzenia, które oryginalnie są dostarczane z wcześniejszymi kompilacjami, mogą być wyłączone z wymagań systemowych, które mają zastosowanie do urządzeń dostarczanych z nowszymi kompilacjami.

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

Producenci urządzeń mogą ponownie wykorzystać wspólną podstawową implementację, aby wprowadzić nowy produkt jako uaktualnienie 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 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 wartości Codenames, Tags i Build Numbers .

Pierwszy poziom API dla Androida 8.x lub niższego

W przypadku urządzeń z systemem Android 8.x lub starszym usuń (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ć informacje o pierwszym poziomie interfejsu API produktu. Jeśli flaga nie jest ustawiona, system 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 zgłaszanie aktywnych APEX), należy wstępnie zainstalować pakiet CtsShimApex na partycji /system .

Test walidacyjny podkładek APEX weryfikuje implementację CtsShimApex .

ro.apex.updatable wymagań

  • 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, CtsShimApex nie musi być preinstalowany na urządzeniu.

Test walidacyjny podkładek APEX weryfikuje implementację CtsShimApex .

Preinstalacje i preinstalacje CtsShim

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

Jeśli urządzenie nie obsługuje zarządzania pakietami APEX (tzn. brakuje właściwości ro.apex.updatable lub nie jest ona ustawiona) lub jeśli urządzenie działa w wersji 10 lub starszej, dwie wstępnie skompilowane aplikacje muszą być wstępnie zainstalowane w system oddzielnie.

Wersja urządzenia Preinstalacja
(jeśli obsługiwany jest APEX)
Wstępne ładowanie
RAMIĘ x86 RAMIĘ x86
Android 12 Android12-arm-release
pod /system/apex/com.android.apex.cts.shim.apex
Android12-x86-wydanie
pod /system/apex/com.android.apex.cts.shim.apex
android12-arm-CtsShim.apk
w /system/app/CtsShimPrebuilt.apk

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

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

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

Androida 11 android11-arm-release
pod /system/apex/com.android.apex.cts.shim.apex
android11-x86-wydanie
pod /system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
w /system/app/CtsShimPrebuilt.apk

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

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

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

Android 10 Android10-wydanie
pod /system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
w /system/app/CtsShimPrebuilt.apk

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

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

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

Android 9, O i O-MR1 Nie dotyczy Nie dotyczy ramię-CtsShim.apk
w /system/app/CtsShimPrebuilt.apk

ramię-CtsShimPriv.apk
w /system/priv-app/CtsShimPrivPrebuilt.apk

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

x86-CtsShimPriv.apk
w /system/priv-app/CtsShimPrivPrebuilt.apk

Aby przejść testy, wstępnie załaduj aplikacje do odpowiednich katalogów na obrazie systemu bez ponownego podpisywania aplikacji.

Przykładowy aplet

Android 9 wprowadził Open Mobile API. 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) testowanego urządzenia lub na karcie SIM używanej przez testowane urządzenie. Przykładowy aplet eSE i przykładowy aplet SIM można znaleźć w AOSP.

Zobacz CTS Test for Secure Element , aby uzyskać bardziej szczegółowe informacje na temat przypadków testowych Open Mobile API i przypadków testowych Access Control.

Wymagania dotyczące przechowywania

Testy obciążenia nośnika 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 należą do Blender Foundation na licencji Creative Commons Attribution 3.0 .

Wymagane miejsce zależy od maksymalnej rozdzielczości odtwarzania wideo obsługiwanej przez urządzenie. Zobacz sekcję 5 w dokumencie Definicja zgodności z systemem Android, aby uzyskać informacje na temat wersji platformy wymaganych rozdzielczości.

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

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

Ekran i przechowywanie

  • Każde urządzenie, które nie ma wbudowanego ekranu, musi być podłączone do ekranu.
  • Jeśli urządzenie ma gniazdo kart pamięci, podłącz pustą kartę SD. Użyj karty SD, która obsługuje magistralę Ultra High Speed ​​(UHS) o pojemności SDHC lub SDXC lub kartę o klasie szybkości co najmniej 10 lub wyższej, aby upewnić się, że może przejść CTS.

  • Jeśli urządzenie ma gniazda kart SIM, podłącz aktywowaną kartę SIM do każdego gniazda. 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 systemem Android 12 lub nowszym wszystkie karty SIM muszą obsługiwać przechowywanie numerów skróconych (ADN). Karty GSM i USIM z dedykowanym plikiem telekomunikacyjnym (DF Telecom ) spełniają to wymaganie.

Programista UICC

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

Konfiguracja urządzenia z systemem Android

  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 jest dostępna funkcja GPS lub Wi-Fi/sieci komórkowej: Ustawienia > Lokalizacja > Włączona .

  5. Połącz się z siecią Wi-Fi, która obsługuje IPv6, może traktować testowane urządzenie 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 wzoru blokady ani hasła: Ustawienia > Zabezpieczenia > Blokada ekranu > Brak .

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

  8. Ustaw godzinę na format 12-godzinny: Ustawienia > Data i godzina > Użyj formatu 24-godzinnego > Wyłącz .

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

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

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

  12. W systemie Android 13 lub nowszym ustaw urządzenie, aby zezwalało na symulowanie modemu: Ustawienia > Opcje programisty > Zezwól na symulację modemu > Wł .

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

  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ą, używając ustawienia afordancji dostępnej dla użytkownika (nie ukrytego).

Instalacja pliku

Zainstaluj i skonfiguruj aplikacje pomocnicze na urządzeniu.

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

    • CTS w wersji 2.1 R2 do 4.2 R4: Skonfiguruj urządzenie (lub emulator), aby uruchomić testy ułatwień dostępu za pomocą: 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 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, aby uruchomić test administrowania urządzeniem za pomocą: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

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

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

    1. Przejdź ( cd ) do ścieżki, w której pliki multimedialne są pobierane i rozpakowywane.
    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 masz pewności co do 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 ) określonego urządzenia. Na przykład, aby skopiować do 720x480 na urządzenie z numerem seryjnym 1234567, uruchom:

        ./copy_media.sh 720x480 -s 1234567