本页介绍了如何在 Cuttlefish 上下载、构建和运行 AAOS SDV。
获取 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此命令会选择要构建的产品、发布配置和变体,并将所选内容存储在环境中。
SDV 的 lunch 目标位于 devices/google/sdv 目录中的单独 Git 项目中。如需详细了解可用目标平台,请访问 device/google/sdv/README.md。主要的 Cuttlefish (cf) 目标是:
sdv_core_cf-aosp_current-userdebug- 构建在 Cuttlefish (cf) 上运行的 AAOS SDV 核心 (sdv_core) 的映像。sdv_media_cf-aosp_current-userdebug- 构建具有 virtIO 虚拟化媒体 API (sdv_media) 的 AAOS SDV 核心映像。sdv_media_har_cf-aosp_current-userdebug- 构建一个扩展 AAOS SDV 媒体 (sdv_media_cf)lunch目标以包含高可用性渲染器 (HAR) 的映像。HAR 会在启动时自动运行。sdv_ivi_cf-aosp_current-userdebug- 构建包含 SDV 网关和 Java 示例应用的 In-Vehicle Infotainment (IVI) 映像。sdv_ivi_cf_ds-aosp_current-userdebug- 构建一个扩展 AAOS SDV IVI 目标 (sdv_ivi_cf) 的映像,并包含显示安全性的 DriverUI 和仪表板实现。
构建 AAOS SDV
运行以下命令以构建目标。根据工作站的规范,首次构建需要 30 到 60 分钟。后续构建所需的时间会大大减少。
mbuild 的输出会显示在 $OUT_DIR 中。如果您构建不同的目标,则每个目标 build 都会显示在 $OUT_DIR 中。
使用 Cuttlefish 测试 build
构建 AAOS SDV 后,使用 Cuttlefish 测试 build。
如需使用您的 build 启动 Cuttlefish,请执行以下操作:
cvd createCuttlefish 使用您构建的目标 (
sdv_core_cf-aosp_current-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 错误
如果您遇到任何远程 build 执行 (RBE) 错误,请从 .bashrc 或 .zshrc 中移除 USE_RBE 和 ENABLE_RBE_BOOTSTRAP 的定义
cvd:此机器不支持虚拟机管理器 crosvm
如果 Cuttlefish 报告您的机器不支持虚拟机管理器 crosvm,请运行以下命令来安装 Cuttlefish:
sudo apt install cuttlefish-common找不到 cvd
如果您收到 cvd not found 错误,请执行以下操作:
Cuttlefish 崩溃循环
如果 Cuttlefish 进入崩溃循环:
- 如需停止所有 Cuttlefish 实例,请运行
cvd stop。 - 使用 Cuttlefish 重新测试 build。