Platform referensi

Melalui produk baru bernama trout, Android Automotive (AAOS) kini memberikan dukungan untuk deployment sebagai virtual machine (VM) tamu di lingkungan yang kompatibel dengan standar VirtIO. trout didasarkan pada platform referensi virtual Cuttlefish dan tersedia sebagai konfigurasi perangkat trout. Kode sumber ruang pengguna dapat ditemukan di device/google/trout. Tabel di bawah menjelaskan teknologi yang digunakan untuk memvirtualisasi setiap subsistem di trout.

Fitur Teknologi
Audio Control HAL vsock/gRPC
Audio HAL virtio-snd
Bluetooth virtio-console
Dumpstate HAL vsock/gRPC
Extended View System (EVS) virtio-video
Mode garasi vsock/gRPC
Grafis virtio-gpu
Sistem satelit navigasi global (GNSS) virtio-console
Sensor HAL 2.0 virtio-scmi and IIO
Input layar sentuh virtio-input
HAL Kendaraan vsock/gRPC

Memperluas trout

trout dapat digunakan sebagai titik awal untuk membuat target Android Infotainment Dalam Kendaraan (IVI) baru. Infrastruktur build dirancang untuk diperluas dan disesuaikan. Contoh:

# Inherit trout-arm64 default values and settings
$(call inherit-product, device/google/trout/aosp_trout_arm64.mk)

# Customize HALs as needed
LOCAL_VHAL_PRODUCT_PACKAGE := vendor.oem.vhal@2.0-service
LOCAL_AUDIO_PRODUCT_PACKAGE := vendor.oem.audio@6.0-impl

# Configure SELinux policy
BOARD_SEPOLICY_DIRS += device/oem/car/sepolicy/vendor/oem

# Configure properties
LOCAL_DUMPSTATE_PROPERTIES := \
    ro.vendor.dumpstate.server.cid=22 \
    ro.vendor.dumpstate.server.port=406 \
    ro.vendor.helpersystem.log_loc=/data/dumpstate

[... and more as needed ...]

Beberapa HAL Android dapat diganti satu per satu dengan implementasi kustom, atau implementasi default dipertahankan, tetapi parameter konfigurasi tertentu disesuaikan untuk membangun komunikasi antar-VM yang tepat di lingkungan target. HAL ini (termasuk HAL Kendaraan, HAL Kontrol Audio, dan HAL Dumpstate) diterapkan melalui antarmuka gRPC yang didukung oleh koneksi vsock antara tamu AAOS dan sistem host yang menyediakan implementasi fitur yang mendasarinya. Parameter ini harus dikonfigurasi dengan menyediakan parameter koneksi vsock yang tepat sebagai properti vendor. Kode sumber bertindak sebagai ground truth utama tempat properti tersedia untuk konfigurasi dan semantiknya.

Membangun trout

Mengompilasi ruang pengguna

Untuk mengompilasi ruang pengguna:

  1. Download hierarki sumber Android:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. Build lingkungan:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Mem-build kernel

Untuk trout 1.1, codebase kernel disediakan di AOSP. Kernel trout terdiri dari kode yang sama dengan ACK 5.10 upstream, dengan penambahan modul khusus trout untuk subsistem VirtIO.

  1. Untuk meng-clone kernel, jalankan:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Untuk mem-build kernel, jalankan:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

Penyedia hypervisor Anda mungkin memiliki konfigurasi kernel yang berbeda atau modul tambahan yang perlu dikompilasi. Pastikan untuk mengikuti panduan khusus ini, jika diberikan.

Kepatuhan

Saat AAOS berjalan sebagai VM tamu, sasaran kami adalah menjadi deployment Android yang kompatibel dari perspektif framework. Masalah sisi host adalah cakupan setiap implementasi dan berada di luar cakupan trout 1.1.

Kami belum melakukan validasi xTS tambahan di trout 1.1. Lanjutkan untuk melihat diskusi dukungan CTS di bawah ini di trout 1.0.

Di trout 1.0, masih ada beberapa masalah CTS. Modul CTS berikut diketahui menyertakan kegagalan pengujian:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOsTestCases
CtsStatsdHostTestCases
CtsVoiceInteractionTestCases
CtsViewTestCases
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphicsTestCases
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
CtsUsbTests
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

Area CTS-V berikut diketahui mencakup kegagalan pengujian:

Pengujian Peluncur Mobil
Pengujian Pengiklan Bluetooth Hemat Energi (BLE)
Pengujian Pengverifikasi Kualitas Video Streaming
Pengujian Perangkat HID Bluetooth
Pengujian Mikrofon Ultrasonik Hifi
Pengujian Speaker Ultrasonik Hifi
Pengujian Perangkat yang Dibuka Kuncinya Wajib
Pengujian Penemuan Sensor Dinamis
Pengujian Sensor di Luar Tubuh
Pengujian Gerakan Signifikan
Pengujian Notifikasi Pemilihan Rute Output Audio
Pengujian Permintaan atau Saran Jaringan

Catatan rilis

trout 1.1 berisi masalah umum berikut:

  • Build pengguna trout tidak tersedia. Sistem dibuat sebagai -userdebug, yang dapat memengaruhi beberapa pengujian CTS.
  • Android Verified Boot (AVB) tidak didukung.
  • Beberapa subsistem Android mungkin tidak tersedia, termasuk secure world dan NNHAL.
  • Akses jaringan tamu umumnya disediakan melalui adaptor Wi-Fi virtual dan tunnel virtio-net. Konektivitas sisi host bergantung pada deployment hypervisor tertentu Anda.
  • Beberapa implementasi mungkin menawarkan kemampuan Bluetooth yang terbatas atau tidak ada sama sekali.
  • Injeksi peristiwa VHAL mungkin tidak berfungsi untuk beberapa sensor.
  • Beberapa beban kerja berat dapat menyebabkan gangguan pemutaran audio.
  • Dalam beberapa implementasi, mulai ulang adb tamu AAOS dapat memulai ulang seluruh sistem.
  • STS dapat menyebabkan ketidakstabilan sistem dan memerlukan mulai ulang.

Untuk detail tambahan, lihat catatan rilis partner untuk deployment trout tertentu Anda.