Platform referensi

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:

  1. Download hierarki 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
    

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.

  1. Untuk meng-clone 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 {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.