Cuttlefish: Función multiusuario

La función multiusuario de Cuttlefish permite que tu máquina anfitrión inicie varios dispositivos virtuales de invitado con una sola invocación de inicio.

Estas máquinas virtuales de Cuttlefish pueden compartir algunos de los recursos del disco host, lo que te permite ahorrar espacio. Cada máquina virtual obtiene una superposición de disco distinta que cubre las particiones de Android (como super, userdata y boot). Cualquier modificación que se haga en el disco de invitado se ubica en una superposición de disco específica de invitado, lo que le da a cada máquina virtual de Cuttlefish una vista de copia en escritura de las particiones del disco. A medida que cada dispositivo virtual escribe más datos en su vista del disco, aumenta el tamaño de los archivos superpuestos en el disco de host, dado que capturan el delta entre el estado original y el actual.

Los archivos superpuestos se pueden restablecer para que el disco de Cuttlefish vuelva a su estado original. Este proceso se conoce como Powerwash.

Números de instancia

Los dispositivos Cuttlefish crean y utilizan recursos en el host vinculado a su número de instancia. Por ejemplo, una conexión adb se expone a través de un socket del servidor del TCP en el puerto 6520 para el dispositivo Cuttlefish que tiene el número de instancia 1. Cuando se inician varias instancias, se crea un socket del servidor del TCP en el puerto 6520 para el primer dispositivo, 6521 para el segundo y, para cada dispositivo adicional, se aumenta el número de puerto.

Cómo modificar la cantidad máxima de instancias compatibles

Los recursos del host, como los dispositivos de la red TAP, se deben asignar con antelación para las máquinas virtuales Cuttlefish. De forma predeterminada, el paquete cuttlefish-base de Debian aprovisiona recursos para los números de instancia entre 1 y 10.

Esto se puede cambiar si modificas num_cvd_accounts en /etc/default/cuttlefish-host-resources y reinicias el servicio cuttlefish-host-resources mediante el siguiente comando:

sudo systemctl restart cuttlefish-host-resources

Cómo controlar instancias de multiusuario

En esta sección, se describe cómo iniciar dispositivos y detenerlos en invocaciones de launch_cvd tanto de un solo usuario como multiusuario.

Cómo iniciar los dispositivos

Para iniciar varios dispositivos Cuttlefish al mismo tiempo, usa la marca --num_instances=N (N es la cantidad de dispositivos que se iniciarán). De forma predeterminada, los dispositivos se inician desde el número de instancia 1.

launch_cvd --num_instances=N

Para cambiar ese número de inicio, realiza una de las siguientes acciones:

  • Agrega la marca --base_instance_num=N, con N como primer número de instancia.

    launch_cvd --base_instance_num=N
    
  • Inicia Cuttlefish con una cuenta de usuario que coincida con vsoc-NN (NN es el número de instancia base en formato de dos dígitos). Por ejemplo, para iniciar Cuttlefish con la cuenta de usuario vsoc-01, ejecuta lo siguiente:

    launch_cvd --base_instance_num=1
    

Cómo detener los dispositivos

Para detener todos los dispositivos que se iniciaron con la última invocación de launch_cvd, ejecuta lo siguiente:

stop_cvd