Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

リファレンス プラットフォーム

Android Automotive OS(AAOS)は、trout という新しいプロダクトを通じて、VirtIO 標準に対応している環境にゲスト仮想マシン(VM)としてデプロイするためのサポートを提供するようになりました。troutCuttlefish 仮想リファレンス プラットフォームに基づいており、trout デバイス設定として利用できます。ユーザー空間のソースコードは device/google/trout にあります。以下の表に、trout で各サブシステムの仮想化に使用されるテクノロジーを示します。

AAOS プラットフォーム チームは、Qualcomm SA8155P チップセット上で、Lantronix のリファレンス ハードウェアと OpenSynergy の COQOS Hypervisor SDK を使用して、最初のリファレンス プラットフォーム リリース 0.9 の開発と検証を行いました。
機能 テクノロジー
オーディオ コントロール HAL vsock/gRPC
オーディオ HAL virtio-snd
Dumpstate 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 を個別にカスタム実装に置き換えることができます。デフォルト実装は維持されますが、特定の構成パラメータは、ターゲット環境で適切な VM 間通信を確立するように調整されます。これらの HAL(車両 HAL、オーディオ コントロール HAL、Dumpstate HAL を含む)は、AAOS ゲストと基となる機能の実装を提供するホストシステムとの間の vsock 接続に基づく gPRC インターフェースによって実装されています。ベンダー プロパティとして適切な 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 の制限事項とサポートされていない要素

  • Bluetooth。
  • グローバル ナビゲーション衛星システム(GNSS)。
  • LaunchCVD。現在、troutcrosvm で起動しません。
  • グラフィック。このリリースでは、VirtIO GPU virgl デバイスは dmabuf が無効の場合にのみ動作します。UI の赤色と青色が反転しています。