侧边栏壁纸
博主头像
潦草地博主等级

行动起来,活在当下

  • 累计撰写 3 篇文章
  • 累计创建 2 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

CuttleFish Android 模拟器

Storen
2024-09-15 / 0 评论 / 0 点赞 / 15 阅读 / 6886 字

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

注意:

英文文档和中文文档有差异,使用英文文档的安装方式依赖较好的网络环境;若遇到无法下载等网络问题,可参考中文文档进行配置。

  1. 检查系统架构:

lscpu
# 从右侧输出可以确认当前系统架构为 X86_64

架构: x86_64

CPU 运行模式: 32-bit, 64-bit

Address sizes: 39 bits physical, 48 bits virtual

字节序: Little Endian

  1. 检查KVM支持

Cuttlefish依赖KVM,所以安装之前,需确保KVM可用。

X86

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

若此命令返回一个非零值,表示KVM可用。

ARM

find /dev -name kvm

  1. 下载及安装

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版本。

http://ci.android.com/

具体下载及配置方式查看官网:

https://source.android.com/docs/devices/cuttlefish/get-started?hl=zh-cn

本文主要介绍使用AOSP源码编译出版本,然后使用CuttleFish调试的方式。

  1. 下载AOSP源码

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

  1. 编译源码三步走

source build/envsetup.sh
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

lunch后的版本字符串的组成部分为:

lunch product_name-release-build_variant
  • 这product_name是要构建的产品的名称,例如aosp_cf_x86_64_phoneaosp_husky。您的具体product_name您可以遵循您自己的设备格式,但 Google 为其设备使用的格式包含以下组件:

    • aosp指的是Android开源平台。

    • (可选)cf当目标打算在 Cuttlefish 模拟器中运行时,包含该选项。

    • 架构和硬件(代号),例如x86_64_phonehusky是 Pixel 8 pro 的代号。如需查看 Google 设备代号列表,请参阅设备代号

  • 这release设置为trunk_staging

  • 这build_variant字符串部分可以是下表中的三个值之一:

    build_variant

    描述

    user

    此构建变体提供有限的安全访问并且适合生产。

    userdebug

    此构建变体可帮助设备开发者了解正在开发版本的性能和功能。使用userdebug构建进行开发时,请遵循userdebug 指南

    eng

    如果您不关心性能和功率,此构建变体具有更快的构建时间,最适合日常开发。

若要查看当前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等命令后再次尝试。

更多启动命令配置可查看以下文档:

https://source.android.com/docs/devices/cuttlefish

https://zhuanlan.zhihu.com/p/697320468


正常启动Cuttlefish模拟器后,在终端会提示使用浏览器打开链接:

https://localhost:8443/

打开之后,将看到可用的虚拟机列表,点击左侧按钮即可启动对应版本虚拟机。

0

评论区