Загрузите, соберите и запустите

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

Инициализируйте клиент репозитория.

Настройте свой клиент для доступа к репозиторию исходного кода Android:

  1. Создайте рабочую директорию и перейдите в неё, например, sdv :

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Инициализируйте рабочую директорию для системы контроля версий:

    В этом примере используется ветка 26Q2-fs-release .

    RELEASE=26Q2-fs-release
    repo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE

    Опция -u обязательна и указывает на файл манифеста , который представляет собой XML-файл, определяющий местоположение различных проектов Git в исходном коде Android в вашей рабочей директории. В этом примере имя файла манифеста не указано, поэтому команда использует файл манифеста по умолчанию ( default.xml ).

    Опция -b указывает, какую ветку вы инициализируете.

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

    repo has been initialized in path_to_working_directory

Загрузите исходный код AAOS SDV.

Выполните следующую команду, чтобы загрузить исходный код Android в вашу рабочую директорию:

repo sync -c -j8

Аргумент -c указывает Repo получить текущую ветку манифеста с сервера. Команда -j8 распределяет синхронизацию между потоками для более быстрого завершения.

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

В рабочей директории выполните команду `source envsetup.sh для настройки среды сборки:

source build/envsetup.sh

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

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

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

lunch sdv_core_cf-trunk_staging-userdebug

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

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

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

Сборка AAOS SDV

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

m

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

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

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

  1. Чтобы начать сборку Cuttlefish:

    cvd create

    Cuttlefish запускается с использованием вашей целевой платформы ( sdv_core_cf-trunk_staging-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

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

cvd: Менеджер виртуальных машин crosvm не поддерживается на этом компьютере.

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

sudo apt install cuttlefish-common

CVD не найден

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

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

Крушение петель каракатицы

Если Cuttlefish попадёт в замкнутый круг сбоев:

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