Usa Cuttlefish con tamaño de página de 16 KB en ARM64

Esta configuración requiere un host de Linux ARM64. En esta página, se muestra cómo compilar e iniciar Cuttlefish con compatibilidad para tamaños de página de 16 KB en ARM64. En las instrucciones de esta página, se supone que los paquetes de Cuttlefish están instalados en tu máquina. Para obtener instrucciones sobre cómo instalarlos, consulta el paso 1 de Cómo instalar Cuttlefish.

Para iniciar Cuttlefish, puedes descargar los artefactos precompilados directamente desde el sitio de integración continua de Android o compilarlos desde AOSP si necesitas modificar el código fuente.

Descarga los artefactos para iniciar Cuttlefish

Navega al sitio de Integración continua de Android y ingresa aosp-main-throttled como el nombre de la rama. Haz clic en la compilación más reciente del destino aosp_cf_arm64_phone_pgagnostic. Ahora, sigue las instrucciones del paso 5 de Cómo instalar Cuttlefish.

Cómo compilar desde AOSP para iniciar Cuttlefish

Compila y, luego, inicia Cuttlefish con un objetivo independiente de la página:

$ 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

Verifica el tamaño y el inicio de la página

Para verificar el tamaño de la página y el estado de inicio, sigue estos pasos:

  1. Accede a la shell como raíz:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Verifica el tamaño de la página y el estado de inicio:

    vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE
    16384
    vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed
    sys.boot_completed: 1
    

Usa Cuttlefish con un kernel personalizado de tamaño de página de 16 KB

Para usar un kernel personalizado, en lugar de uno precompilado, haz lo siguiente:

  1. Crea un directorio de repo para un kernel común de Android y sincroniza el directorio:

    $ 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)
    
  2. Compila el kernel de tamaño de página de 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
    
  3. Verifica que la compilación se haya ejecutado de forma correcta:

    # Generated files
    $ ls out/android14-6.1/dist/Image
    $ ls out/android14-6.1/dist/initramfs.img
    

Cómo iniciar Cuttlefish con el kernel personalizado de tamaño de página de 16 KB

Para usar el kernel que compilaste recientemente en Cuttlefish, haz lo siguiente:

$ 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