Bu sayfada, CTS Verifier (CTS-V) ana makine tarafı Android 16 QPR2 ve Android 17 testlerini ayarlama ve çalıştırmayla ilgili talimatlar yer almaktadır. Ana makine tarafında iki tür test vardır: çoklu cihaz testleri (Android 17'den önce kullanıma sunulmuştur) ve etkileşimli testler (Android 17'de yeni):
- Çok cihazlı testler, tamamen otomatik testlerdir.
- Etkileşimli testler, yarı otomatik testlerdir ve test edilen cihazda (DUT) bazı manuel adımları uygulamanızı gerektirir.
Yeni etkileşimli testlere ek olarak, manuel aralık doğruluğu ve telekom testlerini ana makine tarafında çok cihazlı testlere dönüştürdük. Ayrıca, artık kablosuz bağlantı testleri de zorunlu.
Ana makine tarafı testlerini ayarlama
Ana makine tarafı testleri oluşturmak için aşağıdaki adımları uygulayın (çok cihazlı testler için ek kurulum gerekir):
- Masaüstü makinenizin CTS için işletim sistemi gereksinimlerini karşıladığını doğrulayın.
- Masaüstü yazılımını yükleme başlıklı makalenin 2. ve 5. adımlarını uygulayarak adb, AAPT2 ve Python'ın masaüstünüze doğru şekilde yüklendiğini doğrulayın.
- Python sürümünüz 3.11 veya üzeri olmalıdır. Python sürümünüzü belirlemek için
python3 --versionkomutunu çalıştırın. Sürüm 3.11'den düşükse en son resmi Python sürümünü yükleyin. Daha fazla bilgi içinpython.org'ın İndirilenler bölümüne bakın. - Bazı testler için ana makinede Python
venvmodülünün bulunması gerekir. Debian ve Ubuntu sistemlerinde bu modül varsayılan olarak yüklü olmayabilir. Python sürümünüzdevenvmodülünün olup olmadığını belirlemek içinpython3 -m venv venvkomutunu çalıştırın. Bu komut başarısız olursa bir hata mesajı gösterilir.python3.x-venvpaketini yüklemek için talimatları uygulayın.
- Python sürümünüz 3.11 veya üzeri olmalıdır. Python sürümünüzü belirlemek için
Yalnızca ana makine tarafındaki etkileşimli testleri çalıştırıyorsanız Ana makine tarafındaki testleri çalıştırma bölümüne gidin. Ancak çok cihazlı testler çalıştırmak istiyorsanız Ana tarafında çok cihazlı testler ayarlama bölümüne gidin.
Ana makine tarafında çok cihazlı testler ayarlama
Ana makine tarafında çok cihazlı testler ayarlamak için aşağıdaki adımları uygulayın:
- Masaüstü makinenizin CTS için işletim sistemi gereksinimlerini karşıladığını doğrulayın.
Masaüstü yazılımını yükleme başlıklı makalenin 2. ve 5. adımlarını uygulayarak adb, AAPT2 ve Python'ın masaüstünüze doğru şekilde yüklendiğini doğrulayın.
- Python sürümünüz 3.11 veya üzeri olmalıdır. Python sürümünüzü belirlemek için
python3 --versionkomutunu çalıştırın. Sürüm 3.11'den düşükse en son resmi Python sürümünü yükleyin. Daha fazla bilgi içinpython.org'ın İndirilenler bölümüne bakın. - Bazı testler için ana makinede Python
venvmodülünün bulunması gerekir. Debian ve Ubuntu sistemlerinde bu modül varsayılan olarak yüklü olmayabilir. Python sürümünüzdevenvmodülünün olup olmadığını belirlemek içinpython3 -m venv venvkomutunu çalıştırın. Bu komut başarısız olursa bir hata mesajı gösterilir.python3.x-venvpaketini yüklemek için talimatları uygulayın.
- Python sürümünüz 3.11 veya üzeri olmalıdır. Python sürümünüzü belirlemek için
Her biri CTS-V kurulu olan iki eşleşen DUT hazırlayın.
- DUT kurulumu hakkında bilgi edinmek için DUT'u kurma başlıklı makaleyi inceleyin.
- CTS-V'yi ayarlama talimatları için Kurulum başlıklı makaleyi inceleyin.
Test türünüzün kurulum bölümüne gidin:
- NFC testleri için NFC testlerini ayarlama başlıklı makaleyi inceleyin.
- Kablosuz AP bağlantı testleri için Kablosuz AP bağlantı testleri oluşturma başlıklı makaleyi inceleyin.
- Mesafe doğruluğu testleri için Mesafe doğruluğu testlerini ayarlama başlıklı makaleyi inceleyin.
- CDM modülünü test etmek için Standart iki cihazlı testler ayarlama bölümüne, ardından CDM testleri ayarlama bölümüne gidin.
Testiniz bu listede yoksa Standart iki cihazlı testler ayarlama bölümüne gidin.
NFC testlerini ayarlama
NFC testlerinde bir DUT ve bir PN532 NFC çipi kullanılır.
NFC testlerini ayarlamak için:
- PN532 NFC çipi satın alın. All-In-One PN532'yi öneririz.
- DUT'ta Ayarlar uygulamasına gidin.
- NFC'yi etkinleştirin.
NFC çipini konumlandırın:
Telefonlar için DUT'nin NFC okuyucusunu Şekil 1'de gösterildiği gibi konumlandırın:

