本頁說明如何使用 Cuttlefish 啟動 AOSP 建構版本。
確認 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 持續整合網站找到虛擬裝置的建構版本。如要查看所有 Android 建構版本的索引,請前往 Android 持續整合網站:http://ci.android.com/。
輸入分支版本名稱。使用預設的
aosp-android-latest-release
分支版本,或使用通用系統映像檔 (GSI) 分支版本,例如aosp-android13-gsi
。前往 aosp_cf_x86_64_only_phone 建構目標,然後按一下「userdebug」取得最新版本。
按一下「userdebug」下方的綠色方塊,選取這個建構版本。系統會顯示「詳細資料」面板,其中包含這個建構版本的詳細資訊。在這個面板中,按一下「構件」,即可查看附加至這個建構作業的所有構件清單。
在「構件」面板中,下載 Cuttlefish 的構件。
按一下 x86_64 的
aosp_cf_x86_64_phone-img-xxxxxx.zip
構件或 ARM64 的aosp_cf_arm64_only_phone-xxxxxx.zip
構件,其中包含裝置映像檔。在檔案名稱中,「xxxxxx」是這部裝置的建構 ID。在面板中向下捲動,然後下載
cvd-host_package.tar.gz
。請務必從與映像檔相同的建構版本下載主機套件。
在本機系統上建立容器資料夾,並解壓縮套件:
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 Debug Bridge (ADB) 顯示。
在啟動 Cuttlefish 的資料夾中,執行下列指令,即可查看主機上透過 adb 提供的所有 Android 裝置清單:
./bin/adb devices
在網頁中查看虛擬裝置並與之互動
根據預設,Cuttlefish 會使用 --start_webrtc
啟動,透過主機上的通訊埠 8443 啟用 WebView。
如要查看及操作虛擬裝置,請在網路瀏覽器中前往 https://localhost:8443。
詳情請參閱「Cuttlefish:WebRTC 串流」。
停止 Cuttlefish
在啟動裝置時使用的相同目錄中停止虛擬裝置:
HOME=$PWD ./bin/stop_cvd