本页介绍了如何使用 Cuttlefish 来启动 AOSP build。
验证 KVM 可用性
Cuttlefish 是一种虚拟设备,依赖于宿主机上可用的虚拟化。
在宿主机上的终端中,确保可以在基于内核的虚拟机 (KVM) 上实现虚拟化:
grep -c -w "vmx\|svm" /proc/cpuinfo
此命令应返回一个非零值。
在 ARM64 机器上运行时,最直接的方法就是检查 /dev/kvm
:
find /dev -name kvm
启动 Cuttlefish
在终端窗口中,下载、构建并安装主机 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
规则。Cuttlefish 是 Android 开源平台 (AOSP) 的一部分。您可以在 Android 持续集成网站上找到虚拟设备的 build。如需查找所有 Android build 的索引,请前往 Android 持续集成网站:http://ci.android.com/。
输入分支名称。使用默认的
aosp-main
分支,或者使用通用系统映像 (GSI) 分支,例如aosp-android13-gsi
。前往 aosp_cf_x86_64_phone build 目标,然后点击 userdebug 以获取最新 build。
点击 userdebug 下方的绿色框,以选择此 build。页面会显示 Details 面板,其中包含特定于此 build 的更多信息。在此面板中点击 Artifacts,即可查看附加到此 build 的所有工件的列表。
在“Artifacts”面板中,下载 Cuttlefish 的制品。
点击 x86_64 的
aosp_cf_x86_64_phone-img-xxxxxx.zip
制品或 ARM64 的aosp_cf_arm64_only_phone-xxxxxx.zip
制品,这些制品中包含设备映像。在文件名中,“xxxxxx”是此设备的 build ID。在面板中向下滚动,然后下载
cvd-host_package.tar.gz
。请务必从与映像相同的 build 中下载主机软件包。
在本地系统上,创建一个容器文件夹并解压软件包:
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
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
启动 Cuttlefish:
HOME=$PWD ./bin/launch_cvd --daemon
验证 Cuttlefish 是否可通过 adb 显示
与实体设备类似,Cuttlefish 可通过 Android 调试桥 (adb) 显示。
在您启动 Cuttlefish 的同一文件夹中,运行以下命令,以便查看宿主机上通过 adb 显示的所有 Android 设备的列表:
./bin/adb devices
在网络中查看虚拟设备并与之互动
默认情况下,Cuttlefish 使用 --start_webrtc
进行启动。此代码通过宿主机上的端口 8443 支持 WebView。
如需查看虚拟设备并与之交互,请在网络浏览器中进入 https://localhost:8443。
如需了解详情,请参阅 Cuttlefish:WebRTC 流式传输。
停止 Cuttlefish
请在您用于启动设备的同一目录内停止虚拟设备:
HOME=$PWD ./bin/stop_cvd