參考平台

透過名為 trout 的新產品,Android Automotive (AAOS) 現已支援 做為訪客虛擬機器 (VM) 的部署方式 VirtIO 標準。trout採用根據 烏龜 虛擬參考平台,可做為 trout 裝置設定使用。 您可在 device/google/trout 找到使用者空間原始碼。表格 下方介紹了將 trout 中每個子系統虛擬化的技術。

功能 科技
音訊控制 HAL vsock/gRPC
音訊 HAL virtio-snd
藍牙 virtio-console
Dumpstate HAL vsock/gRPC
擴充觀看系統 (EVS) virtio-video
車庫模式 vsock/gRPC
圖像 virtio-gpu
全域導航衛星 系統 (GNSS) virtio-console
HAL 2.0 感應器 virtio-scmi and IIO
觸控螢幕輸入 virtio-input
汽車 HAL vsock/gRPC

延伸延伸

trout 可做為建立新的車內資訊娛樂系統 (IVI) 的起點 指定 Android 目標。建構基礎架構的設計可進一步擴充及自訂。 例如:

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

有些 Android HAL 可以個別替換為自訂實作項目,或 預設實作項目保持不變,但為了建立 在目標環境中進行適當的 VM 間通訊。這些 HAL (包括車輛 HAL 音訊控制 HAL 和 Dumpstate HAL) 是由 vsock 獲得 AAOS 訪客與提供 基礎功能實作設定時,請務必提供適當的 vsock 連線參數做為供應商屬性。原始碼做為 要用於設定的屬性及其語意的真值

鱒魚圖案壁紙

編譯使用者空間

編譯使用者空間的方法如下:

  1. 下載 Android 原始碼樹狀結構:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. 建構環境:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

建構核心

trout 1.1 版提供核心程式碼集。trout 核心包含與上游 ACK 5.10 相同的程式碼,並加上 trout 專用的 VirtIO 子系統模組。

  1. 如要複製核心,請執行:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. 如要建構核心,請執行:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

管理程序供應商可能有其他需要或額外的核心設定 需要編譯的模組請務必遵循這些具體指引 (如有)。

法規遵循

AAOS 以訪客 VM 的形式執行時,我們的目標是成為 從架構的角度來看主機端問題反映的是個別導入作業的調查範圍, 範圍。trout 1.1。

我們未在 trout 1.1 上執行額外的 xTS 驗證。繼續 請參閱下列 trout 1.0 中的 CTS 支援討論。

trout 1.0 版仍有幾個 CTS 問題。下列 CTS 模組已知 包括測試失敗:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
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

目前已知下列 CTS-V 部分包含測試失敗:

車輛啟動器測試
藍牙低功耗 (BLE) 廣告主測試
串流影片品質驗證器
藍牙 HID 裝置測試
Hifi 超音波麥克風測試
Hifi 超音波測試
必須測試已解鎖裝置
動態感應器探索測試
離體感應器測試
顯著動作測試
音訊輸出轉送通知測試
網路要求或建議測試

版本資訊

trout 1.1 包含下列已知問題:

  • 未提供「trout」的使用者版本。這套系統以 -userdebug,這會影響部分 CTS 測試。
  • 不支援 Android 驗證開機程序 (AVB)。
  • 部分 Android 子系統可能無法使用,包括安全的世界和 NNHAL。
  • 訪客網路存取權通常是由虛擬化 Wi-Fi 轉接器和 1 個virtio-net 更新通道主機端連線取決於您的特定管理程序部署項目。
  • 有些實作項目可能提供有限的藍牙功能,或是未提供藍牙功能。
  • 部分感應器可能不支援 VHAL 事件插入功能。
  • 某些繁重的工作負載可能會造成音訊播放故障。
  • 在某些實作項目中,ADB 重新啟動 AAOS 訪客可能會重新啟動整個系統。
  • STS 可能會導致系統不穩定,並需要重新啟動。

詳情請參閱合作夥伴版本資訊,瞭解您的實際部署環境 trout