使用 Cuttlefish 启动 AOSP 构建

本页介绍如何使用Cuttlefish启动 AOSP 构建。

验证 KVM 可用性

Cuttlefish 是一种虚拟设备,依赖于主机上可用的虚拟化。

在主机的终端中,确保可以使用基于内核的虚拟机 (KVM) 进行虚拟化:

grep -c -w "vmx\|svm" /proc/cpuinfo

此命令应返回一个非零值。

在 ARM 机器上运行时,最直接的方法是检查/dev/kvm

find /dev -name kvm

发射墨鱼

  1. 在终端窗口中,下载、构建和安装主机 Debian 软件包:

    sudo apt install -y git devscripts config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    for dir in base frontend; do
      cd $dir
      debuild -i -us -uc -b -d
      cd ..
    done
    sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
    sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
    sudo usermod -aG kvm,cvdnetwork,render $USER
    sudo reboot
    

    重启会触发安装额外的内核模块并应用udev规则。

  2. Cuttlefish 是 Android 开源平台 (AOSP) 的一部分。可以在 Android 持续集成网站上找到虚拟设备的版本。要查找所有 Android 版本的索引,请导航至位于http://ci.android.com/的 Android 持续集成站点。

  3. 输入分支名称。使用默认的aosp-master分支或使用通用系统映像 (GSI) 分支,例如aosp-android13-gsi

  4. 导航到aosp_cf_x86_64_phone构建目标并单击userdebug以获取最新构建。

  5. 点击userdebug下方的绿框选择这个build。出现一个详细信息面板,其中包含更多特定于此构建的信息。在此面板中,单击Artifacts以查看附加到此构建的所有工件的列表。

  6. 在 Artifacts 面板中,下载 Cuttlefish 的工件。

    1. 单击包含设备图像的aosp_cf_x86_64_phone-img-xxxxxx.zip工件。在文件名中,“xxxxxx”是此设备的构建 ID。

    2. 在面板中向下滚动并下载cvd-host_package.tar.gz 。始终从与图像相同的构建中下载主机包。

  7. 在您的本地系统上,创建一个容器文件夹并提取包:

    mkdir cf
    cd cf
    tar -xvf /path/to/cvd-host_package.tar.gz
    unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip
    
  8. 启动墨鱼:

    HOME=$PWD ./bin/launch_cvd --daemon
    

通过adb验证Cuttlefish是否可见

与物理设备类似,Cuttlefish 通过Android 调试桥 (adb)可见。

在启动 Cuttlefish 的同一文件夹中,运行以下命令以查看主机上通过 adb 可用的所有 Android 设备的列表:

./bin/adb devices

在网络中查看虚拟设备并与之交互

默认情况下,Cuttlefish 使用--start_webrtc启动,它通过主机上的端口 8443 启用 webview。

要查看虚拟设备并与之交互,请在 Web 浏览器中导航至https://localhost:8443

有关详细信息,请参阅Cuttlefish:WebRTC 流式处理。

停止墨鱼

在用于启动设备的同一目录中停止虚拟设备:

HOME=$PWD ./bin/stop_cvd