CTS'yi ayarlama

CTS'yi çalıştırmak için öncelikle fiziksel ortamınızı, masaüstü makinenizi ve test için kullandığınız Android cihazı hazırlayın.

Fiziksel ortam

Bluetooth LE işaretçileri

Test edilen cihaz (DUT) Bluetooth LE'yi destekliyorsa Bluetooth LE tarama testi için DUT'un 5 metre yakınına en az üç Bluetooth LE işaretçisi yerleştirin. Bu işaretçilerin yapılandırılması veya belirli bir şey yayması gerekmez. iBeacon, Eddystone ve hatta BLE işaretçilerini taklit eden cihazlar da dahil olmak üzere her türden olabilirler.

Ultra geniş bant

DUT ultra geniş bandı (UWB) destekliyorsa UWB'yi destekleyen başka bir cihaz, antene ve radyo ölü bölgesi olmaması için yeterince yakın bir yere yerleştirilmeli ve yönlendirilmelidir. Mesafe doğruluğu testleri için belirli konumlandırma ve yön gereksinimleri vardır. Kurulum ayrıntıları için Ultra geniş bant gereksinimleri bölümüne bakın. Ultra geniş bant testi, komut satırında hangi iki cihazın bir metre uzaklıkta olduğu belirtilerek manuel olarak çalıştırılmalıdır. Bu test için gerekli olan bölümleme hakkında ayrıntılı bilgi için Yerel bölümleme bölümüne bakın.

Kameralar

Kamera CTS'sini çalıştırırken test desen grafiği (damarlı desen gibi) ile normal ışık koşullarını kullanın. Test kalıbı grafiğini, lense çok yakın olmadığından emin olmak için DUT'un minimum odak mesafesine göre yerleştirin.

Kamera sensörlerini, test edilen sensörlerin CONTROL_AE_TARGET_FPS_RANGE bölümünde belirtildiği gibi yapılandırılmış maksimum saniyedeki hedef kare sayısına (FPS) ulaşmasına ve bu sayıyı korumasına olanak tanıyacak şekilde yeterli ışıklandırmaya sahip bir sahneye doğrultun. Test, listelenen cihazlarda yineleme gerçekleştirip performansı ayrı ayrı ölçtüğünden bu durum, getCameraIdList tarafından bildirilen tüm kamera sensörleri için geçerlidir.

DUT, USB web kameraları gibi harici kameraları destekliyorsa CTS'yi çalıştırırken harici bir kamera takın. Aksi takdirde CTS testleri başarısız olur.

GPS/GNSS

DUT, küresel konumlandırma sistemi/küresel navigasyon uydu sistemi (GPS/GNSS) özelliğini destekliyorsa DUT'ya, alım ve GPS konum hesaplaması için uygun bir sinyal seviyesinde GPS/GNSS sinyali sağlayın. GPS bölümü, ICD-GPS-200C ile uyumlu olmalıdır. Aksi takdirde, GPS/GNSS sinyali bir uydu simülasyon cihazı veya dış mekan sinyallerinin GPS/GNSS tekrarlayıcısı da dahil olmak üzere her türden olabilir. Alternatif olarak, DUT'yu bir pencereye yeterince yakın olacak şekilde yerleştirerek doğrudan yeterli GPS/GNSS sinyali alabilirsiniz.

Kablosuz ve IPv6

CTS testleri için IPv4 ve IPv6'yı destekleyen, IPv4 ve IPv6 için çalışan DNS'ye sahip bir internet bağlantısı bulunan, IP çoklu yayını destekleyen ve DUT'yu izole bir istemci olarak değerlendirebilen bir kablosuz ağ gerekir. Bağımsız istemci, DUT'nin söz konusu alt ağdaki yayın/çoklu ağ mesajlarını göremediği bir yapılandırmadır. Bu durum, kablosuz erişim noktası (AP) yapılandırmasında veya DUT'nun diğer cihazlar bağlı olmadan izole bir alt ağda çalıştırılmasıyla ortaya çıkar.

IPv6'ya bağlı bazı testleri geçmek için yerel bir IPv6 ağına, IPv6 operatör ağına veya VPN'ye erişiminiz yoksa kablosuz erişim noktası ve IPv6 tüneli kullanabilirsiniz.

CTS'yi aktarmak için DUT'nin kablosuz arayüzünde UP, BROADCAST ve MULTICAST işaretlerinin ayarlanmış olması gerekir. Kablosuz bağlantı arayüzüne IPv4 ve IPv6 adreslerinin atanması gerekir. adb shell ifconfig ile kablosuz arayüz özelliklerini kontrol edin.

