Cuttlefish 是一种可配置的虚拟 Android 设备,既可以远程运行(使用第三方云产品,如 Google Cloud Engine),又可以在本地运行(在 Linux x86 和 ARM64 计算机上)。
下载依赖与安装
官方文档
https://source.android.com/docs/devices/cuttlefish/get-started?hl=zh-cn
https://source.android.com/docs/devices/cuttlefish/get-started
注意:
英文文档和中文文档有差异,使用英文文档的安装方式依赖较好的网络环境;若遇到无法下载等网络问题,可参考中文文档进行配置。
检查系统架构:
lscpu
# 从右侧输出可以确认当前系统架构为 X86_64架构: x86_64
CPU 运行模式: 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
字节序: Little Endian
检查KVM支持
Cuttlefish依赖KVM,所以安装之前,需确保KVM可用。
X86
grep -c -w "vmx\|svm" /proc/cpuinfo若此命令返回一个非零值,表示KVM可用。
ARM
find /dev -name kvm下载及安装
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
for dir in base frontend; do
  pushd $dir
  # Install build dependencies
  sudo mk-build-deps -i
  dpkg-buildpackage -uc -us
  popd
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配置系统镜像
Cuttlefish是Android开源项目AOSP的一部分,可以在AOSP官网下载合适的build版本。
具体下载及配置方式查看官网:
https://source.android.com/docs/devices/cuttlefish/get-started?hl=zh-cn
本文主要介绍使用AOSP源码编译出版本,然后使用CuttleFish调试的方式。
下载AOSP源码
编译源码三步走
source build/envsetup.shlunch aosp_cf_x86_64_phone-trunk_staging-userdebuglunch后的版本字符串的组成部分为:
lunch product_name-release-build_variant
这product_name是要构建的产品的名称,例如
aosp_cf_x86_64_phone或aosp_husky。您的具体product_name您可以遵循您自己的设备格式,但 Google 为其设备使用的格式包含以下组件:
aosp指的是Android开源平台。(可选)
cf当目标打算在 Cuttlefish 模拟器中运行时,包含该选项。架构和硬件(代号),例如
x86_64_phone或husky是 Pixel 8 pro 的代号。如需查看 Google 设备代号列表,请参阅设备代号。这release设置为
trunk_staging。这build_variant字符串部分可以是下表中的三个值之一:
若要查看当前lunch的设置版本,可运行:
echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"
m -j16启动Cuttlefish模拟器
在经历数小时的编译之后,可使用以下命令启动模拟器
HOME=$PWD ./out/host/linux-x86/bin/launch_cvd -daemon -cpus=8 --memory_mb=8192 --gpu_mode=gfxstream若想停止模拟器,可使用命令:
HOME=$PWD ./out/host/linux-x86/bin/stop_cvd以上命令在AOSP源码根目录下执行,若报错,可先配置source/lunch等命令后再次尝试。
更多启动命令配置可查看以下文档:
正常启动Cuttlefish模拟器后,在终端会提示使用浏览器打开链接:
打开之后,将看到可用的虚拟机列表,点击左侧按钮即可启动对应版本虚拟机。

      
      
评论区