Эталонная платформа

Благодаря новому продукту под названием trout Android Automotive (AAOS) теперь поддерживает развертывание в качестве гостевой виртуальной машины (ВМ) в средах, совместимых со стандартом VirtIO . trout основан на виртуальной эталонной платформе Cuttlefish и доступен в конфигурации устройства trout . Исходный код пользовательского пространства можно найти по адресу device/google/trout . В таблице ниже описана технология, используемая для виртуализации каждой из подсистем в trout .

Особенность Технологии
Аудио контроль HAL vsock/gRPC
Аудио ХАЛ virtio-snd
Bluetooth 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 можно использовать в качестве отправной точки для создания новых целей Android в автомобильной информационно-развлекательной системе (IVI). Инфраструктура сборки предназначена для расширения и настройки. Например:

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

Несколько HAL Android можно по отдельности заменить пользовательскими реализациями или сохранить реализации по умолчанию, но скорректировать определенные параметры конфигурации, чтобы установить надлежащее взаимодействие между виртуальными машинами в целевой среде. Эти HAL (включая HAL Vehicle, HAL Audio Control и HAL Dumpstate) реализуются с помощью интерфейса gRPC, поддерживаемого соединением vsock между гостевой системой AAOS и хост-системой, обеспечивающей реализацию базовой функции. Их необходимо настроить, указав правильные параметры соединения 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 основной ветки разработки, с добавлением специфичных для trout модулей для подсистем VirtIO.

  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 работает как гостевая виртуальная машина, наша цель — обеспечить совместимое развертывание Android с точки зрения фреймворка. Проблемы на стороне хоста являются компетенцией каждой реализации и выходят за рамки trout 1.0.

В 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 включают сбои тестов:

Тест запуска автомобиля
Тест Bluetooth с низким энергопотреблением (BLE) для рекламодателей
Проверка качества потокового видео
Тест устройства Bluetooth HID
Тест ультразвукового микрофона Hifi
Тест Hi-Fi ультразвуковых динамиков
Разблокированное устройство Требуется тест
Динамический тест обнаружения датчиков
Тест датчика вне тела
Тест на значительное движение
Тест уведомления о маршрутизации аудиовыхода
Проверка сетевого запроса или предложения

Примечания к выпуску

trout 1.0 содержит следующие известные проблемы:

  • Пользовательские сборки trout недоступны. Система собрана как -userdebug , что может повлиять на некоторые тесты CTS.
  • Доступ к TrustZone для Android не поддерживается в trout 1.0.
  • Проверенная загрузка Android (AVB) не поддерживается.
  • Нейронные ускорители не подвергаются воздействию NNAPI у trout 1.0.
  • Виртуализация Wi-Fi недоступна, а некоторые реализации предлагают ограниченную поддержку туннеля «virtio-net».
  • В некоторых случаях передача больших файлов с Android или на Android через Android Debug Bridge (ADB) может привести к зависанию системы.
  • В некоторых случаях приложение SMS может перестать синхронизироваться с сопряженным телефоном Bluetooth.
  • Внедрение событий VHAL может не работать для некоторых датчиков.
  • Серийный номер ADB базовой SoC не перенаправляется на Android в качестве серийного номера ADB гостевой системы.
  • В некоторых реализациях Ethernet может быть недоступен хосту для подключения к сети.

Дополнительные сведения см. в примечаниях к выпуску партнеров для вашего конкретного развертывания trout .

,

Благодаря новому продукту под названием trout Android Automotive (AAOS) теперь поддерживает развертывание в качестве гостевой виртуальной машины (ВМ) в средах, совместимых со стандартом VirtIO . trout основан на виртуальной эталонной платформе Cuttlefish и доступен в конфигурации устройства trout . Исходный код пользовательского пространства можно найти по адресу device/google/trout . В таблице ниже описана технология, используемая для виртуализации каждой из подсистем в trout .

Особенность Технологии
Аудио контроль HAL vsock/gRPC
Аудио ХАЛ virtio-snd
Bluetooth 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 можно использовать в качестве отправной точки для создания новых целей Android в автомобильной информационно-развлекательной системе (IVI). Инфраструктура сборки предназначена для расширения и настройки. Например:

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

Несколько HAL Android можно по отдельности заменить пользовательскими реализациями или сохранить реализации по умолчанию, но скорректировать определенные параметры конфигурации, чтобы установить надлежащее взаимодействие между виртуальными машинами в целевой среде. Эти HAL (включая HAL Vehicle, HAL Audio Control и HAL Dumpstate) реализуются с помощью интерфейса gRPC, поддерживаемого соединением vsock между гостевой системой AAOS и хост-системой, обеспечивающей реализацию базовой функции. Их необходимо настроить, указав правильные параметры соединения 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 основной ветки разработки, с добавлением специфичных для trout модулей для подсистем VirtIO.

  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 работает как гостевая виртуальная машина, наша цель — обеспечить совместимое развертывание Android с точки зрения фреймворка. Проблемы на стороне хоста являются компетенцией каждой реализации и выходят за рамки trout 1.0.

В 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 включают сбои тестов:

Тест запуска автомобиля
Тест Bluetooth с низким энергопотреблением (BLE) для рекламодателей
Проверка качества потокового видео
Тест устройства Bluetooth HID
Тест ультразвукового микрофона Hifi
Тест Hi-Fi ультразвуковых динамиков
Разблокированное устройство Требуется тест
Динамический тест обнаружения датчиков
Тест датчика вне тела
Тест на значительное движение
Тест уведомления о маршрутизации аудиовыхода
Проверка сетевого запроса или предложения

Примечания к выпуску

trout 1.0 содержит следующие известные проблемы:

  • Пользовательские сборки trout недоступны. Система собрана как -userdebug , что может повлиять на некоторые тесты CTS.
  • Доступ к TrustZone для Android не поддерживается в trout 1.0.
  • Проверенная загрузка Android (AVB) не поддерживается.
  • Нейронные ускорители не подвергаются воздействию NNAPI у trout 1.0.
  • Виртуализация Wi-Fi недоступна, а некоторые реализации предлагают ограниченную поддержку туннеля «virtio-net».
  • В некоторых случаях передача больших файлов с Android или на Android через Android Debug Bridge (ADB) может привести к зависанию системы.
  • В некоторых случаях приложение SMS может перестать синхронизироваться с сопряженным телефоном Bluetooth.
  • Внедрение событий VHAL может не работать для некоторых датчиков.
  • Серийный номер ADB базовой SoC не перенаправляется на Android в качестве серийного номера ADB гостевой системы.
  • В некоторых реализациях Ethernet может быть недоступен хосту для подключения к сети.

Дополнительные сведения см. в примечаниях к выпуску партнеров для вашего конкретного развертывания trout .