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:
- Download hierarki sumber Android:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- 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.
- Untuk meng-clone kernel, jalankan:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 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.