Ativar alternância de 16 KB

O botão de 16 KB permite testar um kernel de 16 KB. Essa alternância alterna entre um kernel de 4 KB e um kernel de 16 KB e pode ser encontrada no menu "Opções do desenvolvedor" no app de configurações. A alternância de 16 KB pode ser usada para verificar a compatibilidade do aplicativo com o kernel de 16 KB, mas pode não refletir o desempenho do dispositivo real de 16 KB devido ao uso de blocos de subpáginas (ao usar o modo EXT4 para /data e /metadata).

Etapas para configurar a alternância

  1. Verifique se o dispositivo configurou as variáveis para serem independentes de 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 com suporte a 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 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 precisa 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 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 a alternância 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 será exibida para solicitar que o usuário desbloqueie o smartphone como OEM. Siga as etapas para desbloquear o OEM.
  3. Quando o usuário clica em "Inicializar com tamanho de página 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. Você pode alternar entre os modos de 4 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.