Kablosuz STA/STA eşzamanlılığını destekleyen cihazlar için birden fazla kablosuz ağ (en az 2) gerekir. CTS'yi geçmek için kablosuz ağların farklı SSID'lere sahip farklı bantlarda veya farklı BSSID'lere sahip aynı SSID'de çalışması gerekir.

Kablosuz RTT

Android, kablosuz gidiş dönüş süresi (RTT) özelliği için Wi-Fi RTT API'yi içerir. Bu sayede cihazlar, erişim noktalarına olan mesafelerini 1 ila 2 metre doğrulukla ölçebilir ve kapalı mekan konum doğruluğunu önemli ölçüde artırabilir. Kablosuz RTT'yi destekleyen önerilen iki cihaz Google Wifi ve Compulab'ın fitlet2 erişim noktasıdır (5 GHz'te 40 MHz bant genişliğine ayarlanmıştır).

Erişim noktaları açık olmalıdır ancak ağ bağlantısı gerekmez. Erişim noktalarının test cihazının yanında olması gerekmez ancak DUT'tan en fazla 40 metre uzakta olmaları önerilir. Genellikle bir erişim noktası yeterlidir.

Masaüstü makine kurulumu

Dikkat: CTS, 64 bit Linux makinelerini destekler. CTS, Windows OS veya MacOS'te desteklenmez.

FFMPEG

Barındırıcı makineye ffmpeg 5.1.3 (veya sonraki) sürüm paketini yükleyin.

Ana makine koşulu

CTS ana makinesi için minimum gereksinim 32 GiB RAM ve 256 GiB disk kapasitesidir. Bu, artan CTS test örneği sayısını ve Tradefed'de Java yığın alanı rezervasyonundaki artışı karşılamak için gereklidir.

ADB ve AAPT2

CTS'yi çalıştırmadan önce hem Android Hata Ayıklama Köprüsü (adb) hem de Android Asset Packaging Tool (AAPT2)'ın en son sürümlerini yüklediğinizden ve bu araçların konumunu makinenizin sistem yoluna eklediğinizden emin olun.

ADB ve AAPT2'yi yüklemek için Android Studio'nun SDK Yöneticisi'nden veya sdkmanager komut satırı aracından en son Android SDK Platform Araçları'nı ve Android SDK Derleme Araçları'nı indirin.

adb ve aapt2 dosyalarının sistem yolu içinde olduğundan emin olun. Aşağıdaki komutta, paket arşivlerini ana dizininizdeki android-sdk adlı bir alt dizine indirdiğiniz varsayılmaktadır:

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

Ubuntu için Java Geliştirme Kiti

Java Geliştirme Kiti'nin (JDK) doğru sürümünü yükleyin.

  • Android 11 için OpenJDK11'i yükleyin.
  • Android 9 ve Android 10 için OpenJDK9'u yükleyin.
  • Android 7.0, 7.1, 8.0 ve 8.1 için OpenJDK8'i yükleyin.

Ayrıntılar için JDK gereksinimleri başlıklı makaleye bakın.

Python desteği için kurulum

Yükleme talimatlarını uygulayarak platformunuz için virtualenv'ü yükleyin.

virtualenv -h çağrısını yaparak yüklemenin başarılı olduğunu doğrulayabilirsiniz.

CTS dosyaları

