Melalui produk baru bernama trout, Android Automotive (AAOS) kini memberikan dukungan
untuk deployment sebagai mesin virtual (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 memvirtualisasikan setiap subsistem di trout.
| Fitur | Teknologi |
|---|---|
| HAL Kontrol Audio | vsock/gRPC |
| HAL Audio | virtio-snd |
| Bluetooth | virtio-console |
| HAL Dumpstate | vsock/gRPC |
| Sistem Tampilan Diperluas (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 penerapan kustom, atau penerapan default dipertahankan, tetapi parameter konfigurasi tertentu disesuaikan untuk membuat 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 penerapan fitur yang mendasarinya. HAL ini harus dikonfigurasi dengan memberikan parameter koneksi vsock yang tepat sebagai properti vendor. Kode sumber bertindak sebagai kebenaran dasar utama yang menentukan properti mana yang tersedia untuk konfigurasi dan semantiknya.
Membangun trout
Mengompilasi ruang pengguna
Untuk mengompilasi ruang pengguna:
- Download pohon sumber Android:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- Bangun lingkungan:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Membangun 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.
- Untuk meng-clone kernel, jalankan:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Untuk membangun kernel, jalankan:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Pemasok hypervisor Anda mungkin memiliki konfigurasi kernel yang berbeda atau modul tambahan yang perlu dikompilasi. Pastikan untuk mengikuti panduan khusus ini, jika disediakan.
Kepatuhan
Saat AAOS berjalan sebagai VM tamu, tujuan kami adalah untuk menjadi deployment Android yang kompatibel dari perspektif framework. Masalah sisi host berada dalam lingkup setiap penerapan dan di luar cakupan trout 1.1.
Kami belum melakukan validasi xTS tambahan pada trout 1.1. Terus
lihat pembahasan dukungan CTS di trout 1.0 di bawah.
Di trout 1.0, beberapa masalah CTS masih ada. 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 menyertakan kegagalan pengujian:
| Pengujian Peluncur Mobil Pengujian Pengiklan Bluetooth Hemat Energi (BLE) Verifier Kualitas Video Streaming Pengujian Perangkat HID Bluetooth Pengujian Mikrofon Ultrasound Hifi Pengujian Speaker Ultrasound Hifi |
Pengujian Perangkat Tidak Terkunci Diperlukan Pengujian Penemuan Sensor Dinamis Pengujian Sensor Di Luar Tubuh Pengujian Gerakan Signifikan Pengujian Notifikasi Perutean Output Audio Pengujian Permintaan atau Saran Jaringan |
Catatan rilis
trout 1.1 berisi masalah umum berikut:
- Build pengguna
trouttidak tersedia. Sistem ini dibangun sebagai-userdebug, yang dapat memengaruhi beberapa pengujian CTS. - Android Verified Boot (AVB) tidak didukung.
- Beberapa subsistem Android mungkin tidak tersedia, termasuk dunia yang aman dan NNHAL.
- Akses jaringan tamu umumnya disediakan melalui adaptor Wi-Fi virtual dan
a
virtio-nettunnel. Konektivitas sisi host bergantung pada deployment hypervisor tertentu. - Beberapa penerapan mungkin menawarkan kemampuan Bluetooth yang terbatas atau tidak ada.
- Penyisipan peristiwa VHAL mungkin tidak berfungsi untuk beberapa sensor.
- Beberapa beban kerja yang berat dapat menyebabkan gangguan pemutaran audio.
- Di beberapa penerapan, reboot adb tamu AAOS dapat memulai ulang seluruh sistem.
- STS dapat menyebabkan ketidakstabilan sistem dan memerlukan reboot.
Untuk mengetahui detail tambahan, lihat catatan rilis partner untuk deployment trout tertentu.