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 desteği sağlıyor. trout , Mürekkepbalığı sanal referans platformunu temel alı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
Çöp durumu HAL vsock/gRPC
Genişletilmiş Görüş Sistemi (EVS) virtio-video
Garaj modu vsock/gRPC
Grafik 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'i vsock/gRPC

Alabalık uzatma

trout yeni Araç İçi Bilgi ve 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 ayrı ayrı değiştirilebilir veya varsayılan uygulamalar korunur ancak belirli yapılandırma parametreleri, hedef ortamda VM'ler arası doğru iletişimi sağlayacak şekilde ayarlanabilir. Bu HAL'ler (Araç HAL'si, Ses Kontrolü HAL'si ve Dumpstate HAL dahil), AAOS konuğu ile temel özellik uygulamasını sağlayan bir ana bilgisayar sistemi arasındaki vsock bağlantısı tarafından desteklenen bir gRPC arayüzü aracılığıyla uygulanır. Bunlar, satıcı özellikleri olarak uygun vsock bağlantı parametreleri sağlanarak yapılandırılmalıdır. Kaynak kodu, özelliklerin konfigürasyon ve anlambilimi için mevcut olduğu nihai temel gerçek görevi görü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 main
    repo sync -j8
    
  2. Ortamı oluşturun:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Çekirdeği oluşturmak

trout 1.1 için çekirdek kod tabanı AOSP'de sağlanmıştır. trout çekirdeği, VirtIO alt sistemleri için trout özgü modüllerin eklenmesiyle yukarı akışlı 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. Çekirdek çalıştırmasını oluşturmak için:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

Hipervizör tedarikçiniz farklı bir çekirdek yapılandırmasına veya derlenmesi gereken ek modüllere sahip olabilir. Sağlanmışsa, bu özel yönergeyi takip ettiğinizden emin olun.

uyma

AAOS konuk VM olarak çalıştığında hedefimiz çerçeve perspektifinden uyumlu bir Android dağıtımı olmaktır. Ev sahibi tarafındaki sorunlar her uygulamanın kapsamına girer ve trout 1.1'in kapsamı dışındadır.

trout 1.1'de ek xTS doğrulaması yapmadık. trout 1.0'da CTS desteğiyle ilgili aşağıdaki tartışmaya başvurmaya devam edin.

trout 1.0'da birkaç CTS sorunu devam etmektedir. Aşağıdaki CTS modüllerinin test başarısızlıklarını içerdiği bilinmektedir:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCase'ler
CtsVideoTest Vakaları
CtsHostsideNetworkTestleri
CtsActivityManagerArka PlanActivityTest Vakaları
CtsAdbHostTest Vakaları
CtsNativeHardwareTest Vakaları
CtsContentTestCase'ler
CtsCarHostTest Vakaları
CtsOsTest Vakaları
CtsStatsdHostTestCase'ler
CtsSes EtkileşimiTest Vakaları
CtsViewTestCase'ler
CtsKameraTest Vakaları
CtsKonumGnssTest Vakaları
CtsGrafikTest Vakaları
CtsIncidentHostTestVakaları
CtsInstallHostTestCase'ler
CtsNativeVerifiedBootTestCases
CtsNetTestCase'ler
CtsWindowManagerDeviceTestCase'ler
CtsMediaStresTest Vakaları
CtsAppTest Vakaları
CtsUsbTestleri
CtsAutoFillServiceTest Vakaları
CtsDisplayTest Vakaları
CtsMediaTest Vakaları
CtsDeqpTest Vakaları
CtsDumpsysAna BilgisayarTest Vakaları
CtsOpenGLTestCase'lerCtsLibcoreTestCase'ler
CtsSecurityHostTest Vakaları
CtsGirişMetoduTest Vakaları
CtsStatsdAtomHostTestCase'ler
CtsPermission4TestCase'ler
CtsNNAPIBenchmarkTest Vakaları
CtsSimpleperfTest Vakaları
CtsErişilebilirlikTest Durumları
CtsAppSecurityHostTest Vakaları
CtsAnahtar DeposuTest Vakaları

Aşağıdaki CTS-V alanlarının test başarısızlıklarını içerdiği bilinmektedir:

Araç 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 testi
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 Önerisi testi

Sürüm notları

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

  • trout kullanıcı yapıları mevcut değil. Sistem, bazı CTS testlerini etkileyebilecek -userdebug olarak oluşturulmuştur.
  • Android Doğrulanmış Önyükleme (AVB) desteklenmiyor.
  • Secure World ve NNHAL dahil bazı Android alt sistemleri kullanılamayabilir.
  • Konuk ağ erişimi genellikle sanallaştırılmış bir Wi-Fi bağdaştırıcısı ve bir virtio-net tüneli aracılığıyla sağlanır. Ana bilgisayar tarafı bağlantısı, özel hiper yönetici dağıtımınıza bağlıdır.
  • Bazı uygulamalar sınırlı Bluetooth özelliği sunabilir veya hiç sunmayabilir.
  • VHAL olay enjeksiyonu bazı sensörler için çalışmayabilir.
  • Bazı ağır iş yükleri ses oynatma sorunlarına neden olabilir.
  • Bazı uygulamalarda, AAOS konuğunun adb yeniden başlatılması tüm sistemi yeniden başlatabilir.
  • STS sistem kararsızlığına neden olabilir ve yeniden başlatma gerektirebilir.

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