Ativar a chave de 16 KB

O botão de 16 KB permite testar um kernel de 16 KB. Esse botão alterna entre um kernel de 4 KB e um de 16 KB e pode ser encontrado no menu "Opção para desenvolvedores" no app de configurações. O botão de 16 KB pode ser usado para verificar a compatibilidade do aplicativo com o kernel de 16 KB, mas pode não refletir o desempenho do dispositivo de 16 KB devido ao uso de blocos de subpágina (ao usar EXT4 para partições /data e /metadata) no modo de 16 KB.

Etapas para configurar a alternância

  1. Verifique se o dispositivo configurou as variáveis para serem independentes da página (para funcionar com kernels de tamanho de página de 4 KB e 16 KB). Talvez seja necessário instalar o kernel de 16 KB diretamente para garantir que o dispositivo funcione no modo de 16 KB antes de continuar adicionando a opção para desenvolvedores. Consulte o exemplo de configuração de destino do dispositivo virtual.

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. Configurar a variável do produto para mostrar a opção de desenvolvedor nas configurações PRODUCT_16K_DEVELOPER_OPTION := true

  3. Defina o caminho do kernel usando BOARD_KERNEL_PATH_16K. Esse kernel precisa ser criado com CONFIG_ARM64_16K_PAGES=y..

      BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
    
  4. Defina o caminho de configuração dos módulos BOARD_KERNEL_MODULES_16K. Isso aponta para módulos do kernel que aceitam 16 KB. A configuração desses parâmetros vai criar duas OTAs na partição do sistema: boot_ota_16k.zip(para mudar para o kernel de 16 KB) e boot_ota_4k.zip(para mudar para o kernel de 4 KB). Ative as OTAs incrementais definindo BOARD_16K_OTA_USE_INCREMENTAL := true para OTAs de inicialização de tamanho menor.

      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. Defina BOARD_16K_OTA_MOVE_VENDOR := true para mover as OTAs para a partição do fornecedor. Opcional, e a maioria dos dispositivos não deve definir isso.

Verificação

Depois de configurar isso

  1. O botão de 16 KB fica visível no app Configurações com a opção "Inicializar com páginas de 16 KB".
  2. /system/boot_otas ou /vendor/boot_otas contém dois arquivos ZIP de OTA: boot_ota_16k.zip e boot_ota_4k.zip.

Usar o botão de 16 KB

  1. Ative as opções do desenvolvedor conforme indicado na documentação de opções do desenvolvedor.
  2. Se o dispositivo for detectado como bloqueado pelo OEM, uma caixa de diálogo vai aparecer para solicitar que o usuário desbloqueie o smartphone pelo OEM. Siga as etapas para desbloqueio OEM.
  3. Quando o usuário clica em "Inicializar com páginas de 16 KB", as partições /data e /metadata precisam ser ext4. Se não forem, uma caixa de diálogo será exibida para solicitar que o usuário limpe o dispositivo. A resposta "Sim" vai apagar o dispositivo, e você vai precisar ativar as opções do desenvolvedor novamente.
  4. O botão de 16 KB agora mostra uma caixa de diálogo de confirmação para mudar para 16 KB. Ao confirmar, as OTAs de inicialização são aplicadas. Em seguida, você pode alternar entre os modos 4 KB e 16 KB sem limpar a partição de dados para testar o comportamento do app.

Verificar o modo de 16 KB

Siga as etapas em como conferir o tamanho da página para verificar o tamanho da página.