Cihazlarınızın Android sürümüne ve destekledikleri tüm uygulama ikili arayüzlerine (ABI'ler) uygun CTS paketlerini Uyumluluk Test Paketi İndirmeleri'nden indirip açın.

CTS medya dosyalarının en son sürümünü indirip açın.

Mainline ile ilgili CTS dosyalarını indirin (isteğe bağlı)

Bir CTS sürümünü ilk kez çalıştırdığınızda CTS, ana hatla ilgili bazı CTS dosyalarını dinamik olarak indirir. Bu işlem, ağ hızınıza bağlı olarak çalışma süresine en az 10 dakika ekler.

Bu ek CTS çalışma süresini önlemek için CTS sürümünü çalıştırmadan önce aşağıdaki talimatları uygulayarak Mainline ile ilgili CTS dosyalarını indirebilirsiniz:

  1. Aşağıdaki komutu çalıştırarak cihazdaki Android API düzeyini öğrenin:

    adb shell getprop ro.build.version.sdk
    
  2. Mainline CTS dosyalarını indirmek için download_mcts.sh komut dosyasındaki talimatları uygulayın.

    İndirme işlemi, ağ hızınıza bağlı olarak en az 10 dakika sürer.

Cihaz algılama

Sisteminizi cihazınızı algılayacak şekilde ayarlama adımlarını uygulayın.

Bellek sınırı

cts-tradefed komut dosyasında, test çalıştırma sırasında kullanılabilen maksimum belleği artırabilirsiniz. Daha fazla bilgi için örnek CL'ye bakın.

Android cihaz kurulumu

Kullanıcı derlemeleri

Uyumlu cihaz, kullanıcı/sürüm anahtarıyla imzalanan bir derlemeye sahip cihaz olarak tanımlanır. Cihazınız, Kod Adları, Etiketler ve Derleme Numaraları üzerinden uyumlu olduğu bilinen kullanıcı derlemesine (Android 4.0 veya sonraki sürümler) dayalı bir sistem görüntüsü çalıştırıyor olmalıdır.

İlk API düzeyi derleme mülkü

Belirli CTS şartları, cihazın ilk gönderildiği derlemeye bağlıdır. Örneğin, başlangıçta önceki derlemelerle gönderilen cihazlar, daha sonraki derlemelerle birlikte gönderilen cihazlar için geçerli olan sistem gereksinimlerinden hariç tutulabilir.

Cihaz üreticileri, bu bilgileri CTS'ye sunmak için derleme zamanı mülkü ro.product.first_api_level'ü tanımlayabilir. Bu mülkün değeri, cihazın ticari olarak kullanıma sunulduğu ilk API düzeyidir.

Cihaz üreticileri, aynı cihaz grubundaki mevcut bir ürünün yükseltmesi olarak yeni bir ürün lansmanı yapmak için ortak temel uygulamayı yeniden kullanabilir. Cihaz üreticileri, isteğe bağlı olarak mevcut ürünün API düzeyini ro.product.first_api_level olarak ayarlayabilir. Böylece CTS ve Treble/VTS için yükseltme şartları uygulanır.

Cihaz üreticileri, bu özelliği ayarlamak için device.mk dosyalarında PRODUCT_SHIPPING_API_LEVEL değerini tanımlayabilir. Aşağıdaki örnekte gösterildiği gibi:

# 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

Android 9 veya sonraki sürümler için ilk API düzeyi

Android 9 veya sonraki bir sürümle kullanıma sunulan cihazlarda ro.product.first_api_level mülkünü Kod Adları, Etiketler ve Yapı Numaraları'ndan geçerli bir değere ayarlayın.

Android 8.x veya önceki sürümler için birinci API düzeyi

Android 8.x veya daha eski sürümlerde kullanıma sunulan cihazlar için ürünün ilk derlemesinin ro.product.first_api_level mülkünün ayarını kaldırın (kaldırın). Sonraki tüm derlemeler için ro.product.first_api_level değerini doğru API düzeyi değerine ayarlayın. Bu, mülkün yeni bir ürünü doğru şekilde tanımlamasına olanak tanır ve ürünün ilk API düzeyiyle ilgili bilgileri korur. İşaret kaldırılırsa Android, Build.VERSION.SDK_INT değerini ro.product.first_api_level değerine atar.

CTS uyumluluğu için ara parça paketleri

Android 10 veya sonraki sürümler APEX adlı bir paket biçimi içerir. APEX yönetim API'leri için CTS testlerini çalıştırmak üzere (ör. yeni bir sürüme güncelleme veya etkin APEX'leri bildirme) bir CtsShimApex paketini /system bölümüne önceden yüklemeniz gerekir.

APEX dolgu doğrulama testi, CtsShimApex öğesinin uygulanmasını doğrular.

ro.apex.updatable koşulları

  • ro.apex.updatable mülkü true olarak ayarlanmışsa APEX paket yönetimini destekleyen tüm cihazlar için CtsShimApex gereklidir.

  • ro.apex.updatable özelliği eksikse veya ayarlanmamışsa CtsShimApex'un cihaza önceden yüklenmesi gerekmez.

APEX dolgu doğrulama testi, CtsShimApex öğesinin uygulanmasını doğrular.

CtsShim önceden yükler ve önceden yükler

Android 11'den itibaren CtsShimApex, manifest dışında kod içermeyen iki önceden derlenmiş uygulama (derleme kaynağından derlenmiştir) içerir. CTS, ayrıcalıkları ve izinleri test etmek için bu uygulamaları kullanır.

