Ativar alternância de 16 KB

A alternância de 16 KB permite testar um kernel de 16 KB. Este botão de ativação/desativação entre um kernel de 4 KB e um kernel de 16 KB e pode ser encontrado no "Opções do desenvolvedor" no app Configurações. É possível usar o botão de alternância de 16 KB para verificar a compatibilidade do aplicativo com o kernel de 16 KB, mas talvez isso não refletem o desempenho do dispositivo real 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 de páginas (para funcionar com kernels de tamanho de página de 4 KB e 16 KB). Você pode instalar o kernel 16k diretamente para garantir que o dispositivo funcione em 16 KB diretamente antes de continuar a adicionar a opção do desenvolvedor. Veja o exemplo de dispositivo virtual configuração de destino.

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. Defina a variável do produto para exibir 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. Define o caminho de configuração dos módulos BOARD_KERNEL_MODULES_16K. Isso aponta para o kernel módulos com suporte a 16 KB. Definir esses parâmetros vai criar duas OTAs no partição do sistema: boot_ota_16k.zip(para alternar para o kernel de 16 KB) e boot_ota_4k.zipPara alternar para o kernel de 4 KB. Ativar OTAs incrementais definindo BOARD_16K_OTA_USE_INCREMENTAL := true para OTAs de inicialização menores.

      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 configurar isso.

Verificação

Após a configuração,

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

Usar alternância de 16 KB

  1. Ative as opções do desenvolvedor conforme indicado na documentação das opções de desenvolvedor.
  2. Se o dispositivo for detectado como OEM bloqueado, uma caixa de diálogo será exibida para solicitar o o usuário para o OEM desbloqueia o smartphone. Siga as etapas para desbloquear o OEM.
  3. Quando o usuário clica em "Inicialização com tamanho de página de 16 KB", /data e /metadata. as partições precisam ser ext4. Se não estiverem, uma caixa de diálogo será exibida para solicitar o usuário limpar o dispositivo. Responder "Sim" limpa o dispositivo e você terá para reativar as opções do desenvolvedor.
  4. O botão de alternância de 16 KB agora mostra uma caixa de diálogo de confirmação para mudar para 16 KB, e, ao confirmar, são aplicadas OTAs de inicialização. É possível alternar entre as opções entre os modos de 4 KB e 16 KB sem limpar a partição de dados para e testar o comportamento do app.

Verificar o modo de 16 KB

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