Habilitar el botón de activación de 16 KB

El botón de activación de 16 KB te permite probar un kernel de 16 KB. Este botón de activación cambia entre un kernel de 4 KB y un kernel de 16 KB, y se puede encontrar dentro del menú "Opción para desarrolladores" en la app de configuración. El botón de activación de 16 KB se puede usar para verificar la compatibilidad de la aplicación con el kernel de 16 KB, pero es posible que no refleje el rendimiento del dispositivo real de 16 KB debido al uso de bloques de subpágina (cuando se usa EXT4 para particiones /data y /metadata) en el modo 16.

Pasos para configurar el botón de activación

  1. Asegúrate de que el dispositivo haya configurado las variables para que sean independientes de la página (para que funcionen con kernels de tamaño de página de 4 KB y 16 KB). Te recomendamos que instales el kernel de 16 K directamente para asegurarte de que el dispositivo funcione en el modo de 16 K antes de continuar con la adición de la opción para desarrolladores. Consulta la configuración de destino del ejemplo de dispositivo virtual.

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. Configura la variable de producto para mostrar la opción para desarrolladores en la configuración PRODUCT_16K_DEVELOPER_OPTION := true

  3. Configura la ruta del kernel con BOARD_KERNEL_PATH_16K. Este kernel se debe compilar con CONFIG_ARM64_16K_PAGES=y..

      BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
    
  4. Establece la ruta de acceso de configuración de los módulos BOARD_KERNEL_MODULES_16K. Esto apunta a los módulos del kernel que admiten 16 KB. Si configuras estos parámetros, se crearán dos OTA en la partición del sistema: boot_ota_16k.zip(para cambiar al kernel de 16 KB) y boot_ota_4k.zip(para cambiar al kernel de 4 KB). Para habilitar las OTA incrementales, configura BOARD_16K_OTA_USE_INCREMENTAL := true para las OTA de inicio de tamaño más pequeño.

      BOARD_KERNEL_MODULES_16K += $(wildcard kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/*.ko)
      BOARD_KERNEL_MODULES_16K += $(wildcard kernel/prebuilts/common-modules/virtual-device/mainline/$(TARGET_KERNEL_ARCH)/16k/*.ko)
    
  5. Establece BOARD_16K_OTA_MOVE_VENDOR := true para mover las actualizaciones OTA a la partición del proveedor. Es opcional, y la mayoría de los dispositivos no deberían establecerlo.

Verificación

Después de configurar esta opción correctamente

  1. El botón de activación de 16 KB se puede ver en la app de configuración con "Iniciar en tamaño de página de 16 KB".
  2. /system/boot_otas o /vendor/boot_otas contiene dos archivos ZIP OTA: boot_ota_16k.zip y boot_ota_4k.zip.

Usa el botón de activación de 16 KB

  1. Habilita las opciones para desarrolladores según se indica en la documentación de las opciones para desarrolladores.
  2. Si se detecta que el dispositivo está bloqueado por el OEM, aparecerá un diálogo para solicitarle al usuario que desbloquee el teléfono con el OEM. Sigue los pasos para desbloquear el OEM.
  3. Cuando el usuario presiona "Iniciar en tamaño de página de 16 KB", las particiones /data y /metadata deben ser ext4. Si no es así, aparecerá un diálogo para solicitarle al usuario que borre el dispositivo. Si respondes "Sí", se borrará el dispositivo y deberás volver a activar las opciones para desarrolladores.
  4. El botón de activación de 16 KB ahora muestra un diálogo de confirmación para cambiar a 16 KB y, al confirmar, se aplican las OTA de inicio. Luego, puedes alternar entre los modos de 4 KB y 16 KB sin borrar la partición de datos para probar el comportamiento de la app.

Cómo verificar el modo de 16 KB

Sigue los pasos que se indican en Cómo obtener el tamaño de la página para verificarlo.