Menyiapkan CTS

Untuk menjalankan CTS, siapkan terlebih dahulu lingkungan fisik, komputer desktop, dan perangkat Android yang Anda gunakan untuk pengujian.

Lingkungan fisik

Beacon Bluetooth LE

Jika perangkat yang sedang diuji (DUT) mendukung Bluetooth LE, tempatkan minimal tiga beacon Bluetooth LE dalam jarak 5 meter dari DUT untuk pengujian pemindaian Bluetooth LE. Beacon tersebut tidak perlu dikonfigurasi atau memunculkan sesuatu yang spesifik, dan dapat berupa apa pun, termasuk iBeacon, Eddystone, atau bahkan perangkat yang menyimulasikan beacon BLE.

Ultra-wideband

Jika DUT mendukung ultra-wideband (UWB), perangkat lain yang mendukung UWB harus diposisikan cukup dekat dan diorientasikan agar tidak memiliki antena dan zona mati radio. Untuk pengujian akurasi jarak, ada kebutuhan orientasi dan pemosisian tertentu. Untuk mengetahui detail penyiapan, lihat Persyaratan UWB. Pengujian UWB harus dijalankan secara manual, dengan menentukan di command line dua perangkat yang berjarak satu meter. Untuk mengetahui detail tentang sharding yang diperlukan untuk pengujian ini, lihat Sharding lokal.

Kamera

Saat menjalankan CTS kamera, gunakan kondisi pencahayaan normal dengan diagram pola pengujian (seperti pola kotak-kotak). Tempatkan diagram pola pengujian sesuai dengan jarak fokus minimum DUT untuk memastikan bahwa diagram tidak terlalu dekat dengan lensa.

Arahkan sensor kamera ke tampilan dengan pencahayaan yang memadai agar sensor yang sedang diuji dapat mencapai dan tetap berada pada frame target maksimum yang dikonfigurasi per detik (FPS) seperti yang ditentukan dalam CONTROL_AE_TARGET_FPS_RANGE. Hal ini berlaku untuk semua sensor kamera yang dilaporkan oleh getCameraIdList saat pengujian melakukan iterasi pada perangkat yang tercantum dan mengukur performa secara terpisah.

Jika DUT mendukung kamera eksternal, seperti webcam USB, colokkan kamera eksternal saat menjalankan CTS. Jika tidak, pengujian CTS akan gagal.

GPS/GNSS

Jika DUT mendukung fitur sistem pengukuran global/sistem satelit navigasi global (GPS/GNSS), berikan sinyal GPS/GNSS ke DUT pada tingkat sinyal yang sesuai untuk penerimaan dan penghitungan lokasi GPS. Bagian GPS harus mematuhi ICD-GPS-200C. Jika tidak, sinyal GPS/GNSS dapat berupa apa pun, termasuk simulator satelit atau pengulang GPS/GNSS untuk sinyal luar ruangan, atau Anda dapat menempatkan DUT cukup dekat dengan jendela sehingga dapat langsung menerima sinyal GPS/GNSS yang cukup.

Wi-Fi dan IPv6

Pengujian CTS memerlukan jaringan Wi-Fi yang mendukung IPv4 dan IPv6, memiliki koneksi internet dengan DNS yang berfungsi untuk IPv4 dan IPv6, mendukung multicast IP, dan dapat memperlakukan DUT sebagai klien terisolasi. Klien terisolasi adalah konfigurasi saat DUT tidak memiliki visibilitas ke pesan siaran/multijaringan di subjaringan tersebut. Hal ini terjadi dengan konfigurasi titik akses (AP) Wi-Fi atau dengan menjalankan DUT di subjaringan terisolasi tanpa perangkat lain yang terhubung.

Jika tidak memiliki akses ke jaringan IPv6 native, jaringan operator IPv6, atau VPN untuk lulus beberapa pengujian yang bergantung pada IPv6, Anda dapat menggunakan titik akses Wi-Fi dan tunnel IPv6.

