Ativar a chave de 16 KB

A alternância de 16 KB permite testar um kernel de 16 KB. Essa chave alterna entre um kernel de 4 KB e um de 16 KB e pode ser encontrada no menu "Opção para desenvolvedores" do app Configurações. A chave de 16 KB pode ser usada para verificar a compatibilidade do aplicativo com o kernel de 16 KB, mas talvez não reflita o desempenho de um dispositivo de 16 KB real devido ao uso de blocos de subpáginas (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 agnósticas de páginas (para funcionar com kernels de tamanho de página de 4 KB e 16 KB). Talvez seja necessário instalar o kernel de 16k diretamente para garantir que o dispositivo funcione no modo de 16 KB antes de continuar adicionando a opção para desenvolvedores. Confira 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 de produto para mostrar a opção do 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 a variável de caminho de configuração de módulos BOARD_KERNEL_MODULES_16K. Essa variável aponta para módulos do kernel que aceitam 16 KB. A definição desses parâmetros cria 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. Defina isso apenas para mover OTAs do sistema para a partição do fornecedor.

Verificação

Depois de configurar a alternância, siga estas etapas:

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

Usar a chave de 16 KB

  1. Acesse Configurações > Sistema > Atualizações de software e aplique as atualizações disponíveis.
  2. Ative as opções do desenvolvedor. Para instruções, consulte Configurar opções do desenvolvedor no dispositivo.
  3. Se o dispositivo for detectado como bloqueado pelo OEM, uma caixa de diálogo vai aparecer pedindo para desbloquear o smartphone. Para instruções, consulte Bloquear e desbloquear o carregador de inicialização.
  4. Clique em Inicializar com páginas de 16 KB. Se /data e /metadata não forem ext4, uma caixa de diálogo vai aparecer pedindo para limpar o dispositivo. Clique em Limpar todos os dados e atualizar para limpar o dispositivo e aplicar OTAs de inicialização. O dispositivo é redefinido e inicializado no modo 16 KB. Ative as opções do desenvolvedor novamente. Em seguida, é possível 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 16 KB

Siga as etapas em Como saber o tamanho da página para verificar o tamanho da página.