Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The launch_cvd command rus two commands assemble_cvd and run_cvd in its child processes. If both commands work as expected, the Android can launch successfully on Cuttlefish machine. The assemble_cvd command generates root file system images with overlay / qcow2 format, then the run_cvd command invokes the virtual machine manager (either Crosvm or QEMU) to boot the virtual machine with the generated images. The diagram below shows the Cuttlefish flow.

...

Using assemble_cvd

Let’s we assume we work on TRS and want to run Android Automotive OS on Xen virtual machine, in this case, we cannot directly use launch_cvd command for launching Xen virtual machine. Therefore, we need to use assumble_cvd command to help us to generate file system images, and afterwards we can execute QEMU command to launch Xen virtual machine. This is why we need to understand how to use assumble_cvd command.

...

Note, as you have noticed that we can pass almost most launch_cvd’s parameters to assemble_cvd , but it is not always true that these two commands can support exact same parameters. If you want to check what’s the correct parameters for passed to assemble_cvd , you can firstly run launch_cvd and after it launching assumble_cvd is launched in the sub process, you can check the parameters for the running assumble_cvd process:

Code Block
$ ps -e | grep assemble_cvd
 673381 ?        00:00:02 assemble_cvd
$  cat /proc/673381/cmdline | sed -e "s/\x00/ /g"; echo
/home/leoy/Dev2/aosp_cuttlefish_test/cf/bin/assemble_cvd --group_id=cvd_1 --report_anonymous_usage_stats=y --vm_manager=qemu_cli --webrtc_device_id=cvd_1-1 

The Android images

Using above command, the two prebuilt Android images are shared in:
cuttlefish_drm_virgl_venus.tgz : Android automotive images with GPU mode drm_virgl for venus
cuttlefish_gfxstream.tgz : Android automotive images with GPU mode gfxstream for vulkan.

Download the package and uncompress it in the folder /home/leoy/Dev2/aosp_cuttlefish_test/cf to ensure all linkages work well.

Using run_cvd

Same as the assemble_cvd command, it prevents we are prevent to directly run the run_cvd command. If we want to directly execute it, we can use the command:

Code Block
$ true | HOME=$PWD ./bin/run_cvd 2>&1 | cat

run_cvd manages dozen of backend programs internally for emulating virtual devices (e.g. for WiFi, secure devices, etc). For the rough brief understanding of the run_cvd’s internal, you could refer to below diagram:

...