Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Włącz przełącznik 16 KB
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Przełącznik 16 KB umożliwia wypróbowanie jądra 16 KB. Ten przełącznik umożliwia przełączanie się między jądrem 4 KB a 16 KB. Znajdziesz go w menu „Opcje programisty” w aplikacji Ustawienia. Przełącznik 16 KB może służyć do sprawdzania zgodności aplikacji z jądrem 16 KB, ale może nie odzwierciedlać wydajności rzeczywistego urządzenia 16 KB z powodu używania bloków pod-stron (w przypadku użycia EXT4 na partycjach /data
i /metadata
) w trybie 16 KB.
Konfigurowanie przełącznika
Upewnij się, że na urządzeniu zmienne są skonfigurowane tak, aby były niezależne od rozmiaru strony (aby działały z jądrami o rozmiarze strony 4 KB i 16 KB).
Przed dodaniem opcji dla programistów warto zainstalować jądro 16 KB, aby mieć pewność, że urządzenie działa w trybie 16 KB.
Zapoznaj się z przykładem konfiguracji docelowej na urządzeniu wirtualnym.
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
Skonfiguruj zmienną produktu, aby wyświetlić opcję dla deweloperów w ustawieniach
PRODUCT_16K_DEVELOPER_OPTION := true
Ustaw ścieżkę jądra za pomocą BOARD_KERNEL_PATH_16K
.
To jądro powinno być skompilowane za pomocą CONFIG_ARM64_16K_PAGES=y.
BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
Ustaw zmienną ścieżki konfiguracji modułów BOARD_KERNEL_MODULES_16K
. Ta zmienna wskazuje na moduły jądra, które obsługują 16 KB. Ustawienie tych parametrów powoduje utworzenie na partycji systemowej 2 aktualizacji OTA : boot_ota_16k.zip
(aby przełączyć się na jądro 16 KB) i boot_ota_4k.zip
(aby przełączyć się na jądro 4 KB). Aby włączyć przyrostowe aktualizacje OTA, ustaw wartość BOARD_16K_OTA_USE_INCREMENTAL := true
dla mniejszych aktualizacji.
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)
Ustaw BOARD_16K_OTA_MOVE_VENDOR := true
, aby przenieść OTA na partycję dostawcy.
Ustaw tę opcję tylko wtedy, gdy chcesz przenieść OTA z systemu do partycji dostawcy.
Weryfikacja
Po skonfigurowaniu przełącznika wykonaj te czynności:
- Sprawdź, czy przełącznik Uruchom z rozmiarem strony 16 KB jest widoczny w aplikacji Ustawienia.
- Sprawdź, czy plik
/system/boot_otas
lub /vendor/boot_otas
zawiera 2 zipowane pliki OTA : boot_ota_16k.zip
i boot_ota_4k.zip
.
Używanie przełącznika 16 KB
- Otwórz Ustawienia > System > Aktualizacje oprogramowania i zainstaluj dostępne aktualizacje.
- Włącz opcje programisty. Instrukcje znajdziesz w artykule Konfigurowanie opcji programisty na urządzeniu.
- Jeśli wykryto, że urządzenie jest zablokowane przez producenta, wyświetli się okno z prośbą o odblokowanie telefonu przez producenta. Instrukcje znajdziesz w artykule Blokowanie i odblokowywanie programu rozruchowego.
- Kliknij Uruchom z rozmiarem strony 16 KB. Jeśli
/data
i /metadata
nie są wersjami 4, wyświetli się okno z prośbą o wyczyszczenie urządzenia. Aby wyczyścić urządzenie, kliknij Usuń wszystkie dane. Dane na urządzeniu zostaną wyczyszczone, dlatego musisz ponownie włączyć opcje programisty.
- Kliknij Uruchom z rozmiarem strony 16 KB. Pojawi się okno z prośbą o przełączenie na 16 KB. Po potwierdzeniu zostaną zastosowane aktualizacje OTA rozruchu. Następnie możesz przełączać się między trybami 4 KB i 16 KB bez konieczności czyszczenia partycji danych, aby przetestować działanie aplikacji.
Sprawdź tryb 16 KB
Aby sprawdzić rozmiar strony, wykonaj czynności opisane w sekcji Pobieranie rozmiaru strony.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]