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 interruptor entre un kernel de 4 KB y un kernel de 16 KB, y se encuentran en el "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 reflejan el rendimiento del dispositivo real de 16 KB debido al uso de bloques de subpáginas (cuando se usa EXT4 para particiones /data y /metadata) en modo de 16 KB.

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 de 16 KB). Es posible que quieras instalar el kernel de 16k directamente para asegurarte de que el dispositivo funcione en modo de 16 KB directamente 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 que se muestre la opción para desarrolladores en la configuración PRODUCT_16K_DEVELOPER_OPTION := true

  3. Configura la ruta de acceso del kernel con BOARD_KERNEL_PATH_16K. Este kernel debe compilarse con CONFIG_ARM64_16K_PAGES=y..

      BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
    
  4. Establece la ruta de configuración de módulos BOARD_KERNEL_MODULES_16K. Esto apunta al 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 a un kernel de 16 KB) y boot_ota_4k.zip(para cambiar a kernel de 4 KB). Habilita las OTA incrementales: Configura BOARD_16K_OTA_USE_INCREMENTAL := true para OTA de inicio de menor tamañ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. Configura BOARD_16K_OTA_MOVE_VENDOR := true para mover las actualizaciones inalámbricas a la partición del proveedor. Este campo es opcional; la mayoría de los dispositivos no deben configurarlo.

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 "Inicio con un tamaño de página de 16 KB".
  2. /system/boot_otas o /vendor/boot_otas contienen dos archivos ZIP inalámbricos: 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 como se indica en la documentación sobre opciones para desarrolladores.
  2. Si se detecta que el dispositivo está bloqueado por OEM, aparecerá un diálogo para solicitar el usuario para desbloquear el teléfono con OEM. Sigue los pasos para desbloquear OEM.
  3. Cuando el usuario selecciona "Inicio con un tamaño de página de 16 KB", /data y /metadata. particiones deben ser ext4. De lo contrario, aparecerá un diálogo para solicitar que que el usuario limpie el dispositivo. Respondiendo "Sí" limpia el dispositivo y tendrás para volver a activar estas opciones.
  4. El botón de activación de 16 KB ahora muestra un diálogo de confirmación para cambiar a 16 KB y, luego de confirmar, se aplican las OTA de inicio. Luego, puedes alternar entre entre 4 KB y 16 KB sin borrar la partición de datos a probar el comportamiento de la app.

Verifica el modo de 16 KB

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