Referans Platformu

Android Automotive (AAOS), trout adlı yeni bir ürün aracılığıyla artık VirtIO standardıyla uyumlu ortamlarda konuk sanal makine (VM) olarak dağıtım için destek sağlıyor. trout , Cuttlefish sanal referans platformuna dayalıdır ve trout cihazı konfigürasyonu olarak mevcuttur. Kullanıcı alanı kaynak kodu device/google/trout adresinde bulunabilir. Aşağıdaki tablo, trout alt sistemlerin her birini sanallaştırmak için kullanılan teknolojiyi açıklamaktadır.

Özellik teknoloji
Ses Kontrolü HAL vsock/gRPC
Ses HAL'i virtio-snd
Bluetooth virtio-console
çöplük HAL vsock/gRPC
Genişletilmiş Görüş Sistemi (EVS) virtio-video
Garaj modu vsock/gRPC
Grafikler virtio-gpu
Küresel navigasyon uydu sistemi (GNSS) virtio-console
Sensör HAL 2.0 virtio-scmi and IIO
Dokunmatik ekran girişi virtio-input
Araç HAL vsock/gRPC

Genişleyen alabalık

trout , yeni Araç İçi Bilgi-Eğlence (IVI) Android hedefleri oluşturmak için bir başlangıç ​​noktası olarak kullanılabilir. Yapı altyapısı genişletilecek ve özelleştirilecek şekilde tasarlanmıştır. Örneğin:

# 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 ...]

Birkaç Android HAL, özel uygulamalarla veya varsayılan uygulamalarla değiştirilebilir, ancak hedef ortamda uygun VM'ler arası iletişim kurmak için belirli yapılandırma parametreleri ayarlanabilir. Bu HAL'ler (Araç HAL, Ses Denetimi HAL ve Dumpstate HAL dahil), AAOS konuğu ile temel özellik uygulamasını sağlayan bir ana bilgisayar sistemi arasındaki bir vsock bağlantısı tarafından desteklenen bir gRPC arabirimi aracılığıyla uygulanır. Bunlar, satıcı özellikleri olarak uygun vsock bağlantı parametreleri sağlanarak yapılandırılmalıdır.

Alabalık yapımı

Kullanıcı alanını derleyin

Kullanıcı alanını derlemek için:

  1. Android kaynak ağacını indirin:
    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Ortamı oluşturun:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Çekirdeği inşa etmek

trout 1.0 için, çekirdek kod tabanı AOSP'de sağlanır. trout çekirdeği, VirtIO alt sistemleri için trout özgü modüllerin eklenmesiyle yukarı akış ACK 5.10 ile aynı koddan oluşur.

  1. Çekirdeği klonlamak için şunu çalıştırın:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. OpenSynergy ortamı için çekirdeği oluşturmak için şunu çalıştırın:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

uyma

AAOS konuk VM olarak çalıştığında, hedefimiz çerçeve perspektifinden uyumlu bir Android dağıtımı olmaktır. Konak tarafı sorunları, her uygulamanın amacıdır ve trout 1.0 kapsamı dışındadır.

trout 1.0'da, birkaç CTS sorunu devam etmektedir. Aşağıdaki CTS modüllerinin test hatalarını içerdiği bilinmektedir:

CtsStagedInstallHostTest Vakaları
CtsRollbackManagerHostTest Cases
CtsVideoTest Vakaları
CtsHostsideNetworkTestleri
CtsActivityManagerArka PlanEtkinlikTest Durumları
CtsAdbHostTest Durumları
CtsNativeHardwareTest Durumları
CtsContentTest Cases
CtsArabaAna BilgisayarTest Durumları
CtsOsTest Durumları
CtsStatsdHostTest Durumları
CtsVoiceEtkileşimTest Vakaları
CtsViewTest Durumları
CtsKameraTest Durumları
CtsLocationGnssTest Durumları
CtsGrafikTest Durumları
CtsIncidentHostTest Cases
CtsInstallHostTest Durumları
CtsNativeVerifiedBootTest Cases
CtsNetTest Durumları
CtsWindowManagerCihazTest Durumları
CtsMediaStresTest Vakaları
CtsAppTest Durumları
CtsUsbTestleri
CtsAutoFillServiceTest Durumları
CtsDisplayTest Durumları
CtsMediaTest Durumları
CtsDeqpTest Durumları
CtsDumpsysHostTest Vakaları
CtsOpenGLTest CasesCtsLibcoreTest Cases
CtsSecurityHostTest Vakaları
CtsInputMethodTest Cases
CtsStatsdAtomHostTest Vakaları
CtsPermission4Test Durumları
CtsNNAPIBenchmarkTest Vakaları
CtsBasitPerfTest Durumları
CtsErişilebilirlikTest Durumları
CtsAppSecurityHostTest Vakaları
CtsKeystoreTest Durumları

Aşağıdaki CTS-V alanlarının test hatalarını içerdiği bilinmektedir:

Araba Başlatıcı testi
Bluetooth Düşük Enerji (BLE) Reklamveren testi
Akış Video Kalitesi Doğrulayıcı
Bluetooth HID Cihazı testi
Hifi Ultrason Mikrofon testi
Hifi Ultrason Hoparlör testi
Kilitsiz Cihaz Gerekli test
Dinamik Sensör Keşfi testi
Kapalı Vücut Sensörü testi
Önemli Hareket testi
Ses Çıkışı Yönlendirme Bildirimi testi
Ağ İsteği veya Öneri testi

Sürüm notları

trout 1.0 aşağıdaki bilinen sorunları içerir:

  • Kullanıcı trout yapıları mevcut değildir. Sistem, bazı CTS testlerini etkileyebilecek -userdebug olarak oluşturulmuştur.
  • Android için TrustZone'a erişim, trout 1.0'da desteklenmez.
  • Android Onaylı Önyükleme (AVB) desteklenmez.
  • Nöral hızlandırıcılar, trout 1.0'da NNAPI'ye maruz kalmaz.
  • Wi-Fi sanallaştırma mevcut değildir ve bazı uygulamalar bir "virtio-net" tüneli için sınırlı destek sunar.
  • Bazı durumlarda, büyük dosyaların Android Hata Ayıklama Köprüsü (ADB) aracılığıyla Android'den veya Android'e aktarılması sistemin askıda kalmasına neden olabilir.
  • Bazı durumlarda, SMS uygulaması eşleştirilmiş bir Bluetooth telefonla senkronizasyonu durdurabilir.
  • Bir VHAL olay enjeksiyonu bazı sensörler için çalışmayabilir.
  • Temeldeki SoC'nin ADB dizisi, konuğun ADB dizisi olarak Android'e iletilmez.
  • Bazı uygulamalarda, Ethernet, ağ bağlantısı için ana bilgisayar tarafından kullanılamayabilir.

Ek ayrıntılar için, özel trout dağıtımınıza ilişkin ortak sürüm notlarına bakın.