這項設定需要 ARM64
Linux 主機,本頁面說明如何建構
透過 ARM64
支援 16 KB 頁面大小的 Cuttlefish。有關
此頁面假設您已在機器中安裝 Cuttlefish 套件。適用對象
安裝操作說明,請參閱「安裝 Cuttlefish」的步驟 1。
您可以下載預先建構的 Cuttlefish 直接擷取 Android Continuous 的構件 視需要修改整合網站,或是透過 Android 開放原始碼計畫建立網站 原始碼
下載構件即可啟動 Cuttlefish
前往 Android 持續整合網站,
輸入 aosp-main-throttled
做為分支版本名稱。點選最新版本的
aosp_cf_arm64_phone_pgagnostic
目標。接著,按照
第 5 頁的「Install Cuttlefish」。
透過 Android 開放原始碼計畫建構 Cuttlefish
建構並啟動 Cuttlefish 是設定跨頁面目標:
$ mkdir main && cd main
$ repo init -u https://android.googlesource.com/platform/manifest -b main
$ repo sync -c -j32
# Build cf agnostic target.
$ source build/envsetup.sh
$ lunch aosp_cf_arm64_phone_pgagnostic-trunk_staging-userdebug
$ m
# Launch cf with a kernel with 16 KB page size support.
$ launch_cvd
...
...
VIRTUAL_DEVICE_DISPLAY_POWER_MODE_CHANGED
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
Generating new secret with slot ID: 4
VIRTUAL_DEVICE_BOOT_STARTED
VIRTUAL_DEVICE_NETWORK_MOBILE_CONNECTED
驗證頁面大小和啟動
如何驗證頁面大小和開機狀態:
以根權限存取殼層:
$ adb root adbd is already running as root $ adb shell vsoc_arm64_pgagnostic:/ #
驗證頁面大小和啟動狀態:
vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE 16384 vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed sys.boot_completed: 1
搭配自訂 16 KB 頁面大小核心使用 Cuttlefish
如要使用自訂核心,而非預先建構的核心:
為 Android 通用核心建立存放區目錄,並同步處理目錄:
$ mkdir common-android14-6.1 && cd common-android14-6.1 $ repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1 $ repo sync -c -j$(nproc)
建構 16 KB 頁面大小核心:
$ tools/bazel run --lto=none //common:kernel_aarch64_16k_dist $ tools/bazel run --lto=none //common-modules/virtual-device:virtual_device_aarch64_16k_dist -- \ --dist_dir=out/android14-6.1/dist
確認版本已成功執行:
# Generated files $ ls out/android14-6.1/dist/Image $ ls out/android14-6.1/dist/initramfs.img
使用自訂 16 KB 頁面大小核心啟動 Cuttlefish
如要在 Cuttlefish 中使用新建構的核心:
$ launch_cvd -kernel_path ~/common-android14-6.1/out/android14-6.1/dist/Image \
-initramfs_path ~/common-android14-6.1/out/android14-6.1/dist/initramfs.img \
--resume=false --userdata_format=ext4 \
--data_policy=always_create --blank_data_image_mb=8000
-userdata_format=ext4