參考平台

通過新產品命名為鱒魚,Android的汽車(AAOS)現在提供對部署在與兼容的環境中來賓虛擬機(VM)的支持為Virtio標準。 trout是基於上墨魚虛擬參考平台和可作為trout設備配置。用戶空間的源代碼可以被發現在device/google/trout 。下表描述了用於虛擬化每個子系統的技術trout

該AAOS平台團隊已經開發和驗證的高通SA8155P初始參考平台發布0.9使用Lantronix的芯片組參考硬件的旁邊COQOS Hypervisor的SDK從OpenSynergy。
特徵技術
音頻控制 HAL vsock/gRPC
音頻 HAL virtio-snd
轉儲狀態 HAL vsock/gRPC
擴展視野系統 (EVS) virtio-video and vendor extensions
車庫模式vsock/gRPC
圖形virtio-gpu
傳感器 HAL 2.0 virtio-scmi and IIO
觸摸屏輸入virtio-input
車輛 HAL vsock/gRPC

擴展trout

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 可以單獨替換為自定義實現,或者保留默認實現,但調整某些配置參數以在目標環境中建立正確的虛擬機間通信。這些HALS(包括車輛HAL,音頻控制HAL,和Dumpstate HAL)通過由支持的GRPC接口來實現vsock的AAOS客人和主機系統提供的底層功能實現之間的連接。這些必須通過提供正確的裝置被配置vsock連接參數供應商屬性。

建立trout

編譯用戶空間

編譯用戶空間:

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

構建內核

對於初始參考平台版本 0.9,由於管理程序配置限制,無法自定義 Android 內核。預構建的內核將作為 OpenSynergy 管理程序版本的一部分提供。內核是基於Android通用內核分支common-android11-5.4一些修改以適應最新的驅動程序的Virtio。出於提供信息的目的,相應的內核源代碼可在以下位置獲得:

遵守

計劃是在以後的版本中實現 100% 的兼容性。

限制和不支持的元素trout

  • 藍牙。
  • 全球導航衛星系統 (GNSS)。
  • 啟動CVD。 trout當前不引導下crosvm
  • 圖形。在此版本中,為Virtio GPU virgl設備只能當dmabuf 。被禁用。 UI 顯示紅色和藍色的反轉顏色。