Şekil 1. NFC çipinin konumu
Diğer cihaz türlerinde çipi, cihazın NFC anteninin yanına yerleştirin.
PN532 NFC çipini USB kablosu kullanarak test iş istasyonunuza bağlayın.
Kablosuz AP bağlantı testleri ayarlama
Kablosuz ağ erişim noktası (AP) bağlantı testleri (CtsWifiConnectionTests), bir test cihazı ile AP arasındaki bağlantıyı test eder. Bu testleri aşağıdaki iki şekilde ayarlayabilirsiniz:
- 1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın.
- 2. seçenek: Programlanabilir bir erişim noktası (AP) ayarlayın.
Android 17 için 2. seçeneği kullanmanızı önemle tavsiye ederiz ancak bu zorunlu değildir. Aşağıdaki iki bölümde her seçenek açıklanmaktadır.
1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanma
1. seçenek için kablosuz ağ kapsama alanında bir Android DUT gerekir. DUT, koruma kutusundaysa ve kablosuz ağa bağlanamıyorsa koruma kutusundan çıkarın.
2. seçenek: Programlanabilir bir AP ayarlama
Kablosuz bağlantı testleri için programlanabilir bir AP ayarlamak üzere:
Banana Pi R3 AP'yi satın alıp kurun. Banana Pi R3 AP'yi satın alma ve ayarlama hakkında bilgi edinmek için Banana Pi BPI-R3 AP'yi ayarlama başlıklı makaleyi inceleyin.
İsteğe bağlı: Korumalı kutunuz yoksa JTP-SR101 korumalı kutusunu kullanmanızı öneririz. Aşağıdaki bilgileri kullanarak bu kutuyu satın alın:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, Çin
İlgili kişi: Forest Pan
E-posta: forest.pan@jtpmak.cn
Telefon (Çin): +86 18676993556DUT ve AP'yi ana makineye bağlayın ve RF koruma kutusuna yerleştirin. Test edilen cihaz ile AP arasında en az 10 cm mesafe olmalıdır. Şekil 2'de bu yapılandırma gösterilmektedir:

Şekil 2. Kalkan kutusunda test cihazı ve AP.
AP'ye ana makineden erişilebildiğini doğrulamak için SSH'yi kullanın.
Mesafe doğruluğu testleri ayarlama
Mesafe doğruluğu testleri oluşturmak için:
Birbirine benzeyen iki Android DUT'u 1 metre arayla, aynı yükseklikte, doğrudan görüş hattı olacak şekilde ve her cihazın arkası birbirine bakacak şekilde yerleştirin. Şekil 3'te bu yön gösterilmektedir:

