This page explains how to download, build, and run AAOS SDV on Cuttlefish.
Get the AAOS SDV source code
Use the instructions provided in Download the Android source.
Set up your build environment
From within your working directory, source the envsetup.sh script to set up
your build environment:
source build/envsetup.shThis script imports several commands that let you work with the Android source
code, including the commands used on this page. To view the source of the
script, see platform/build/envsetup.sh. To view the built-in help, type hmm.
Choose a target
Before building SDV, identify a target to build. To identify your target to
build, use the lunch command followed by a string representing the target
you're building for. For example, use this command to build a target for the
Cuttlefish emulator:
lunch sdv_core_cf-trunk_staging-userdebugThis command selects the product, release configuration, and variant to build and stores the selection in the environment.
lunch targets for SDV are provided in a separate Git project located in the
devices/google/sdv directory. See a detailed description of available targets
at device/google/sdv/README.md. The main Cuttlefish (cf) targets are:
sdv_core_cf-trunk_staging-userdebug- Build an image of AAOS SDV Core (sdv_core) that runs on Cuttlefish (cf).sdv_media_cf-trunk_staging-userdebug- Build an image of AAOS SDV Core with virtIO-virtualized media APIs (sdv_media).sdv_media_har_cf-trunk_staging-userdebug- Build an image that extends the AAOS SDV media (sdv_media_cf)lunchtarget to contain the high-availability renderer (HAR). HAR runs automatically on boot.sdv_ivi_cf-trunk_staging-userdebug- Build an image of In-Vehicle Infotainment (IVI) containing the SDV Gateway and Java sample apps.sdv_ivi_cf_ds-trunk_staging-userdebug- Build an image that extends the AAOS SDV IVI target (sdv_ivi_cf) and includes Display Safety's DriverUI and Instrument Cluster implementation.
Build AAOS SDV
Run the following command to build your target. Depending on the specification of your workstation, the first build takes between 30 and 60 minutes. Subsequent builds take significantly less time.
mThe output of your build appears in $OUT_DIR. If you
build different targets, each target build appears in
$OUT_DIR.
Test your build using Cuttlefish
After you build AAOS SDV, test your build using Cuttlefish.
To start Cuttlefish with your build:
cvd createCuttlefish runs using your built target (
sdv_core_cf-trunk_staging-userdebug). After Cuttlefish has booted, this message is displayed:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfullyRun
adbto connect to Cuttlefish.Run
adb devicesto verify that your build is running. A result similar to this is displayed:List of devices attached 0.0.0.0:6520 deviceRun
cvd stopto shut down the device.
To run multiple instances of Cuttlefish with different builds, see Cuttlefish: multi-tenancy.
Troubleshoot
This section explains how to troubleshoot errors that might occur during downloading, building, or running of AAOS SDV.
RBE errors
If you encounter any Remote Build Execution (RBE) errors, remove definitions of
USE_RBE and ENABLE_RBE_BOOTSTRAP from .bashrc or .zshrc
cvd: VM manager crosvm isn't supported on this machine
If Cuttlefish reports that the VM manager crosvm isn't supported on your
machine, run the following command to install Cuttlefish:
sudo apt install cuttlefish-commoncvd not found
If you receive a cvd not found error:
- Set up your build again.
- Continue with Choose a target.
Cuttlefish crash loops
If Cuttlefish enters a crash loop:
- To stop all Cuttlefish instances, run
cvd stop. - Use Cuttlefish to retest your build.