Cihaz APEX paket yönetimini desteklemiyorsa (yani ro.apex.updatable mülkü eksik veya ayarlanmamışsa) veya cihazda 10 veya daha eski bir sürüm yüklüyse iki önceden oluşturulmuş uygulama sisteme ayrı ayrı önceden yüklenmiş olmalıdır.

APEX destekleniyorsa ilgili sürümün ön yüklemeleri /system/apex/com.android.apex.cts.shim.apex olarak yerleştirilmelidir.

Normal önceden oluşturulmuş uygulamalar kullanılıyorsa uygun sürüm için CtsShim ve CtsShimPriv sırasıyla /system/app/CtsShimPrebuilt.apk ve /system/priv-app/CtsShimPrivPrebuilt.apk olarak yerleştirilmelidir.

Aşağıdaki tabloda, her cihaz sürümü ve mimari için kullanılabilen ön yüklemeler listelenmiştir.

Cihaz Sürümü
'ü önceden yükleme (APEX destekliyorsa)
Önceden Yükle
ALARMI ETKİNLEŞTİR x86 ALARMI ETKİNLEŞTİR x86
Android 15 android15-arm-release android15-x86-sürümü android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

Android 14 android14-arm-sürümü 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 ve O-MR1 Yok Yok arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Testleri geçmek için uygulamaları yeniden imzalamadan sistem görüntüsünde uygun dizinlere önceden yükleyin.

Örnek applet

Android 9, Open Mobile API'leri kullanıma sundu. Birden fazla güvenli öğe bildiren cihazlar için CTS, Open Mobile API'lerinin davranışını doğrulamak üzere test örnekleri ekler. Bu test senaryoları, örnek bir applet'in DUT'un yerleşik güvenli öğesine (eSE) veya DUT tarafından kullanılan SIM karta tek seferlik yüklenmesini gerektirir. eSE örnek applet'ini ve SIM örnek applet'ini AOSP'de bulabilirsiniz.

Open Mobile API test durumları ve Erişim Kontrolü test durumları hakkında daha ayrıntılı bilgi için Secure Element için CTS Testi bölümüne bakın.

Depolama alanı gereksinimleri

CTS medya stres testleri için video kliplerin harici depolama alanında (/sdcard) olması gerekir. Kliplerin çoğu, Creative Commons Attribution 3.0 lisansı kapsamında Blender Foundation tarafından telif hakkıyla korunan Big Buck Bunny'dan alınmıştır.

Gerekli alan, cihazın desteklediği maksimum video oynatma çözünürlüğüne bağlıdır. Gerekli çözünürlüklerin platform sürümü için Android Uyumluluk Tanımı belgesinin 5. bölümüne bakın.

Maksimum video oynatma çözünürlüğüne göre depolama alanı gereksinimleri şunlardır:

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

Ekran ve depolama alanı

  • Yerleşik ekranı olmayan tüm cihazların bir ekrana bağlanması gerekir.
  • Cihazda bellek kartı yuvası varsa boş bir SD kart takın. CTS'den geçebilmesi için SDHC veya SDXC kapasiteli ultra yüksek hızlı (UHS) veriyolunu destekleyen bir SD kart veya en az 10 veya daha yüksek hız sınıfına sahip bir SD kart kullanın.

  • Cihazda SIM kart yuvaları varsa her yuvaya etkin bir SIM kart takın. Cihaz SMS'yi destekliyorsa her SIM kartın kendi numara alanı doldurulmalıdır. Android 12 veya sonraki sürümleri çalıştıran cihazlar için tüm SIM kartlar, kısaltılmış arama numaralarının (ADN) depolanmasını desteklemelidir. Telekomun özel dosyasına (DFTelecom) sahip GSM ve USIM kartları bu koşulu karşılar.

Geliştirici UICC

CTS operatör API testlerini çalıştırmak için cihazın, UICC'yi hazırlama bölümünde belirtilen şartları karşılayan CTS operatör ayrıcalıklarına sahip bir SIM kullanması gerekir.

