开始使用

本页面介绍了如何使用 Cuttlefish 启动 AOSP 版本。

验证 KVM 可用性

Cuttlefish 是一种虚拟设备,它依赖于主机上提供的虚拟化。

在主机上的终端中,确保基于内核的虚拟机 (KVM) 的虚拟化可用

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

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

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

find /dev -name kvm

启动 Cuttlefish

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

    sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    tools/buildutils/build_packages.sh
    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) 的一部分。虚拟设备的 build 版本可在 Android 持续集成站点上找到。要查找所有 Android build 版本的索引,请转到 Android 持续集成站点:http://ci.android.com/

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

  4. 转到 aosp_cf_x86_64_only_phone build 目标,然后为最新 build 版本点击 userdebug

  5. 点击 userdebug 下方的绿色框以选择此 build 版本。此时会显示一个 Details 面板,其中包含有关此 build 版本的更多具体信息。在此面板中,点击 Artifacts 以查看附加到此 build 版本的所有工件的列表。

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

    1. 点击 aosp_cf_x86_64_phone-img-xxxxxx.zip 工件(用于 x86_64)或 aosp_cf_arm64_only_phone-xxxxxx.zip 工件(用于 ARM64),其中包含设备映像。在文件名中,“xxxxxx”是此设备的 build 版本 ID。

    2. 在面板中向下滚动并下载 cvd-host_package.tar.gz。始终从与映像相同的 build 版本下载主机软件包。

  7. 在本地系统中,创建一个容器文件夹并解压缩软件包

    1. x86_64 架构

      mkdir cf
      cd cf
      tar -xvf /path/to/cvd-host_package.tar.gz
      unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip

    2. ARM64 架构

      mkdir cf
      cd cf
      tar -xvf /path/to/cvd-host_package.tar.gz
      unzip /path/to/aosp_cf_arm64_only_phone-img-xxxxxx.zip

  8. 启动 Cuttlefish

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

验证是否可以通过 adb 看到 Cuttlefish

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

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

./bin/adb devices

在 Web 中查看虚拟设备并与之互动

默认情况下,Cuttlefish 启动时会带有 --start_webrtc,这会在主机上的端口 8443 上启用 Webview。

要查看虚拟设备并与之互动,请在 Web 浏览器中转到 https://127.0.0.1:8443

如需了解详情,请参阅Cuttlefish:WebRTC 流式传输

停止 Cuttlefish

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

HOME=$PWD ./bin/stop_cvd