Melalui produk baru bernama trout
, Android Automotive (AAOS) kini menyediakan dukungan untuk penerapan sebagai mesin virtual tamu (VM) 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 dalam trout
.
Fitur | Teknologi |
---|---|
Kontrol Audio HAL | vsock/gRPC |
Audio HAL | virtio-snd |
Bluetooth | virtio-console |
Tempat sampah HAL | vsock/gRPC |
Sistem Tampilan Diperluas (EVS) | virtio-video |
Modus garasi | vsock/gRPC |
grafis | virtio-gpu |
Sistem satelit navigasi global (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Masukan layar sentuh | virtio-input |
Kendaraan HAL | vsock/gRPC |
Memperpanjang ikan trout
trout
dapat digunakan sebagai titik awal untuk membuat target Android In-Vehicle Infotainment (IVI) baru. Membangun infrastruktur dirancang untuk diperpanjang dan disesuaikan. Sebagai 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 individual 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 Vehicle HAL, 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. Ini harus dikonfigurasi dengan cara menyediakan parameter koneksi vsock
yang tepat sebagai properti vendor.
Membangun ikan trout
Kompilasi ruang pengguna
Untuk mengkompilasi ruang pengguna:
- Unduh pohon sumber Android:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- Bangun lingkungan:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Membangun kernel
Untuk trout
1.0, basis kode kernel disediakan di AOSP. Kernel trout
terdiri dari kode yang sama dengan upstream ACK 5.10, dengan tambahan modul khusus trout
untuk subsistem VirtIO.
- Untuk mengkloning kernel, jalankan:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Untuk membangun kernel untuk lingkungan OpenSynergy, jalankan:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Kepatuhan
Saat AAOS berjalan sebagai VM tamu, tujuan kami adalah menjadi penerapan Android yang kompatibel dari perspektif kerangka kerja. Masalah sisi tuan rumah adalah lingkup setiap implementasi dan di luar cakupan trout
1.0.
Di trout
1.0, beberapa masalah CTS tetap ada. Modul CTS berikut diketahui menyertakan kegagalan pengujian:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases CtsVideoTestKasus 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 termasuk kegagalan uji:
Tes Peluncur Mobil Tes Pengiklan Bluetooth Low Energy (BLE) Pemverifikasi Kualitas Video Streaming Tes Perangkat Bluetooth HID Tes Mikrofon Ultrasound Hifi Tes Speaker Hifi Ultrasound | Tes Diperlukan Perangkat Tidak Terkunci Tes Penemuan Sensor Dinamis Tes Sensor Tubuh Mati Tes Gerak Signifikan Tes Pemberitahuan Perutean Output Audio Tes Permintaan atau Saran Jaringan |
Catatan rilis
trout
1.0 berisi masalah yang diketahui berikut ini:
- Build pengguna
trout
tidak tersedia. Sistem dibangun sebagai-userdebug
, yang dapat memengaruhi beberapa pengujian CTS. - Akses ke TrustZone untuk Android tidak didukung di
trout
1.0. - Boot Terverifikasi Android (AVB) tidak didukung.
- Akselerator saraf tidak diekspos ke NNAPI di
trout
1.0. - Virtualisasi Wi-Fi tidak tersedia, dengan beberapa implementasi yang menawarkan dukungan terbatas untuk tunnel `virtio-net`.
- Dalam beberapa kasus, transfer file besar dari atau ke Android melalui Android Debug Bridge (ADB) dapat menyebabkan sistem macet.
- Dalam beberapa kasus, aplikasi SMS mungkin berhenti menyinkronkan dengan ponsel Bluetooth yang dipasangkan.
- Injeksi peristiwa VHAL mungkin tidak berfungsi untuk beberapa sensor.
- Serial ADB dari SoC yang mendasarinya tidak diteruskan ke Android sebagai serial ADB tamu.
- Dalam beberapa implementasi, Ethernet mungkin tidak tersedia untuk host untuk konektivitas jaringan.
Untuk detail tambahan, lihat catatan rilis mitra untuk penerapan khusus trout
Anda.
Melalui produk baru bernama trout
, Android Automotive (AAOS) kini menyediakan dukungan untuk penerapan sebagai mesin virtual tamu (VM) 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 dalam trout
.
Fitur | Teknologi |
---|---|
Kontrol Audio HAL | vsock/gRPC |
Audio HAL | virtio-snd |
Bluetooth | virtio-console |
Tempat sampah HAL | vsock/gRPC |
Sistem Tampilan Diperluas (EVS) | virtio-video |
Modus garasi | vsock/gRPC |
grafis | virtio-gpu |
Sistem satelit navigasi global (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Masukan layar sentuh | virtio-input |
Kendaraan HAL | vsock/gRPC |
Memperpanjang ikan trout
trout
dapat digunakan sebagai titik awal untuk membuat target Android In-Vehicle Infotainment (IVI) baru. Membangun infrastruktur dirancang untuk diperpanjang dan disesuaikan. Sebagai 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 individual 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 Vehicle HAL, 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. Ini harus dikonfigurasi dengan cara menyediakan parameter koneksi vsock
yang tepat sebagai properti vendor.
Membangun ikan trout
Kompilasi ruang pengguna
Untuk mengkompilasi ruang pengguna:
- Unduh pohon sumber Android:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- Bangun lingkungan:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Membangun kernel
Untuk trout
1.0, basis kode kernel disediakan di AOSP. Kernel trout
terdiri dari kode yang sama dengan upstream ACK 5.10, dengan tambahan modul khusus trout
untuk subsistem VirtIO.
- Untuk mengkloning kernel, jalankan:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Untuk membangun kernel untuk lingkungan OpenSynergy, jalankan:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Kepatuhan
Saat AAOS berjalan sebagai VM tamu, tujuan kami adalah menjadi penerapan Android yang kompatibel dari perspektif kerangka kerja. Masalah sisi tuan rumah adalah lingkup setiap implementasi dan di luar cakupan trout
1.0.
Di trout
1.0, beberapa masalah CTS tetap ada. Modul CTS berikut diketahui menyertakan kegagalan pengujian:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases CtsVideoTestKasus 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 termasuk kegagalan uji:
Tes Peluncur Mobil Tes Pengiklan Bluetooth Low Energy (BLE) Pemverifikasi Kualitas Video Streaming Tes Perangkat HID Bluetooth Tes Mikrofon Ultrasound Hifi Tes Speaker Hifi Ultrasound | Tes Diperlukan Perangkat Tidak Terkunci Tes Penemuan Sensor Dinamis Tes Sensor Tubuh Mati Tes Gerak Signifikan Tes Pemberitahuan Perutean Output Audio Tes Permintaan atau Saran Jaringan |
Catatan rilis
trout
1.0 berisi masalah yang diketahui berikut ini:
- Build pengguna
trout
tidak tersedia. Sistem dibangun sebagai-userdebug
, yang dapat memengaruhi beberapa pengujian CTS. - Akses ke TrustZone untuk Android tidak didukung di
trout
1.0. - Boot Terverifikasi Android (AVB) tidak didukung.
- Akselerator saraf tidak diekspos ke NNAPI di
trout
1.0. - Virtualisasi Wi-Fi tidak tersedia, dengan beberapa implementasi yang menawarkan dukungan terbatas untuk tunnel `virtio-net`.
- Dalam beberapa kasus, transfer file besar dari atau ke Android melalui Android Debug Bridge (ADB) dapat menyebabkan sistem macet.
- Dalam beberapa kasus, aplikasi SMS mungkin berhenti menyinkronkan dengan ponsel Bluetooth yang dipasangkan.
- Injeksi peristiwa VHAL mungkin tidak berfungsi untuk beberapa sensor.
- Serial ADB dari SoC yang mendasarinya tidak diteruskan ke Android sebagai serial ADB tamu.
- Dalam beberapa implementasi, Ethernet mungkin tidak tersedia untuk host untuk konektivitas jaringan.
Untuk detail tambahan, lihat catatan rilis mitra untuk penerapan khusus trout
Anda.