Platform referensi

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 masing-masing subsistem di 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
Grafik 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

Perpanjang ikan trout

trout dapat digunakan sebagai titik awal untuk membuat target Android In-Vehicle Infotainment (IVI) yang baru. Infrastruktur pembangunan dirancang untuk diperluas dan disesuaikan. Misalnya:

# 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 khusus, atau implementasi default dipertahankan namun 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) diimplementasikan melalui antarmuka gRPC yang didukung oleh koneksi vsock antara tamu AAOS dan sistem host yang menyediakan implementasi fitur dasar. Ini harus dikonfigurasi dengan menyediakan parameter koneksi vsock yang tepat sebagai properti vendor. Kode sumber bertindak sebagai kebenaran dasar di mana properti tersedia untuk konfigurasi dan semantiknya.

Bangun ikan trout

Kompilasi ruang pengguna

Untuk mengkompilasi ruang pengguna:

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

Bangun kernelnya

Untuk trout 1.1, basis kode 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 mengkloning kernel, jalankan:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Untuk membangun kernel, jalankan:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

Pemasok hypervisor Anda mungkin memerlukan konfigurasi kernel berbeda atau modul tambahan yang perlu dikompilasi. Pastikan untuk mengikuti panduan khusus ini, jika disediakan.

Kepatuhan

Saat AAOS dijalankan sebagai VM tamu, tujuan kami adalah penerapan Android yang kompatibel dari perspektif kerangka kerja. Masalah sisi host adalah lingkup setiap implementasi dan di luar cakupan trout 1.1.

Kami belum melakukan validasi xTS tambahan pada trout 1.1. Simak terus pembahasan di bawah ini mengenai dukungan CTS pada trout 1.0.

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

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestKasus
Tes Jaringan CtsHostside
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
Kasus CtsOsTest
CtsStatsdHostTestCases
CtsVoiceInteractionTestCases
CtsViewTestCases
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphicsTestCases
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeTerverifikasiBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
Kasus CtsMediaStressTest
CtsAppTestCases
Tes CtsUsb
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestKasus
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCase
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

Area CTS-V berikut diketahui mengalami kegagalan pengujian:

Tes Peluncur Mobil
Tes Pengiklan Bluetooth Low Energy (BLE).
Pemverifikasi Kualitas Video Streaming
Tes Perangkat HID Bluetooth
Tes Mikrofon Ultrasound Hifi
Tes Speaker Ultrasound Hifi
Tes Diperlukan Perangkat Tidak Terkunci
Tes Penemuan Sensor Dinamis
Tes Sensor Mati Tubuh
Tes Gerak Signifikan
Tes Pemberitahuan Perutean Output Audio
Tes Permintaan atau Saran Jaringan

Catatan rilis

trout 1.1 berisi masalah umum berikut:

  • trout buatan pengguna tidak tersedia. Sistem ini dibangun sebagai -userdebug , yang dapat memengaruhi beberapa pengujian CTS.
  • Boot Terverifikasi Android (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 terowongan virtio-net . Konektivitas sisi host bergantung pada penerapan hypervisor spesifik 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 yang berat dapat menyebabkan gangguan pemutaran audio.
  • Dalam beberapa implementasi, adb reboot tamu AAOS mungkin me-reboot seluruh sistem.
  • STS dapat menyebabkan ketidakstabilan sistem dan memerlukan reboot.

Untuk detail tambahan, lihat catatan rilis mitra untuk penerapan spesifik trout Anda.