本页介绍了如何在 Cuttlefish 上下载、构建和运行 AAOS SDV。
初始化 Repo 客户端
设置您的客户端以访问 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 文件,用于指定 Android 源代码中的各个 Git 项目在工作目录中的放置位置。 在此示例中,清单文件的名称未指定,因此命令使用默认清单文件 (default.xml)。-b选项用于标识您要初始化的分支。输出应包含以下消息:
repo has been initialized in path_to_working_directory
下载 AAOS SDV 源代码
运行以下命令,将 Android 源代码树下载到您的工作目录:
repo sync -c -j8-c 实参指示 Repo 从服务器提取当前清单分支。-j8 命令会将同步拆分到各个线程中,以加快完成速度。
设置构建环境
在您的工作目录中,获取 envsetup.sh 脚本的源代码以设置构建环境:
source build/envsetup.sh此脚本会导入多个命令,让您能够使用 Android 源代码,包括本页中使用的命令。如需查看脚本的源代码,请参阅
platform/build/envsetup.sh。如需查看内置帮助,请键入 hmm。
选择目标
在构建 SDV 之前,请先确定要构建的目标。 如需确定要构建的目标,请使用 lunch 命令,后跟表示您要构建的目标的字符串。例如,使用以下命令为 Cuttlefish 模拟器构建目标:
lunch sdv_core_cf-trunk_staging-userdebug此命令会选择要构建的产品、发布配置和变体,并将选择存储在环境中。
SDV 的 lunch 目标在 devices/google/sdv 目录下的单独 Git 项目中提供。如需详细了解可用目标,请参阅
device/google/sdv/README.md。主要的 Cuttlefish (cf) 目标包括:
sdv_core_cf-trunk_staging-userdebug- 构建在 Cuttlefish (cf) 上运行的 AAOS SDV Core (sdv_core) 映像。sdv_media_cf-trunk_staging-userdebug- 构建包含 virtIO 虚拟化媒体 API (sdv_media) 的 AAOS SDV Core 映像。sdv_media_har_cf-trunk_staging-userdebug- 构建一个映像,该映像扩展了 AAOS SDV 媒体 (sdv_media_cf)lunch目标,以包含 高可用性渲染器 (HAR)。HAR 会在启动时自动运行。sdv_ivi_cf-trunk_staging-userdebug- 构建包含 SDV 网关和 Java 示例应用的 In-Vehicle Infotainment (IVI) 映像。sdv_ivi_cf_ds-trunk_staging-userdebug- 构建一个映像,该映像扩展了 AAOS SDV IVI 目标 (sdv_ivi_cf),并包含 Display Safety 的 DriverUI 和仪表板实现。
构建 AAOS SDV
运行以下命令以构建目标。根据工作站的规范,首次构建需要 30 到 60 分钟。后续构建所需的时间会大大缩短。
mbuild 的输出会显示在 $OUT_DIR 中。如果您构建不同的目标,则每个目标 build 都会显示在 $OUT_DIR 中。
使用 Cuttlefish 测试 build
构建 AAOS SDV 后,请使用 Cuttlefish 测试 build。
如需使用 build 启动 Cuttlefish,请执行以下操作:
cvd createCuttlefish 会使用您构建的目标 (
sdv_core_cf-trunk_staging-userdebug) 运行。Cuttlefish 启动后,系统会显示以下消息:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfully运行
adb以连接到 Cuttlefish。运行
adb devices以验证 build 是否正在运行。系统会显示类似以下内容的结果:List of devices attached 0.0.0.0:6520 device运行
cvd stop以关机。
如需运行具有不同 build 的多个 Cuttlefish 实例,请参阅 Cuttlefish: 多租户。
问题排查
本部分介绍了如何排查在下载、构建或运行 AAOS SDV 期间可能发生的错误。
RBE 错误
如果遇到任何远程构建执行 (RBE) 错误,请从 .bashrc 或 .zshrc 中移除 USE_RBE 和 ENABLE_RBE_BOOTSTRAP 的定义
cvd:此机器不支持虚拟机管理器 crosvm
如果 Cuttlefish 报告您的机器不支持虚拟机管理器 crosvm,请运行以下命令来安装 Cuttlefish:
sudo apt install cuttlefish-common找不到 cvd
如果您收到 cvd not found 错误,请执行以下操作:
- 重新设置 build。
- 继续执行选择目标。
Cuttlefish 崩溃循环
如果 Cuttlefish 进入崩溃循环,请执行以下操作:
- 如需停止所有 Cuttlefish 实例,请运行
cvd stop。 - 使用 Cuttlefish 重新测试 build。