Bu sayfada, CTS Verifier (CTS-V) ana makine tarafındaki Android 16 QPR2 ve Android 17 testlerini ayarlama ve çalıştırma talimatları yer almaktadır. İki tür ana makine tarafı testi vardır: çoklu cihaz testleri (Android 17'den önce kullanıma sunulmuştur) ve etkileşimli testler (Android 17'de yeni):
- Çoklu cihaz testleri tamamen otomatik testlerdir.
- Etkileşimli testler, test edilen cihazda (DUT) bazı manuel adımları uygulamanızı gerektiren yarı otomatik testlerdir.
Yeni etkileşimli testlerin yanı sıra manuel mesafe doğruluğu ve telekom testleri artık ana makine tarafındaki çoklu cihaz testleridir ve kablosuz bağlantı testleri zorunludur.
Ana makine tarafındaki testleri ayarlama
Ana makine tarafındaki testleri ayarlamak için aşağıdaki adımları uygulayın (çoklu cihaz testleri için ek kurulum gerekir):
Masaüstü makinenizin CTS için işletim sistemi gereksinimlerini karşıladığını doğrulayın.
Adb, AAPT2 ve Python'un masaüstünüze doğru şekilde yüklendiğini doğrulamak için Masaüstü yazılımını yükleme bölümündeki 2. ve 5. adımları uygulayın.
Masaüstü Python sürümü 3.11 veya daha yeni olmalıdır. Python sürümünü belirlemek için
python3 --versionkomutunu çalıştırın. Sürüm 3.11'den eskiyse en son resmi Python sürümünü yükleyin. Ayrıntılar içinpython.orgsayfasını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. Masaüstü Python sürümündevenvmodü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. Talimatları uygulayarakpython3.x-venvpaketini yükleyin.
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 geçin. Ancak çok cihazlı testler çalıştırmak istiyorsanız Ana makine tarafındaki çok cihazlı testleri ayarlama bölümüne gidin.
Ana makine tarafındaki çoklu cihaz testlerini ayarlama
Ana makine tarafındaki çoklu cihaz testlerini 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.
Adb, AAPT2 ve Python'un masaüstünüze doğru şekilde yüklendiğini doğrulamak için Masaüstü yazılımını yükleme bölümündeki 2. ve 5. adımları uygulayın.
Masaüstü Python sürümü 3.11 veya daha yeni olmalıdır. Python sürümünü belirlemek için
python3 --versionkomutunu çalıştırın. Sürüm 3.11'den eskiyse en son resmi Python sürümünü yükleyin. Ayrıntılar içinpython.orgsayfasını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. Masaüstü Python sürümündevenvmodü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. Talimatları uygulayarakpython3.x-venvpaketini yükleyin.
- Bazı testler için ana makinede Python
Her birinde CTS-V kurulu olan iki eşleşen DUT hazırlayın.
- DUT'yi ayarlama hakkında ayrıntılı bilgi için DUT'yi ayarlama başlıklı makaleyi inceleyin.
- CTS-V'yi ayarlama hakkında ayrıntılı bilgi için Kurulum bölümüne bakın.
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ı testlerini ayarlama başlıklı makaleyi inceleyin.
- Mesafe ölçümü doğruluk testleri için Mesafe ölçümü doğruluk testlerini ayarlama bölümüne gidin.
- CDM modülünü test etmek için Standart iki cihazlı testleri ayarlama'ya, ardından CDM testlerini ayarlama'ya gidin.
Testiniz bu listede yoksa Standart iki cihazlı testleri ayarlama bölümüne gidin.
NFC testlerini ayarlama
NFC testlerinde bir test edilen cihaz 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.
- Test edilen cihazda Ayarlar uygulamasına gidin.
- NFC'yi etkinleştirin.
NFC çipini yerleştirme:
Telefonlar için, test edilen cihazın NFC okuyucusunu Şekil 1'de gösterildiği gibi yerleştirin:

Şekil 1. NFC çipinin konumu
Diğer cihaz türleri için çipi cihazın NFC anteninin yanına yerleştirin.
PN532 NFC çipini bir USB kablosu kullanarak test iş istasyonunuza bağlayın.
Kablosuz erişim noktası bağlantı testlerini ayarlama
Kablosuz ağ erişim noktası (AP) bağlantı testleri (CtsWifiConnectionTests), test edilen cihaz ile AP arasındaki bağlantıyı test eder. Bu testleri aşağıdaki iki yöntemle oluşturabilirsiniz:
- 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 bir seçenek açıklanmaktadır.
1. seçenek: CTS-V için ayarladığınız mevcut bir kablosuz ağı kullanın
1. seçenek için kablosuz ağ kapsama alanında bir Android DUT gerekir. Test edilen cihaz bir koruyucu kutudaysa ve kablosuz ağa bağlanamıyorsa koruyucu kutudan çıkarın.
2. seçenek: Programlanabilir AP oluşturma
Kablosuz bağlantı testleri için programlanabilir bir erişim noktası ayarlamak üzere:
Banana Pi R3 AP'yi satın alıp kurun. Banana Pi R3 AP'yi satın alma ve kurma hakkında bilgi için Banana Pi BPI-R3 AP'yi kurma başlıklı makaleyi inceleyin.
(İsteğe bağlı) Koruyucu kutunuz yoksa JTP-SR101 koruyucu kutuyu kullanmanızı öneririz. Bu kutuyu aşağıdaki bilgileri kullanarak satın alın:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, Çin
İletişim: Forest Pan
E-posta: forest.pan@jtpmak.cn
Telefon (Çin): +86 18676993556
DUT ve AP'yi ana makineye bağlayıp RF koruma kutusuna yerleştirin. DUT ve AP arasında en az 10 cm mesafe olmalıdır. Şekil 2'de bu yapılandırma gösterilmektedir:

Şekil 2. Test edilen cihaz ve erişim noktası, korumalı kutuda.
Erişim noktasına ana makineden erişilebildiğini doğrulamak için SSH'yi kullanın.
Mesafe ölçümü doğruluk testlerini ayarlama
Mesafe ölçümü doğruluk testlerini ayarlamak için:
Eşleşen iki Android DUT'yi 1 metre aralıkla, aynı yükseklikte, doğrudan görüş hattında ve her cihazın arkası birbirine bakacak şekilde yerleştirin. 3. şekilde bu yön gösterilmektedir:

Şekil 3. Cihaz yönü.
İki cihazı da USB kablolarıyla masaüstü makineye bağlayın.
Standart iki cihazlı testler oluşturma
Varsayılan iki cihazlı kurulum için:
İki eşleşen Android DUT'yi yaklaşık 20 cm aralıkla yerleştirin.
Kesinlikle önerilir: Her iki cihazı da koruyucu kutuya yerleştirin. Koruyucu kutu, test kararlılığını artırır ve test hatalarının ayıklanmasını kolaylaştırır.
Telekom testleri için her DUT'nin bir SIM kartı ve hücresel sinyali olmalıdır. Test edilen cihazlar korumalı bir kutudaysa hücresel sinyal kutuya bağlanmalıdır. Aksi takdirde cihazları koruyucu kutudan çıkarın.
İsteğe bağlı: Kablosuz hata ayıklama için bir OTA dinleyicisi ayarlayın.
CDM testlerini ayarlama
test_permissions_sync test durumu, testin yürütüldüğü cihazların derleme türüne bağlı olarak farklı davranışlar gösterir. OEM'lerin hem hata ayıklanabilir (userdebug veya eng) hem de hata ayıklanamayan (user) derlemeleri test etmesi ve testlerin her ikisi için de başarılı olması çok önemlidir.
Muafiyet
İzin senkronizasyonu API'sinin uygulanmasıyla ilgili CDD maddesi, yalnızca cihazlar arasında güvenli bir kanal üzerinden veri aktarımının başarıyla gerçekleştirilebilmesini gerektirir. Güvenli kanal uygulaması, CDD uyumluluk şartı olmadığından bu test, hata ayıklanamayan (kullanıcı) derlemelerde atlanabilir. Ancak bu yalnızca CDM izinleri senkronizasyon özelliğini desteklemeyi devre dışı bırakmak istiyorsanız geçerlidir.
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 oluşturduğu onaylar, sistemlerinde yetkisiz bir değişiklik yapılmadığını doğrulamak için kendileriyle ilgili çeşitli bilgiler içerir. AVF, doğrulama süreci sırasında
aşağıdaki durumları kontrol eder:
Cihazın internet erişimi var
Cihazda Doğrulanmış Başlatma özelliği kullanılıyor ve derleme, bir sürüm anahtarıyla (geliştirme anahtarı değil) imzalanmış.
Cihazın bootloader'ı kilitli. Daha fazla bilgi için bootloader'ı kilitleme başlıklı makaleyi inceleyin.
İşletim sistemi, anahtar başlatma ve anahtar satıcı yama seviyeleri 12 ay içinde olmalıdır. Bir yıldan eski derlemeleri kullanmayın.
Cihaz onayı, tedarikçi tarafından onaylanmış kök sertifikalardan biriyle desteklenir. Güvenilir kök sertifikalarınızı
vendor_required_attestation_certificates.xmlkaynak yer paylaşımında belirtin.
Ana makine tarafındaki testleri çalıştırma
NFC testleri gibi bazı çoklu cihaz testleri için ek kurulum gerekir. Ek kurulum gerektiren testler için her test ayrı ayrı çalıştırılır. Ek kurulum gerektirmeyen testleri bir grup halinde ç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 Makine Tarafındaki Testler) tıklayın. Şekil 4'te, CTS-V uygulamasındaki ana makine tarafındaki testler gösterilmektedir:
Şekil 4. CTS-V uygulamasındaki ana makine tarafı testleri.
Ana makine tarafındaki çoklu cihaz test modüllerinin listesi gösterilir.
CTS-V ana makine konsolunda, standart iki cihazlı kurulum kullanan çoklu cihaz testlerini çalıştırmak için aşağıdaki komutu kullanın:
run cts-v-host-multidevice-defaultSonuçlar, test edilen cihazdaki 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 testlerinin örnek sonuçları gösterilmektedir:
Şekil 5. CTS-V uygulamasında ana makine tarafındaki çoklu cihaz test sonuçları.
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, test edilen cihazdaki 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 testi aşağıdaki komutu kullanarak 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, test edilen cihazdaki 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 erişim noktası 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ğı kullanın
Mevcut bir kablosuz ağda kablosuz erişim noktası bağlantı testlerini çalıştırmak için:
Test ortamı yapılandırma dosyasını (
WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırmasının açıldığı dizindedir. Ö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 ortamı yapılandırma dosyasını (
WifiConnectionTestbed.yaml) düzenleyin. Bu dosya, CTS-Verifier'ın sıkıştırılmış halden çıkarıldığı dizindedir. Örneğin:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlYerel SSH ayarlarınıza göre
hostnamedeğerini AP'nin IP adresiyle değiştirin. IP adresini belirlemek için Erişim noktasının 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 makine tarafındaki testleri çalıştırma
Android 17, çalıştırılması için kablosuz ağ üzerinden adb gerektiren USB CTS-V ana makine tarafı testleri 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 kablosuzdur ve kablosuz ağ üzerinden adb kullanılmasını gerektirir.
DUT, UsbPort.java içinde bağlantı noktası iş ortağı BC 1.2 türünü veya USB güç profillerini raporlamayı destekliyorsa aşağıdaki Type-C aksesuarları gerekir:
- USB Type-C Güç Aktarımı (PD) şarj cihazı
- USB pil şarjı 1.2 (BC 1.2) standart 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ı genellikle CDP'dir.
- USB BC 1.2 özel şarj noktası (DCP). Bu bağlantı noktaları, veri olmadan DUT'ye 1,5 A akım sağlayabilir. Bu listedeki USB Type-C PD şarj cihazı muhtemelen bir DCP'dir.
Test edilen cihazı kablosuz ağ üzerinden
adbkullanarak bağlayın. Kurulum ayrıntıları için Kablosuz ağ üzerinden bir cihaza bağlanma başlıklı makaleyi inceleyin.Cihazı tüm USB bağlantılarından fiziksel olarak çıkarı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 resimlerde gösterildiği gibi CTS-V uygulamasında Ana makine tarafındaki testler bölümünde görünür:
Şekil 6. CTS-V uygulamasında ana makine tarafındaki USB testleri.
Şekil 7. Ana makine tarafındaki USB CTS-V uygulamasında CtsUsbTypecTestCases paketi.
Çoklu cihaz testleriyle 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 DUT'ta bir SIM kartın takılı olduğunu 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 numarası
17011FDEE0002N, telefon numarası555-0000) ve DUT 2 (seri numarasıR3CN90YNAR, 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ınamadı
Aşağıdaki hata mesajını alırsanız test uygulaması, belirli cihazlarda OEM'e özel 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 alınamaması sorunu düzeltildi.
Çoklu cihaz testlerini ç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 makinenizdeki PN532 NFC kartı tarafından kullanılan seri yolunu (ör. dev/ttyUSB1) belirleyin ve konsoldaki --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 durumları için 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ış TST 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 seri numarasını ayarlayın.DUT olmayan tüm cihazların ana makineyle 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.