Untuk lulus CTS, DUT memerlukan flag UP, BROADCAST, dan MULTICAST yang ditetapkan di antarmuka Wi-Fi. Antarmuka Wi-Fi memerlukan alamat IPv4 dan IPv6 yang ditetapkan. Periksa properti antarmuka Wi-Fi dengan adb shell ifconfig.

Untuk perangkat yang mendukung Konkurensi STA/STA Wi-Fi, beberapa jaringan Wi-Fi (minimal 2) diperlukan. Untuk lulus CTS, jaringan Wi-Fi harus berjalan di band yang berbeda dengan SSID yang berbeda atau di SSID yang sama dengan BSSID yang berbeda.

RTT Wi-Fi

Android menyertakan Wi-Fi RTT API untuk kemampuan waktu round-trip Wi-Fi (RTT). Hal ini memungkinkan perangkat mengukur jarak ke titik akses (AP) dengan akurasi 1 hingga 2 meter, yang akan meningkatkan akurasi lokasi dalam ruangan secara signifikan. Dua perangkat yang direkomendasikan yang mendukung Wi-Fi RTT adalah Google Wifi dan titik akses fitlet2 Compulab (disetel ke bandwidth 40 MHz pada 5 GHz).

Titik akses (AP) harus dinyalakan, tetapi tidak memerlukan koneksi jaringan. Titik akses tidak perlu berada di samping perangkat pengujian, tetapi sebaiknya berada dalam jarak 12 meter dari DUT. Satu titik akses biasanya sudah cukup.

Penyiapan komputer desktop

Perhatian: CTS mendukung mesin Linux 64-bit. CTS tidak didukung di OS Windows atau MacOS.

FFMPEG

Instal paket ffmpeg versi 5.1.3 (atau yang lebih baru) di komputer host.

Persyaratan mesin host

Persyaratan minimum untuk mesin host CTS adalah RAM 32 GiB dan kapasitas disk 256 GiB. Hal ini diperlukan untuk mengakomodasi peningkatan jumlah kasus pengujian CTS dan peningkatan reservasi ruang heap Java di Tradefed.

ADB dan AAPT2

Sebelum menjalankan CTS, pastikan Anda telah menginstal versi terbaru Android Debug Bridge (adb) dan Android Asset Packaging Tool (AAPT2) serta menambahkan lokasi alat tersebut ke jalur sistem mesin Anda.

Untuk menginstal ADB dan AAPT2, download Android SDK Platform Tools dan Android SDK Build Tools terbaru dari SDK Manager Android Studio atau dari alat command line sdkmanager.

Pastikan adb dan aapt2 ada di jalur sistem Anda. Perintah berikut menganggap bahwa Anda telah mendownload arsip paket ke subdirektori bernama android-sdk di direktori beranda:

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

Java Development Kit untuk Ubuntu

Instal versi Java Development Kit (JDK) yang sesuai.

  • Untuk Android 11, instal OpenJDK11.
  • Untuk Android 9 dan Android 10, instal OpenJDK9.
  • Untuk Android 7.0, 7.1, 8.0 dan 8.1, instal OpenJDK8.

Untuk mengetahui detailnya, lihat Persyaratan JDK.

Penyiapan untuk dukungan Python

Instal virtualenv untuk platform Anda dengan mengikuti petunjuk Penginstalan.

Anda dapat memverifikasi bahwa penginstalan berhasil dengan memanggil virtualenv -h.

File CTS

Download dan buka paket CTS dari Download Compatibility Test Suite yang cocok dengan versi Android perangkat Anda dan semua antarmuka biner aplikasi (ABI) yang didukung perangkat Anda.

Download dan buka versi terbaru file media CTS.

Mendownload file CTS terkait Mainline (opsional)

Saat Anda menjalankan versi CTS untuk pertama kalinya, CTS akan mendownload beberapa file CTS terkait Mainline secara dinamis, yang menambahkan setidaknya 10 menit ke waktu proses, bergantung pada kecepatan jaringan Anda.

