Скачивание, сборка и запуск

На этой странице рассказывается, как скачать, собрать и запустить AAOS SDV на Cuttlefish.

Как получить исходный код AAOS SDV

Следуйте инструкциям в статье Как скачать исходный код Android.

Настройте среду сборки

В рабочем каталоге запустите скрипт envsetup.sh, чтобы настроить среду сборки:

source build/envsetup.sh

Этот скрипт импортирует несколько команд, которые позволяют работать с исходным кодом Android, включая команды, используемые на этой странице. Исходный код скрипта можно посмотреть на странице platform/build/envsetup.sh. Чтобы открыть встроенную справку, введите hmm.

Выберите цель

Прежде чем создавать SDV, определите цель. Чтобы указать целевую платформу, используйте команду lunch, а затем строку, представляющую целевую платформу, для которой вы выполняете сборку. Например, используйте эту команду, чтобы создать цель для эмулятора Cuttlefish:

lunch sdv_core_cf-aosp_current-userdebug

Эта команда выбирает продукт, конфигурацию выпуска и вариант для сборки и сохраняет выбор в среде.

Цели lunch для SDV предоставляются в отдельном проекте Git, расположенном в каталоге device/google/sdv. Подробное описание доступных целей можно найти на странице device/google/sdv/README.md. Основные цели Cuttlefish (cf):

  • sdv_core_cf-aosp_current-userdebug – создайте образ AAOS SDV Core (sdv_core), который работает на Cuttlefish (cf).
  • sdv_media_cf-aosp_current-userdebug – создайте образ AAOS SDV Core с виртуализированными API мультимедиа virtIO (sdv_media).
  • sdv_media_har_cf-aosp_current-userdebug – создайте образ, который расширяет цель AAOS SDV media (sdv_media_cf) lunch, чтобы включить средство визуализации с высокой доступностью (HAR). HAR запускается автоматически при загрузке.
  • sdv_ivi_cf-aosp_current-userdebug – создайте образ информационно-развлекательной системы (IVI), содержащий шлюз SDV и примеры приложений Java.
  • sdv_ivi_cf_ds-aosp_current-userdebug – создайте образ, который расширяет целевой объект AAOS SDV IVI (sdv_ivi_cf) и включает реализацию DriverUI и приборной панели Display Safety.

Создание SDV на базе AAOS

Выполните следующую команду, чтобы создать цель. В зависимости от характеристик вашей рабочей станции первая сборка занимает от 30 до 60 минут. Последующие сборки занимают значительно меньше времени.

m

Результат сборки появится в $OUT_DIR. Если вы создаете разные цели, каждая сборка цели появляется в $OUT_DIR.

Как протестировать сборку с помощью Cuttlefish

После сборки AAOS SDV протестируйте ее с помощью Cuttlefish.

  1. Чтобы запустить Cuttlefish со своей сборкой:

    cvd create

    Cuttlefish запустится с использованием созданной вами цели (sdv_core_cf-aosp_current-userdebug). После загрузки Cuttlefish появится следующее сообщение:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Чтобы подключиться к Cuttlefish, выполните команду adb.

  3. Чтобы убедиться, что сборка работает, выполните команду adb devices. Появится примерно такой результат:

    List of devices attached
    0.0.0.0:6520 device
  4. Выполните команду cvd stop, чтобы выключить устройство.

Чтобы запустить несколько экземпляров Cuttlefish с разными сборками, ознакомьтесь с разделом Cuttlefish: многопользовательский режим.

Устранение неполадок

В этом разделе рассказывается, как устранять неполадки, которые могут возникнуть при скачивании, сборке или запуске AAOS SDV.

Ошибки RBE

Если вы столкнулись с ошибками Remote Build Execution (RBE), удалите определения USE_RBE и ENABLE_RBE_BOOTSTRAP из .bashrc или .zshrc.

cvd: менеджер ВМ crosvm не поддерживается на этом компьютере

Если Cuttlefish сообщает, что менеджер ВМ crosvm не поддерживается на вашем компьютере, выполните следующую команду, чтобы установить Cuttlefish:

sudo apt install cuttlefish-common

cvd not found

Если вы получили ошибку cvd not found:

  1. Настройте сборку заново.
  2. Перейдите к разделу Как выбрать цель.

Циклические сбои Cuttlefish

Если Cuttlefish входит в цикл сбоев:

  1. Чтобы остановить все экземпляры Cuttlefish, выполните команду cvd stop.
  2. Повторно протестируйте сборку с помощью Cuttlefish.