參考平台

通過名為trout的新產品,Android Automotive (AAOS) 現在支持在與VirtIO標準兼容的環境中部署為來賓虛擬機 (VM)。 trout基於Cuttlefish虛擬參考平台,可作為trout設備配置使用。用戶空間源代碼可以在device/google/trout找到。下表描述了用於虛擬化trout中每個子系統的技術。

特徵技術
音頻控制 HAL vsock/gRPC
音頻 HAL virtio-snd
藍牙virtio-console
轉儲狀態 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(包括 Vehicle HAL、Audio Control HAL 和 Dumpstate HAL)是通過 gRPC 接口實現的,該接口由 AAOS 來賓與提供底層功能實現的主機系統之間的vsock連接支持。這些必須通過提供適當的vsock連接參數作為供應商屬性來配置。

建造鱒魚

編譯用戶空間

編譯用戶空間:

  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
    

構建內核

對於trout 1.0,內核代碼庫在 AOSP 中提供。 trout內核由與上游 ACK 5.10 相同的代碼組成,並為 VirtIO 子系統添加了特定於trout的模塊。

  1. 要克隆內核,請運行:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. 要為 OpenSynergy 環境構建內核,請運行:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

遵守

當 AAOS 作為訪客 VM 運行時,我們的目標是從框架的角度成為兼容的 Android 部署。主機方面的問題是每個實現的範圍,並且超出了trout 1.0 的範圍。

trout 1.0 中,仍然存在幾個 CTS 問題。已知以下 CTS 模塊包含測試失敗:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOs測試用例
CtsStatsdHostTestCases
CtsVoiceInteraction 測試用例
CtsView 測試用例
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphics 測試用例
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
CtsUsb 測試
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperf測試用例
Cts可訪問性測試用例
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

已知以下 CTS-V 區域包括測試失敗:

汽車啟動器測試
低功耗藍牙 (BLE) 廣告商測試
流媒體視頻質量驗證器
藍牙 HID 設備測試
高保真超聲波麥克風測試
高保真超聲波揚聲器測試
解鎖設備要求測試
動態傳感器發現測試
離體傳感器測試
顯著運動測試
音頻輸出路由通知測試
網絡請求或建議測試

發行說明

trout 1.0 包含以下已知問題:

  • trout的用戶版本不可用。系統構建為-userdebug ,可能會影響一些 CTS 測試。
  • trout 1.0 不支持訪問 Android 的 TrustZone。
  • 不支持 Android 驗證啟動 (AVB)。
  • trout 1.0 中的神經加速器未暴露於 NNAPI。
  • Wi-Fi 虛擬化不可用,某些實現對“virtio-net”隧道的支持有限。
  • 在某些情況下,通過 Android 調試橋 (ADB) 從或向 Android 傳輸大文件可能會導致系統掛起。
  • 在某些情況下,SMS 應用程序可能會停止與配對的藍牙手機同步。
  • VHAL 事件注入可能不適用於某些傳感器。
  • 底層 SoC 的 ADB 序列號不會作為訪客的 ADB 序列號轉發給 Android。
  • 在一些實施方式中,主機可能無法使用以太網來進行網絡連接。

有關其他詳細信息,請參閱合作夥伴發布說明以了解您對trout的特定部署。

,

通過名為trout的新產品,Android Automotive (AAOS) 現在支持在與VirtIO標準兼容的環境中部署為來賓虛擬機 (VM)。 trout基於Cuttlefish虛擬參考平台,可作為trout設備配置使用。用戶空間源代碼可以在device/google/trout找到。下表描述了用於虛擬化trout中每個子系統的技術。

特徵技術
音頻控制 HAL vsock/gRPC
音頻 HAL virtio-snd
藍牙virtio-console
轉儲狀態 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(包括 Vehicle HAL、Audio Control HAL 和 Dumpstate HAL)是通過 gRPC 接口實現的,該接口由 AAOS 來賓與提供底層功能實現的主機系統之間的vsock連接支持。這些必須通過提供適當的vsock連接參數作為供應商屬性來配置。

建造鱒魚

編譯用戶空間

編譯用戶空間:

  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
    

構建內核

對於trout 1.0,內核代碼庫在 AOSP 中提供。 trout內核由與上游 ACK 5.10 相同的代碼組成,並為 VirtIO 子系統添加了特定於trout的模塊。

  1. 要克隆內核,請運行:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. 要為 OpenSynergy 環境構建內核,請運行:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

遵守

當 AAOS 作為訪客 VM 運行時,我們的目標是從框架的角度成為兼容的 Android 部署。主機方面的問題是每個實現的範圍,並且超出了trout 1.0 的範圍。

trout 1.0 中,仍然存在幾個 CTS 問題。已知以下 CTS 模塊包含測試失敗:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOs測試用例
CtsStatsdHostTestCases
CtsVoiceInteraction 測試用例
CtsView 測試用例
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphics 測試用例
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
CtsUsb 測試
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperf測試用例
Cts可訪問性測試用例
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

已知以下 CTS-V 區域包括測試失敗:

汽車啟動器測試
低功耗藍牙 (BLE) 廣告商測試
流媒體視頻質量驗證器
藍牙 HID 設備測試
高保真超聲波麥克風測試
高保真超聲波揚聲器測試
解鎖設備要求測試
動態傳感器發現測試
離體傳感器測試
顯著運動測試
音頻輸出路由通知測試
網絡請求或建議測試

發行說明

trout 1.0 包含以下已知問題:

  • trout的用戶版本不可用。系統構建為-userdebug ,可能會影響一些 CTS 測試。
  • trout 1.0 不支持訪問 Android 的 TrustZone。
  • 不支持 Android 驗證啟動 (AVB)。
  • trout 1.0 中的神經加速器未暴露於 NNAPI。
  • Wi-Fi 虛擬化不可用,某些實現對“virtio-net”隧道的支持有限。
  • 在某些情況下,通過 Android 調試橋 (ADB) 從或向 Android 傳輸大文件可能會導致系統掛起。
  • 在某些情況下,SMS 應用程序可能會停止與配對的藍牙手機同步。
  • VHAL 事件注入可能不適用於某些傳感器。
  • 底層 SoC 的 ADB 序列號不會作為訪客的 ADB 序列號轉發給 Android。
  • 在一些實施方式中,主機可能無法使用以太網來進行網絡連接。

有關其他詳細信息,請參閱合作夥伴發布說明以了解您對trout的特定部署。