Untuk menghindari waktu proses CTS yang ditambahkan ini, Anda dapat mendownload file CTS terkait Mainline sebelum menjalankan versi CTS, dengan mengikuti petunjuk berikut:

  1. Dapatkan API level Android di perangkat dengan menjalankan:

    adb shell getprop ro.build.version.sdk
    
  2. Ikuti petunjuk dalam skrip download_mcts.sh untuk mendownload file CTS Mainline.

    Download memerlukan waktu minimal 10 menit, bergantung pada kecepatan jaringan Anda.

Deteksi perangkat

Ikuti langkah untuk menyiapkan sistem agar mendeteksi perangkat Anda.

Batas memori

Sebaiknya tingkatkan memori maksimum yang tersedia selama pengujian berjalan dalam skrip cts-tradefed. Lihat contoh CL untuk mengetahui informasi selengkapnya.

Penyiapan perangkat Android

Build pengguna

Perangkat yang kompatibel didefinisikan sebagai perangkat dengan build yang ditandatangani kunci pengguna/rilis. Perangkat Anda harus menjalankan image sistem berdasarkan build pengguna yang diketahui kompatibel (Android 4.0 atau yang lebih tinggi) dari Nama Kode, Tag, dan Nomor Build.

Properti build API level pertama

Persyaratan CTS tertentu bergantung pada build yang awalnya digunakan perangkat. Misalnya, perangkat yang awalnya dikirimkan dengan build sebelumnya mungkin dikecualikan dari persyaratan sistem yang berlaku untuk perangkat yang dikirimkan dengan build yang lebih baru.

Agar informasi ini tersedia untuk CTS, produsen perangkat dapat menentukan properti waktu build ro.product.first_api_level. Nilai properti ini adalah API level pertama yang digunakan untuk meluncurkan perangkat secara komersial.

Produsen perangkat dapat menggunakan kembali implementasi dasar yang sama untuk meluncurkan produk baru sebagai upgrade dari produk yang ada dalam grup perangkat yang sama. Produsen perangkat dapat secara opsional menetapkan level API produk yang ada ke ro.product.first_api_level, sehingga persyaratan upgrade diterapkan untuk CTS dan Treble/VTS.

Produsen perangkat dapat menentukan PRODUCT_SHIPPING_API_LEVEL dalam file device.mk untuk menetapkan properti ini, seperti yang ditunjukkan dalam contoh berikut:

# 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

API level pertama untuk Android 9 atau yang lebih tinggi

Untuk perangkat yang diluncurkan dengan Android 9 atau yang lebih tinggi, tetapkan properti ro.product.first_api_level ke nilai yang valid dari Namakode, Tag, dan Nomor Build.

API level pertama untuk Android 8.x atau yang lebih rendah

Untuk perangkat yang diluncurkan di Android 8.x atau yang lebih rendah, batalkan penetapan (hapus) properti ro.product.first_api_level untuk build pertama produk. Untuk semua build berikutnya, tetapkan ro.product.first_api_level ke nilai API level yang benar. Hal ini memungkinkan properti mengidentifikasi produk baru dengan benar dan mempertahankan informasi tentang level API pertama produk. Jika tanda tidak ditetapkan, Android akan menetapkan Build.VERSION.SDK_INT ke ro.product.first_api_level.

Paket shim CTS

Android 10 atau yang lebih tinggi menyertakan format paket yang disebut APEX. Guna menjalankan pengujian CTS untuk API pengelolaan APEX (seperti mengupdate ke versi baru atau melaporkan APEX aktif), Anda harus menginstal paket CtsShimApex terlebih dahulu pada partisi /system.

Pengujian validasi shim APEX memverifikasi penerapan CtsShimApex.

Persyaratan ro.apex.updatable

  • Jika properti ro.apex.updatable ditetapkan ke true, CtsShimApex diperlukan untuk semua perangkat yang mendukung pengelolaan paket APEX.

  • Jika properti ro.apex.updatable tidak ada atau tidak ditetapkan, CtsShimApex tidak diwajibkan untuk diprainstal di perangkat.

Pengujian validasi shim APEX memverifikasi penerapan CtsShimApex.

Prainstal dan pramuat CtsShim

