A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Ativar a chave de 16 KB
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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
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
Configurar a variável do produto para mostrar a opção de desenvolvedor nas configurações
PRODUCT_16K_DEVELOPER_OPTION := true
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.
Defina a variável de caminho de configuração dos módulos BOARD_KERNEL_MODULES_16K
. Essa variável
aponta para módulos do kernel que oferecem suporte a 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)
Defina BOARD_16K_OTA_MOVE_VENDOR := true
para mover as OTAs para a partição do fornecedor.
Defina essa opção apenas para mover OTAs da partição do sistema para a do fornecedor.
Verificação
Depois de configurar a opção, siga estas etapas:
- Verifique se a opção Inicializar com tamanho de página de 16 KB está visível no app de configurações.
- 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 o botão de 16 KB
- Acesse Configurações > Sistema > Atualizações de software e aplique as atualizações
disponíveis.
- Ative as opções do desenvolvedor. Para instruções, consulte Configurar opções do desenvolvedor no dispositivo.
- Se o dispositivo for detectado como bloqueado pelo OEM, uma caixa de diálogo será mostrada pedindo que você
desbloqueie o smartphone. Para instruções, consulte Bloquear e desbloquear o carregador de inicialização.
- 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 que você limpe o dispositivo. Clique em
Limpar todos os dados para excluir permanentemente o dispositivo. O dispositivo é apagado e você precisa
ativar as opções do desenvolvedor novamente.
- Clique em Inicializar com páginas de 16 KB. Uma caixa de diálogo aparece pedindo que você
mude para 16 KB. Ao confirmar, as OTAs de inicialização são aplicadas. Em seguida,
alterne 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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Enable 16 KB toggle\n\n16 KB toggle lets you to try a 16 KB kernel. This toggle switches\nbetween a 4 KB kernel and 16 KB kernel and can be found inside the\n\"Developer option\" menu in the settings app. The 16 KB toggle can be used\nto check application compatibility with the 16 KB kernel, but it might not\nreflect performance of actual 16 KB device due to the use of subpage blocks\n(when using EXT4 for `/data` and `/metadata` partitions) in 16 KB mode.\n\nSteps for configuring toggle\n----------------------------\n\n1. Make sure the device has set up the variables to be page-agnostic (to work\n with both 4 KB and 16 KB page size kernels).\n You may want to install the 16k kernel directly to make sure the device works in\n 16 KB mode directly before continuing to add the developer option.\n See the virtual device example [target config](https://cs.android.com/android/platform/superproject/+/android-latest-release:device/google/cuttlefish/vsoc_arm64_pgagnostic/phone/aosp_cf.mk;l=68).\n\n PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true\n PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384\n\n2. Setup product variable to display developer option in settings\n `PRODUCT_16K_DEVELOPER_OPTION := true`\n\n3. Set kernel path using `BOARD_KERNEL_PATH_16K`.\n This kernel should be built with `CONFIG_ARM64_16K_PAGES=y.`\n\n BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.\n\n4. Set modules config path variable `BOARD_KERNEL_MODULES_16K`. This variable\n points to kernel modules which support 16KB. Setting these parameters creates\n two OTAs on the system partition : `boot_ota_16k.zip`(to switch to 16 KB\n kernel) and `boot_ota_4k.zip`(to switch to 4 KB kernel). Enable incremental\n OTAs by setting `BOARD_16K_OTA_USE_INCREMENTAL := true` for smaller size boot\n OTAs.\n\n BOARD_KERNEL_MODULES_16K += $(wildcard kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/*.ko)\n BOARD_KERNEL_MODULES_16K += $(wildcard kernel/prebuilts/common-modules/virtual-device/mainline/$(TARGET_KERNEL_ARCH)/16k/*.ko)\n\n5. Set `BOARD_16K_OTA_MOVE_VENDOR := true` to move OTAs to the vendor partition.\n Only set this to move OTAs from system to vendor partition.\n\n### Verification\n\nAfter successfully configuring the toggle, follow these steps:\n\n1. Check if **Boot with 16 KB page size** toggle is visible in settings app.\n2. Check if `/system/boot_otas` or `/vendor/boot_otas` contains two OTA zip files : `boot_ota_16k.zip` and `boot_ota_4k.zip`.\n\nUse 16 KB toggle\n----------------\n\n1. Go to **Settings \\\u003e System \\\u003e Software updates** and apply any updates which are available.\n2. Enable developer options. For instructions, see [Configure on-device developer options](https://developer.android.com/studio/debug/dev-options).\n3. If the device is detected as OEM locked, a dialog displays asking you to OEM unlock the phone. For instructions, see [Lock and unlock the bootloader](/docs/core/architecture/bootloader/locking_unlocking).\n4. Click **Boot with 16 KB page size** . If `/data` and `/metadata`aren't ext4, a dialog displays asking you to wipe the device. Click **Erase all data** to wipe the device. The device is wiped and you must enable developer options again.\n5. Click **Boot with 16 KB page size**. A dialog displays asking you to switch to 16 KB, and on confirming, boot OTAs are applied. You can then toggle back and forth between 4 KB and 16 KB mode without clearing the data partition to test app behavior.\n\nCheck 16 KB Mode\n----------------\n\nFollow steps at [getting page size](/docs/core/architecture/16kb-page-size/getting-page-size)\nto verify page size."]]