Android cihaz yapılandırması

  1. Cihazı fabrika verilerine sıfırlayın: Ayarlar > Yedekleme ve sıfırlama > Fabrika verilerine sıfırlama.

  2. Cihazınızın dilini İngilizce (Amerika Birleşik Devletleri) olarak ayarlayın: Ayarlar > Dil ve giriş > Dil.

  3. Cihaz varsayılan yazı tiplerini özelleştirmeyi destekliyorsa varsayılan sans-serif yazı tipi ailesini Roboto (AOSP derlemelerinde kullanılan varsayılan sans-serif yazı tipi ailesi) olarak ayarlayın.

  4. Cihazda GPS veya kablosuz/hücresel ağ özelliği varsa konum ayarını açın: Ayarlar > Konum > Açık.

  5. IPv6'yı destekleyen bir kablosuz ağa bağlanın. DUT'yu yalıtılmış istemci olarak işleyebilir (yukarıdaki Fiziksel ortam bölümüne bakın) ve internet bağlantısı olmalıdır: Ayarlar > Kablosuz.

  6. Cihazda kilit deseni veya şifre belirlenmediğinden emin olun: Ayarlar > Güvenlik > Ekran kilidi > Yok.

  7. Cihazınızda USB üzerinden hata ayıklamayı etkinleştirin: Ayarlar > Geliştirici seçenekleri > USB üzerinden hata ayıklama.

  8. Saati 12 saatlik biçimde ayarlayın: Ayarlar > Tarih ve saat > 24 saatlik biçimini kullan > Kapalı.

  9. Cihazı açık kalacak şekilde ayarlayın: Ayarlar > Geliştirici seçenekleri > Açık Kal > Açık.

  10. Yalnızca Android 5.x ve 4.4.x sürümlerinde cihazı, sahte konumlara izin verecek şekilde ayarlayın: Ayarlar > Geliştirici seçenekleri > Sahte konumlara izin ver > Açık.

  11. Android 4.2 veya sonraki sürümlerde USB üzerinden uygulama doğrulamasını devre dışı bırakın: Ayarlar > Geliştirici seçenekleri > USB üzerinden uygulamaları doğrula > Kapalı.

  12. Android 13 veya sonraki sürümlerde, cihazı sahte modeme izin verecek şekilde ayarlayın: Ayarlar > Geliştirici seçenekleri > Sahte Modem'e izin ver > Açık.

  13. Tarayıcıyı başlatın ve başlangıç/kurulum ekranlarını kapatın.

  14. Cihazı test etmek için kullanılacak masaüstü bilgisayarı USB kablosuyla bağlayın.

  15. CTS'yi çalıştırmadan önce, kullanıcı tarafından erişilebilir (gizli değil) ayarını kullanarak Roboto2'yi sans-serif yazı tipi olarak ayarlayın.

Dosya yükleme

Cihazlara yardımcı uygulamaları yükleyip yapılandırabilirsiniz.

  1. Cihazınızı CTS sürümünüze göre ayarlayın:

    • 2.1 R2 ile 4.2 R4 arasındaki CTS sürümleri: Cihazınızı (veya emülatörünü) erişilebilirlik testlerini çalıştıracak şekilde ayarlayın: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Cihazda, yetkiyi etkinleştirin: Ayarlar > Erişilebilirlik > Erişilebilirlik > Erişilebilirlik Hizmetine Yetki Verme.

    • CTS 6.x veya önceki sürümler: android.software.device_admin öğesini beyan eden cihazlarda cihazınızı, aşağıdakileri kullanarak cihaz yönetim testini çalıştıracak şekilde ayarlayın: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Ayarlar > Güvenlik > Cihaz yöneticilerini seç bölümünde iki android.deviceadmin.cts.CtsDeviceAdminReceiver* cihaz yöneticisini etkinleştirin. android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver ve önceden yüklenmiş diğer cihaz yöneticilerinin devre dışı bırakıldığından emin olun.

  2. CTS medya dosyalarını cihaza aşağıdaki şekilde kopyalayın:

    1. Medya dosyalarının indirildiği ve sıkıştırmasının açıldığı yola gidin (cd).
    2. Dosya izinlerini değiştirin: chmod u+x copy_media.sh

    3. Gerekli dosyaları kopyalayın:

      • Klipleri 720x480 çözünürlüğe kadar kopyalamak için şu komutu çalıştırın:

        ./copy_media.sh 720x480
        
      • Maksimum çözünürlükten emin değilseniz tüm dosyaları kopyalayın:

        ./copy_media.sh all
        
      • Adb altında birden fazla cihaz varsa belirli bir cihazın seri seçeneğini (-s) sona ekleyin. Örneğin, 1234567 seri numaralı cihaza 720x480'e kadar kopyalamak için şu komutu çalıştırın:

        ./copy_media.sh 720x480 -s 1234567