Melalui produk baru bernama trout
, Android Automotive (AAOS) kini memberikan dukungan
deployment sebagai virtual machine (VM) tamu di lingkungan yang kompatibel dengan
VirtIO
standar. trout
didasarkan pada
Sotong
dan tersedia sebagai konfigurasi perangkat trout
. Tujuan
kode sumber userspace dapat ditemukan di device/google/trout
. Tabel
di bawah ini menjelaskan teknologi yang digunakan untuk melakukan virtualisasi setiap subsistem di trout
.
Fitur | Teknologi |
---|---|
HAL Kontrol Audio | vsock/gRPC |
HAL Audio | virtio-snd |
Bluetooth | virtio-console |
HAL Dumpstate | vsock/gRPC |
Sistem Tampilan yang Diperluas (EVS) | virtio-video |
Mode garasi | vsock/gRPC |
Grafis | virtio-gpu |
Satelit navigasi global sistem operasi (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Input layar sentuh | virtio-input |
HAL Kendaraan | vsock/gRPC |
Ikan trout
trout
dapat digunakan sebagai titik awal untuk membuat Infotainment dalam Kendaraan (IVI) baru
Target Android. Infrastruktur build didesain untuk dapat 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 secara terpisah dengan implementasi khusus, atau
implementasi default tetap dipertahankan, tetapi parameter konfigurasi tertentu
komunikasi antar-VM yang
tepat di lingkungan target. HAL ini (termasuk HAL Kendaraan,
Audio Control HAL, dan Dumpstate HAL) diimplementasikan melalui antarmuka gRPC yang didukung oleh
Koneksi vsock
antara tamu AAOS dan sistem host yang menyediakan
implementasi fitur yang mendasarinya. Penyedia ini harus dikonfigurasikan dengan menyediakan
Parameter koneksi vsock
sebagai properti vendor. Kode sumber berfungsi sebagai
kebenaran dasar tentang properti mana yang tersedia
untuk konfigurasi dan semantiknya.
Membangun trout
Mengompilasi ruang pengguna
Untuk mengompilasi userspace:
- Download hierarki 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. trout
{i>kernel<i} terdiri dari kode yang sama dengan ACK hulu 5.10, 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 {i>hypervisor<i} Anda mungkin memiliki konfigurasi {i>kernel<i} yang berbeda atau modul yang perlu dikompilasi. Pastikan untuk mengikuti panduan khusus ini, jika disediakan.
Kepatuhan
Ketika AAOS berjalan sebagai VM tamu, tujuan kami adalah menjadi deployment Android yang kompatibel dari
perspektif kerangka kerja lainnya. Masalah sisi host adalah cakupan setiap implementasi dan di luar
cakupan trout
1.1.
Kami belum melakukan validasi xTS tambahan pada trout
1.1. Lanjutkan
lihat diskusi di bawah tentang dukungan CTS di trout
1.0.
Di trout
1.0, beberapa masalah CTS masih ada. Modul CTS berikut ini diketahui untuk
termasuk kegagalan uji:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases KasusCtsVideoTest Tes JaringanHostsideCts CtsActivityManagerBackgroundActivityTestCases {i>CtsAdbHostTestCases<i} CtsNativeHardwareTestCases CtsContentTestCase Kasus Pengujian CtsCarHost KasusPengujian CtsOs CtsStatsdHostTestCases CtsVoiceInteractionTestCases KasusPengujianCtsView CtsCameraTestCase KasusPengujianCtsLocationGnss Kasus PengujianCtsGraphics CtsIncidentHostTestCases CtsInstallHostTestCases CtsNativeVerifiedBootTestCases {i>CtsNetTestCases<i} |
CtsWindowManagerDeviceTestCase KasusPengujianCtsMediaStress Kasus PengujianCtsApp Tes CtsUsb CtsAutoFillServiceTestCases KasusPengujianCtsDisplay Kasus PengujianCtsMedia Kasus Pengujian CtsDeqp CtsDumpsysHostTestCases CtsOpenGLTestCasesCtsLibcoreTestCases CtsSecurityHostTestCases CtsInputMethodTestCases {i>CtsStatsdAtomHostTestCases<i} CtsPermission4TestCase KasusPengujianTestNNAPIBenchmark Kasus PengujianCtsSimpleperf CtsAccessibilityTestCases CtsAppSecurityHostTestCases KasusPengujianCtsKeystore |
Area CTS-V berikut diketahui mencakup kegagalan uji:
Pengujian Peluncur Mobil Pengujian Pengiklan Bluetooth Hemat Energi (BLE) Pemverifikasi Kualitas Video Streaming Pengujian Perangkat HID Bluetooth Tes Mikrofon Ultrasonik Hifi Tes Speaker Ultrasonik Hifi |
Pengujian yang Diperlukan Perangkat Terbuka Pengujian Penemuan Sensor Dinamis Tes Sensor Luar Tubuh Uji gerakan Signifikan Pengujian Notifikasi Pemilihan Rute Output Audio Pengujian Saran atau Permintaan Jaringan |
Catatan rilis
trout
1.1 berisi masalah umum berikut:
- Build pengguna
trout
tidak tersedia. Sistem ini dibangun sebagai-userdebug
, yang dapat memengaruhi beberapa uji 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 tervirtualisasi dan
virtio-net
. Konektivitas sisi host bergantung pada deployment hypervisor tertentu Anda. - Beberapa implementasi mungkin menawarkan kemampuan Bluetooth terbatas atau tidak ada sama sekali.
- Injeksi peristiwa VHAL mungkin tidak berfungsi untuk beberapa sensor.
- Beberapa beban kerja yang berat dapat menyebabkan gangguan pemutaran audio.
- Dalam beberapa implementasi, mulai ulang adb dari tamu AAOS dapat me-reboot seluruh sistem.
- STS dapat menyebabkan ketidakstabilan sistem dan memerlukan mulai ulang.
Untuk detail tambahan, lihat catatan rilis partner untuk deployment spesifik Anda
trout
.