Şekil 3. Cihaz yönü
İki cihazı da USB kablolarıyla masaüstü bilgisayara bağlayın.
Standart iki cihazlı testler ayarlama
Varsayılan iki cihazlı kurulum için:
- Birbiriyle eşleşen iki Android DUT'u yaklaşık 20 cm arayla yerleştirin.
Önemle tavsiye edilir: İki cihazı da koruyucu bir kutuya yerleştirin. Kalkan kutusu, test kararlılığını artırır ve test hatalarında hata ayıklamayı kolaylaştırır.
Telekom testlerinde her test edilen cihazda SIM kart ve hücresel sinyal olmalıdır. Test edilen cihazlar korumalı bir kutudaysa hücresel sinyal kutuya bağlanmalıdır. Aksi takdirde, cihazları koruma kutusunun dışına taşıyın.
İsteğe bağlı: Kablosuz bağlantıda hata ayıklama için OTA sniffer'ı ayarlayın.
CDM testleri oluşturma
test_permissions_sync() test durumu, testin yürütüldüğü cihazların derleme türüne bağlı olarak farklı davranışlar gösteriyor. Hata ayıklanabilir (userdebug veya eng) ve hata ayıklanamayan (user) derlemelerin her ikisinin de OEM'ler tarafından test edilmesi ve her ikisi için de testlerin başarılı olması kritik önem taşır.
Muafiyet
İzin senkronizasyonu API'si uygulamasının CDD maddesi, yalnızca cihazlar arasında güvenli bir kanal üzerinden verilerin başarılı bir şekilde aktarılabilmesini gerektirir. Güvenli kanal uygulaması CDD uygunluğu şartı olmadığından bu test, hata ayıklanamayan (kullanıcı) derlemelerde atlanabilir ancak yalnızca CDM izinleri senkronizasyonu özelliğini desteklemeyi devre dışı bırakmak istiyorsanız.
Testler, hata ayıklanabilir derlemelerde istisnasız olarak başarılı olmalıdır.
Hata ayıklanamayan derlemelerde test yapma ön koşulları
Muaf değilseniz aşağıdaki ön koşulları karşıladığınızı doğrulayın.
Güvenli kanal, donanımın güvenilirliğini doğrulamak için AVF'yi (AttestationVerificationFramework) kullanır. Her iki tarafın da oluşturduğu onaylar, sistemlerinde yetkisiz değişiklik yapılmadığını doğrulamak için kendileriyle ilgili çeşitli bilgiler içerir. AVF, doğrulama işlemi sırasında aşağıdaki durumları kontrol eder:
- Cihazın internet erişimi olmalıdır.
- Cihazda Doğrulanmış Önyükleme kullanılıyor ve derleme, geliştirme anahtarıyla değil yayın anahtarıyla imzalanmış olmalıdır.
- Cihazın bootloader'ı kilitli olmalıdır. Ayrıntılı talimatlar için önyükleyiciyi kilitleme başlıklı makaleyi inceleyin.
- İşletim sistemi, temel başlatma ve temel satıcı yama düzeyleri 12 ay içinde olmalıdır. Bir yıldan eski bir derleme kullanmayın.
- Cihaz onayı, tedarikçi tarafından onaylanmış bir kök sertifikasıyla desteklenir. Güvenilir kök sertifikalarınızı
vendor_required_attestation_certificates.xmlkaynak yer paylaşımında belirtin.
Ana makine tarafı testlerini çalıştırma
NFC testleri gibi bazı çoklu cihaz testleri ek kurulum gerektirir. Ek kurulum gerektiren testler ayrı ayrı çalıştırılır. Ek kurulum gerektirmeyen testleri bir grupta çalıştırabilirsiniz.
Test iş istasyonunuzda, CTS-V zip paketinin açıldığı dizinden
cts-v-hostkonsolunu başlatın:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedDUT'taki CTS-V uygulamasında Host-side Tests'i (Ana Taraf Testleri) tıklayın. Şekil 4'te CTS-V uygulamasındaki ana makine tarafı testleri gösterilmektedir:
Şekil 4. CTS-V uygulamasında ana makine tarafı testleri.
Test tarafında çok cihazlı test modüllerinin listesi gösterilir.
CTS-V ana makine konsolunda, standart iki cihazlı kurulumu kullanan çok cihazlı testleri çalıştırmak için aşağıdaki komutu kullanın:
run cts-v-host-multidevice-defaultSonuçlar, DUT'taki CTS-V uygulamasında her test modülünün altında görünür. Yeşil işaretli testler başarılı, kırmızı işaretli testler başarısız olmuştur.
Şekil 5'te CtsCompanionDeviceManager testleriyle ilgili örnek sonuçlar gösterilmektedir:
Şekil 5. Ana makine tarafında birden fazla cihazla yapılan testler CTS-V uygulamasında sonuçlanır.
CTS-V ana makine konsolunda, etkileşimli testleri çalıştırmak için aşağıdaki komutu kullanın:
run cts-v-host-interactiveSonuçlar, DUT'taki CTS-V uygulamasında her test modülünün altında görünür. Yeşil işaretli testler başarılı, kırmızı işaretli testler başarısız olmuştur.
Ek kurulum gerektiren her test için aşağıdaki komutu kullanarak testi ayrı ayrı çalıştırın:
run cts-v-host -m test_module_nameÖrneğin, NFC testlerini çalıştırmak için şu komutu kullanın:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesSonuçlar, DUT'taki CTS-V uygulamasında her test modülünün altında görünür. Yeşil işaretli testler başarılı, kırmızı işaretli testler başarısız olmuştur.
Kablosuz erişim noktası bağlantı testlerini çalıştırma
Kablosuz AP bağlantı testlerini aşağıdaki iki şekilde çalıştırabilirsiniz:
- 1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın.
- 2. seçenek: Programlanabilir bir AP ayarlayın.
1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanma
Mevcut bir kablosuz ağda kablosuz erişim noktası bağlantı testlerini çalıştırmak için:
Test yatağı yapılandırma dosyasını (
WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırılmamış olduğu dizinde bulunur. Örneğin:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlwifi_ssidvewifi_passwordalanlarının değerini kablosuz ağın SSID'si ve şifresiyle değiştirin. Aşağıdaki örnekte bu ayarların konumu gösterilmektedir:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDCTS-V ana makine konsolunda aşağıdaki komutu çalıştırın:
run cts-v-host -m CtsWifiConnectionTests
2. seçenek: Programlanabilir bir AP ile çalıştırma
Programlanabilir bir AP'de kablosuz AP bağlantı testlerini çalıştırmak için:
Test yatağı yapılandırma dosyasını (
WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırılmamış olduğu dizinde bulunur. Örneğin:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlhostnamedeğerini, yerel SSH ayarlarınıza göre AP'nin IP adresiyle değiştirin. IP adresini belirlemek için AP'nin IP adresini bulma başlıklı makaleyi inceleyin. Aşağıdaki örnektehostnameayarının konumu gösterilmektedir:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueCTS-V ana makine konsolunda aşağıdaki komutu çalıştırın:
run cts-v-host -m CtsWifiConnectionTests
USB ana tarafı testlerini çalıştırma
Android 17, çalıştırılması için kablosuz bağlantı üzerinden adb gerektiren USB CTS-V ana bilgisayar tarafı testlerini içerir.
Bazı USB testleri, normal CTS-V uygulamasının erişemediği izinlere sahip SystemAPI'lere erişmek için CTS-V ana makinesinin kullanılmasını gerektirir. Bu testler bağımsızdır ve kablosuz ağ üzerinden adb kullanılması gerekir.
DUT, UsbPort.java içinde bağlantı noktası iş ortağı BC 1.2 türünü veya USB güç profillerini bildirmeyi destekliyorsa aşağıdaki Type-C aksesuarları gereklidir:
- USB Type-C güç aktarımı (PD) şarj cihazı
- USB pil şarjı 1.2 (BC 1.2) standardı ile uyumlu bir aşağı akış bağlantı noktası (SDP). Bu bağlantı noktaları, test edilen cihaza 500 mA veya 900 mA sağlamakla sınırlıdır ve genellikle harici hub'ların USB bağlantı noktalarında bulunur.
- USB BC 1.2 şarj aşağı akış bağlantı noktası (CDP) Bu bağlantı noktaları, test edilen cihaza 1,5 A akım ve veri sağlayabilir. Dizüstü veya masaüstü bilgisayarlardaki Type-C bağlantı noktaları muhtemelen CDP'dir.
- USB BC 1.2 özel şarj bağlantı noktası (DCP). Bu bağlantı noktaları, veriler olmadan DUT'a 1,5 A akım sağlayabilir. Bu listedeki USB Type-C PD şarj cihazının DCP olması muhtemeldir.
DUT'u kablosuz ağ üzerinden
adbkullanarak bağlayın. Kurulum ayrıntıları için Kablosuz ağ üzerinden cihaza bağlanma başlıklı makaleyi inceleyin.Cihazı tüm USB bağlantılarından fiziksel olarak ayırın. Test komutu çalıştırıldığında cihaz herhangi bir USB ana makinesine veya aksesuarına bağlıysa test başarısız olur.
Aşağıdaki test komutunu çalıştırın:
run cts-v-host -m CtsUsbTypecTestCases
Testlerden sonra sonuçlar, aşağıdaki şekillerde gösterildiği gibi CTS-V uygulamasında Ana makine tarafı testleri bölümünde görünür:
Şekil 6. CTS-V uygulamasında ana makine tarafı USB testleri.
Şekil 7. Ana makine tarafındaki USB CTS-V uygulamasında CtsUsbTypecTestCases paketi.
Çok cihazlı testlerle ilgili sorunları giderme
Bu bölüm, sık karşılaşılan sorunları gidermenize yardımcı olur.
CtsTelecomTest sırasında telefon numarası alınamadı
Failed to get phone number for <serial> hata mesajını alırsanız aşağıdaki adımları uygulayın:
Her bir DUT'a SIM kart takıldığını doğrulayın.
Hata devam ederse SIM kartlar otomatik numara almayı desteklemiyor olabilir. Bu durumda, komutta telefon numaralarını açıkça belirtmeniz gerekir.
Örneğin, DUT 1 (seri
17011FDEE0002N, telefon numarası555-0000) ve DUT 2 (seriR3CN90YNAR, telefon numarası555-1111) içinrun cts-v-hostkomutuna aşağıdaki bağımsız değişkenleri ekleyin:--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
CtsMultiDeviceGenericRangingAccuracyTests sırasında sunucudan yanıt alınamıyor
Aşağıdaki hata mesajını alırsanız test uygulaması belirli cihazlarda OEM'e özgü arka plan işlemi yönetimi tarafından dondurulabilir veya sonlandırılabilir:
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Bu sorunu çözmek için arka plan kısıtlamalarını devre dışı bırakın veya aşağıdaki paketleri izin verilenler listesine ekleyin:
| Paket | Görünen ad |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
NFC testleri sırasında GetFirmwareVersion için yanıt yok sorununu düzeltme
Çok cihazlı testleri çalıştırırken verify_firmware_version RuntimeError: No response
for GetFirmwareVersion mesajını alırsanız testler PN532 NFC kartına erişemez.
Bu sorunu düzeltmek için ana makinenizde PN532 NFC kartı tarafından kullanılan seri yolunu (ör. dev/ttyUSB1) belirleyin, ardından konsolda --module-arg bağımsız değişkenini kullanarak manuel olarak belirtin:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
NFC testleri sırasında "İşlem başarısız oldu" hata mesajını düzeltme
Tüm NFC test senaryolarında Transaction failed, check device logs for more
information. mesajını alıyorsanız bunun nedeni muhtemelen test edilen cihazın NFC çipinin PN532'yi algılayamamasıdır.
Ana makineye bağlı birden fazla cihazınız varsa ve bunlardan bazılarının üzerinde PN532 yoksa yanlış DUT seçilmiş olabilir. Daha fazla bilgi için NFC testlerini ayarlama başlıklı makaleyi inceleyin.
Bu sorunu düzeltmek için aşağıdakilerden birini yapın:
-sişaretini kullanarak ana makine tarafındaki test komutunuzda doğru DUT'un seri numarasını ayarlayın.DUT dışındaki tüm cihazların ana bilgisayarla bağlantısını kesin.
CDM test durumu test_permissions_sync yoksayılıyor
Test, hata ayıklanamayan cihazlarda çalıştırılıyorsa muaf olup olmadığınızı kontrol edin. Aksi takdirde, her iki cihazın da ön koşulları karşıladığını doğrulayın.