如何在x86_64 Linux上部署Android Cuttlefish模拟器运行环境

发布于:2025-06-27 ⋅ 阅读:(20) ⋅ 点赞:(0)

0 软硬件环境

1 将系统升级至Ubuntu24.04 LTS

这一步很关键,因为我一开始一直在Ubuntu20.04 LTS上配置环境,配置cuttlefish环境总是有各种依赖库的问题。所以更新到了24.04。

如果你的系统是20.04,可通过下面命令将系统升级至24.04

sudo apt update && sudo apt upgrade -y
#检查是否有官方推送的升级
sudo do-release-upgrade -c
#升级系统版本
sudo do-release-upgrade

2 搭建cuttlefish运行环境

  1. 配置网络(你懂我意思)

  2. 安装依赖包

    sudo apt install -y git devscripts config-package-dev debhelper-compat golang curl f2fs-tools libfdt1
    
  3. 安装bazel

    npm install -g @bazel/bazelisk
    sudo wget https://github.com/bazelbuild/bazelisk/releases/download/v1.18.0/bazelisk-linux-amd64 -O /usr/local/bin/bazel
    sudo chmod +x /usr/local/bin/bazel
    

    或者

    # 添加 Bazel 仓库
    sudo apt install apt-transport-https curl gnupg
    curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
    sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
    echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
    # 安装 Bazel
    sudo apt update && sudo apt install bazel
    # 查看bazel安装是否完成
    bazel --version
    
  4. 安装android依赖的软件包

    sudo apt install meson protobuf-compiler libfmt-dev libgoogle-glog-dev libjsoncpp-dev cmake pkg-config  libcurl4-openssl-dev libxml2-dev libssl-dev openssl uuid-dev uuid libgtest-dev util-linux net-tools ebtables libarchive-tools libz3-4 grub-efi-ia32-bin openssh-server bridge-utils
    
  5. 下载cuttlefish源码

    git clone https://www.github.com/google/android-cuttlefish.git
    
  6. 设置代理

    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    
    diff --git a/frontend/src/goutil b/frontend/src/goutil
    index 449ccab..03e7cd8 100755
    --- a/frontend/src/goutil
    +++ b/frontend/src/goutil
    @@ -24,7 +24,9 @@ if [[ "$version" > "1.15" ]]; then
    # Temporary solution until https://github.com/golang/go/issues/28194 is fixed
    # in order to retry failed fetch requests.
    # GOPROXY fallback was added in Go 1.15
    -  export GOPROXY="proxy.golang.org|proxy.golang.org|direct"
    +  #export GOPROXY="proxy.golang.org|proxy.golang.org|direct"
    +  go env -w GO111MODULE=on
    +  go env -w GOPROXY=https://goproxy.cn,direct
    fi
    
  7. 编译

    for dir in base frontend; do
    cd $dir
    debuild -i -us -uc -b -d
    cd ..
    done
    

    如果编译过程中提示下面的错误
    在这里插入图片描述
    最好在编译前执行一下(此命令会对bazel进行一些必要的配置)

    bazel --version
    
  8. 安装配置

    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
    

网站公告

今日签到

点亮在社区的每一天
去签到