Mulai Android 11, CtsShimApex berisi dua aplikasi bawaan (yang dibangun dari sumber build), yang tidak berisi kode apa pun kecuali untuk manifes. CTS menggunakan aplikasi ini untuk menguji hak istimewa dan izin.

Jika perangkat tidak mendukung pengelolaan paket APEX (yaitu, properti ro.apex.updatable tidak ada atau tidak ditetapkan), atau jika perangkat menjalankan versi 10 atau yang lebih lama, kedua aplikasi bawaan tersebut harus diinstal sebelumnya dalam sistem secara terpisah.

Jika APEX didukung, pra-penginstalan untuk rilis yang sesuai harus ditempatkan sebagai /system/apex/com.android.apex.cts.shim.apex.

Jika aplikasi bawaan reguler digunakan, CtsShim dan CtsShimPriv untuk rilis yang sesuai harus ditempatkan sebagai /system/app/CtsShimPrebuilt.apk dan /system/priv-app/CtsShimPrivPrebuilt.apk.

Tabel berikut mencantumkan pra-penginstalan dan pramuat yang tersedia untuk setiap versi dan arsitektur perangkat.

Versi Perangkat Prainstal
(jika APEX didukung)
Pramuat
ARM x86 ARM x86
Android 15 android15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

Android 14 android14-arm-release 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, dan O-MR1 T/A T/A arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Untuk lulus pengujian, pramuat aplikasi ke direktori yang sesuai di image sistem tanpa menandatangani ulang aplikasi.

Contoh applet

Android 9 memperkenalkan Open Mobile API. Untuk perangkat yang melaporkan lebih dari satu elemen aman, CTS menambahkan kasus pengujian untuk memvalidasi perilaku Open Mobile API. Kasus pengujian ini memerlukan penginstalan applet contoh satu kali ke Elemen Pengaman (eSE) tersemat DUT atau ke kartu SIM yang digunakan oleh DUT. Applet contoh eSE dan applet contoh SIM dapat ditemukan di AOSP.

Lihat Pengujian CTS untuk Elemen Pengaman untuk mengetahui informasi yang lebih mendetail tentang kasus pengujian Open Mobile API dan kasus pengujian Kontrol Akses.

Persyaratan penyimpanan

Pengujian stres media CTS mengharuskan klip video berada di penyimpanan eksternal (/sdcard). Sebagian besar klip berasal dari Big Buck Bunny, yang dilindungi hak cipta oleh Blender Foundation berdasarkan lisensi Creative Commons Attribution 3.0.

Ruang yang diperlukan bergantung pada resolusi pemutaran video maksimum yang didukung oleh perangkat. Lihat bagian 5 dalam dokumen Definisi Kompatibilitas Android untuk versi platform resolusi yang diperlukan.

Berikut adalah persyaratan penyimpanan berdasarkan resolusi pemutaran video maksimum:

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

Layar dan penyimpanan

  • Perangkat apa pun yang tidak memiliki layar tersemat harus terhubung ke layar.
  • Jika perangkat memiliki slot kartu memori, pasang kartu SD kosong. Gunakan kartu SD yang mendukung bus ultra high speed (UHS) dengan kapasitas SDHC atau SDXC atau kartu dengan setidaknya speed class 10 atau yang lebih tinggi untuk memastikan kartu tersebut dapat lulus CTS.

  • Jika perangkat memiliki slot kartu SIM, pasang kartu SIM yang telah diaktifkan ke setiap slot. Jika perangkat mendukung SMS, setiap kartu SIM harus memiliki kolom nomornya sendiri yang terisi. Untuk perangkat yang menjalankan Android 12 atau yang lebih baru, semua kartu SIM harus memiliki dukungan untuk menyimpan nomor dialing singkat (ADN). Kartu GSM dan USIM dengan file khusus telekomunikasi (DFTelecom) memenuhi persyaratan ini.

UICC Developer

Untuk menjalankan pengujian API operator CTS, perangkat harus menggunakan SIM dengan hak istimewa operator CTS yang memenuhi persyaratan yang ditentukan dalam Menyiapkan UICC.

