2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
16KB 전환 사용 설정
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
16KB 전환 버튼을 사용하면 16KB 커널을 사용해 볼 수 있습니다. 이 전환 버튼은 4KB 커널과 16KB 커널 간에 전환하며 설정 앱의 '개발자 옵션' 메뉴에서 찾을 수 있습니다. 16KB 전환 버튼은 16KB 커널과의 애플리케이션 호환성을 확인하는 데 사용할 수 있지만 16KB 모드에서 하위 페이지 블록(/data
및 /metadata
파티션에 EXT4 사용 시)이 사용되므로 실제 16KB 기기의 성능을 반영하지 않을 수 있습니다.
전환 버튼 구성 단계
기기에서 4KB 및 16KB 페이지 크기 커널 모두와 호환되도록 페이지 크기에 구애되지 않는 변수를 설정했는지 확인합니다.
개발자 옵션을 계속 추가하기 전에 기기가 16KB 모드에서 직접 작동하는지 확인하기 위해 16K 커널을 직접 설치하는 것이 좋습니다.
가상 기기 예시 타겟 구성을 참고하세요.
PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
설정에서 개발자 옵션을 표시하도록 제품 변수 설정
PRODUCT_16K_DEVELOPER_OPTION := true
BOARD_KERNEL_PATH_16K
를 사용하여 커널 경로를 설정합니다.
이 커널은 CONFIG_ARM64_16K_PAGES=y.
로 빌드해야 합니다.
BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
모듈 구성 경로 변수 BOARD_KERNEL_MODULES_16K
를 설정합니다. 이 변수는 16KB를 지원하는 커널 모듈을 가리킵니다. 이 매개변수를 설정하면 시스템 파티션에 boot_ota_16k.zip
(16KB 커널로 전환) 및 boot_ota_4k.zip
(4KB 커널로 전환)라는 두 가지 OTA가 생성됩니다. 더 작은 크기의 부팅 OTA에 BOARD_16K_OTA_USE_INCREMENTAL := true
를 설정하여 증분 OTA를 사용 설정합니다.
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)
OTA를 공급업체 파티션으로 이동하도록 BOARD_16K_OTA_MOVE_VENDOR := true
를 설정합니다.
OTA를 시스템에서 공급업체 파티션으로 이동하는 경우에만 설정하세요.
인증
전환 버튼을 구성한 후 다음 단계를 따르세요.
- 설정 앱에 16KB 페이지 크기로 부팅 전환 버튼이 표시되는지 확인합니다.
/system/boot_otas
또는 /vendor/boot_otas
에 OTA ZIP 파일 boot_ota_16k.zip
및 boot_ota_4k.zip
이 두 개 포함되어 있는지 확인합니다.
16KB 전환 사용
- 설정 > 시스템 > 소프트웨어 업데이트로 이동하여 사용 가능한 업데이트를 적용합니다.
- 개발자 옵션을 사용 설정합니다. 자세한 내용은 온디바이스 개발자 옵션 구성을 참고하세요.
- 기기가 OEM 잠금으로 감지되면 휴대전화를 OEM 잠금 해제하라는 대화상자가 표시됩니다. 자세한 내용은 부트로더 잠금 및 잠금 해제를 참고하세요.
- 16KB 페이지 크기로 부팅을 클릭합니다.
/data
및 /metadata
가 ext4가 아닌 경우 기기를 삭제하라는 대화상자가 표시됩니다. 모든 데이터 삭제를 클릭하여 기기를 초기화합니다. 기기가 초기화되며 개발자 옵션을 다시 사용 설정해야 합니다.
- 16KB 페이지 크기로 부팅을 클릭합니다. 16KB로 전환하라는 대화상자가 표시되고 확인하면 부팅 OTA가 적용됩니다. 그런 다음 데이터 파티션을 지우지 않고도 4KB 모드와 16KB 모드 간에 전환하여 앱 동작을 테스트할 수 있습니다.
16KB 모드 확인
페이지 크기 가져오기의 단계에 따라 페이지 크기를 확인합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 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."]]