通過名為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
連接參數作為供應商屬性來配置。
建造鱒魚
編譯用戶空間
編譯用戶空間:
- 下載Android源碼樹:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- 搭建環境:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
構建內核
對於trout
1.0,內核代碼庫在 AOSP 中提供。 trout
內核由與上游 ACK 5.10 相同的代碼組成,並為 VirtIO 子系統添加了特定於trout
的模塊。
- 要克隆內核,請運行:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 要為 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
連接參數作為供應商屬性來配置。
建造鱒魚
編譯用戶空間
編譯用戶空間:
- 下載Android源碼樹:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- 搭建環境:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
構建內核
對於trout
1.0,內核代碼庫在 AOSP 中提供。 trout
內核由與上游 ACK 5.10 相同的代碼組成,並為 VirtIO 子系統添加了特定於trout
的模塊。
- 要克隆內核,請運行:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 要為 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
的特定部署。