Konfigurasi perangkat Android

  1. Reset perangkat ke setelan pabrik: Setelan > Cadangkan & reset > Reset ke setelan pabrik.

  2. Tetapkan bahasa perangkat ke bahasa Inggris (Amerika Serikat): Setelan > Bahasa & input > Bahasa.

  3. Jika perangkat mendukung penyesuaian font default, tetapkan jenis font sans-serif default ke Roboto (jenis font sans-serif default yang digunakan dalam build AOSP).

  4. Aktifkan setelan lokasi jika ada fitur GPS atau jaringan Wi-Fi/seluler di perangkat: Setelan > Lokasi > Aktif.

  5. Menghubungkan ke jaringan Wi-Fi yang mendukung IPv6, dapat memperlakukan DUT sebagai klien terisolasi (lihat Lingkungan fisik di atas), dan memiliki koneksi internet: Setelan > Wi-Fi.

  6. Pastikan tidak ada pola kunci atau sandi yang ditetapkan di perangkat: Setelan > Keamanan > Kunci layar > Tidak ada.

  7. Aktifkan Proses debug USB di perangkat Anda: Setelan > Opsi developer > Proses debug USB.

  8. Tetapkan waktu ke format 12 jam: Setelan > Tanggal & waktu > Gunakan format 24 jam > Nonaktif.

  9. Tetapkan perangkat agar tetap aktif: Setelan > Opsi developer > Tetap Aktif > Aktif.

  10. Di khusus Android 5.x dan 4.4.x, tetapkan perangkat untuk mengizinkan lokasi tiruan: Setelan > Opsi developer > Izinkan lokasi tiruan > Aktif.

  11. Di Android 4.2 atau yang lebih tinggi, nonaktifkan verifikasi aplikasi USB: Setelan > Opsi developer > Verifikasi aplikasi melalui USB > Nonaktif.

  12. Di Android 13 atau yang lebih baru, tetapkan perangkat untuk mengizinkan modem tiruan: Setelan > Opsi developer > Izinkan Modem Tiruan > Aktif.

  13. Luncurkan browser dan tutup semua layar startup/penyiapan.

  14. Hubungkan mesin desktop yang akan digunakan untuk menguji perangkat dengan kabel USB.

  15. Sebelum menjalankan CTS, tetapkan Roboto2 sebagai font sans-serif menggunakan setelan affordance yang dapat diakses pengguna (tidak disembunyikan).

Penginstalan file

Instal dan konfigurasikan aplikasi helper di perangkat.

  1. Siapkan perangkat Anda sesuai dengan versi CTS:

    • CTS versi 2.1 R2 hingga 4.2 R4: Siapkan perangkat (atau emulator) untuk menjalankan pengujian aksesibilitas dengan: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Di perangkat, aktifkan delegasi: Setelan > Aksesibilitas > Aksesibilitas > Mendelegasikan Layanan Aksesibilitas.

    • CTS versi 6.x atau yang lebih lama: Di perangkat yang mendeklarasikan android.software.device_admin, siapkan perangkat untuk menjalankan pengujian administrasi perangkat menggunakan: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Di Setelan > Keamanan > Pilih administrator perangkat, aktifkan dua administrator perangkat android.deviceadmin.cts.CtsDeviceAdminReceiver*. Pastikan android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver dan administrator perangkat bawaan lainnya tetap dinonaktifkan.

  2. Salin file media CTS ke perangkat sebagai berikut:

    1. Buka (cd) jalur tempat file media didownload dan diekstrak.
    2. Ubah izin file: chmod u+x copy_media.sh

    3. Salin file yang diperlukan:

      • Untuk menyalin klip hingga resolusi 720x480, jalankan:

        ./copy_media.sh 720x480
        
      • Jika Anda tidak yakin dengan resolusi maksimum, salin semua file:

        ./copy_media.sh all
        
      • Jika ada beberapa perangkat di adb, tambahkan opsi serial (-s) perangkat tertentu ke bagian akhir. Misalnya, untuk menyalin hingga 720x480 ke perangkat dengan serial 1234567, jalankan:

        ./copy_media.sh 720x480 -s 1234567