Благодаря новому продукту под названием 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
в качестве свойств поставщика.
Строительная форель
Скомпилируйте пользовательское пространство
Чтобы скомпилировать пользовательское пространство:
- Загрузите исходное дерево 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 основной ветки разработки, с добавлением специфичных для trout
модулей для подсистем VirtIO.
- Чтобы клонировать ядро, запустите:
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 работает как гостевая виртуальная машина, наша цель — обеспечить совместимое развертывание 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
в качестве свойств поставщика.
Строительная форель
Скомпилируйте пользовательское пространство
Чтобы скомпилировать пользовательское пространство:
- Загрузите исходное дерево 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 основной ветки разработки, с добавлением специфичных для trout
модулей для подсистем VirtIO.
- Чтобы клонировать ядро, запустите:
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 работает как гостевая виртуальная машина, наша цель — обеспечить совместимое развертывание 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
.