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

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

Особенность Технологии
Управление звуком HAL vsock/gRPC
Аудио HAL virtio-snd
Bluetooth virtio-console
Dumpstate HAL vsock/gRPC
Система расширенного обзора (EVS) virtio-video
Режим гаража vsock/gRPC
Графика virtio-gpu
Глобальная навигационная спутниковая система (GNSS) virtio-console
Sensor 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 ...]

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

Выращивать форель

Скомпилируйте пользовательское пространство.

Для компиляции пользовательского пространства:

  1. Загрузите исходный код Android:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. Создайте среду:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Собрать ядро

Для trout 1.1 исходный код ядра предоставлен в AOSP. Ядро trout состоит из того же кода, что и исходный код ACK 5.10, с добавлением модулей, специфичных для trout для подсистем VirtIO.

  1. Для клонирования ядра выполните следующую команду:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Для сборки ядра выполните:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

У вашего поставщика гипервизора может потребоваться другая конфигурация ядра или дополнительные модули для компиляции. Обязательно следуйте этим конкретным инструкциям, если они предоставлены.

Согласие

Когда AAOS запускается в качестве гостевой виртуальной машины, наша цель — обеспечить совместимость развертывания Android с точки зрения фреймворка. Вопросы, касающиеся хост-системы, являются прерогативой каждой отдельной реализации и выходят за рамки trout 1.1.

Мы не проводили дополнительную проверку xTS в версии trout 1.1. Продолжайте обращаться к обсуждению поддержки CTS в 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 Low Energy (BLE)
Верификатор качества потокового видео
Тестирование устройства Bluetooth HID
Тест ультразвукового микрофона Hi-Fi
Тестирование высококачественных ультразвуковых динамиков Hi-Fi
Требуется тест "Разблокированное устройство".
Тест динамического обнаружения датчиков
Тест датчика, расположенного вне кузова
Тест на значительное движение
Тест уведомления о маршрутизации аудиовыхода
Тест запроса или предложения от сети

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

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

  • Пользовательские сборки trout недоступны. Система собирается с параметром -userdebug , что может повлиять на некоторые тесты CTS.
  • Технология Android Verified Boot (AVB) не поддерживается.
  • Некоторые подсистемы Android могут быть недоступны, включая Secure World и NNHAL.
  • Доступ к гостевой сети обычно обеспечивается с помощью виртуализированного адаптера Wi-Fi и туннеля virtio-net . Подключение на стороне хоста зависит от конкретной конфигурации вашего гипервизора.
  • В некоторых вариантах реализации возможности Bluetooth могут быть ограничены или отсутствовать вовсе.
  • Внедрение событий VHAL может не работать для некоторых датчиков.
  • При высоких нагрузках могут возникать сбои в воспроизведении звука.
  • В некоторых вариантах выполнения команда `adb reboot` для гостевой системы AAOS может перезагрузить всю систему.
  • STS может вызывать нестабильность системы и требовать перезагрузки.

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