На этой странице объясняется, как загрузить, собрать и запустить AAOS SDV на Cuttlefish.
Инициализируйте клиент репозитория.
Настройте свой клиент для доступа к репозиторию исходного кода Android:
Создайте рабочую директорию и перейдите в неё, например,
sdv:mkdir WORKING_DIRECTORYcd WORKING_DIRECTORYИнициализируйте рабочую директорию для системы контроля версий:
В этом примере используется ветка
26Q2-fs-release.RELEASE=26Q2-fs-releaserepo 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- Создает образ, расширяющий целевой объектlunchAAOS 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.
Чтобы начать сборку Cuttlefish:
cvd createCuttlefish запускается с использованием вашей целевой платформы (
sdv_core_cf-trunk_staging-userdebug). После загрузки Cuttlefish отображается следующее сообщение:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfullyДля подключения к Cuttlefish выполните
adb.Запустите команду
adb devices, чтобы убедиться, что сборка выполняется. Отобразится результат, похожий на этот:List of devices attached 0.0.0.0:6520 deviceВыполните команду
cvd stop, чтобы выключить устройство.
Для запуска нескольких экземпляров Cuttlefish с различными сборками см. раздел Cuttlefish: многопользовательский режим .
Устранение неполадок
В этом разделе объясняется, как устранять ошибки, которые могут возникнуть во время загрузки, сборки или запуска AAOS SDV.
ошибки RBE
Если вы столкнетесь с ошибками удаленного выполнения сборки (RBE), удалите определения переменных USE_RBE и ENABLE_RBE_BOOTSTRAP из .bashrc или .zshrc
cvd: Менеджер виртуальных машин crosvm не поддерживается на этом компьютере.
Если Cuttlefish сообщает, что менеджер виртуальных машин crosvm не поддерживается на вашем компьютере, выполните следующую команду для установки Cuttlefish:
sudo apt install cuttlefish-commonCVD не найден
Если вы получили ошибку cvd not found ":
- Настройте сборку заново.
- Продолжите, выбрав цель .
Крушение петель каракатицы
Если Cuttlefish попадёт в замкнутый круг сбоев:
- Чтобы остановить все экземпляры Cuttlefish, выполните команду
cvd stop. - Используйте Cuttlefish для повторного тестирования вашей сборки .