16KB 전환 버튼을 사용하면 16KB 커널을 사용해 볼 수 있습니다. 이 전환 버튼은 4KB 커널과 16KB 커널 간에 전환하며 설정 앱의 '개발자 옵션' 메뉴에서 찾을 수 있습니다. 16KB 전환 버튼은 애플리케이션과 16KB 커널의 호환성을 확인하는 데 사용할 수 있지만, 16KB 모드에서 하위 페이지 블록(/data
및 /metadata
파티션에 EXT4를 사용하는 경우)이 사용되므로 실제 16KB 기기의 성능을 반영하지 않을 수 있습니다.
전환 버튼 구성 단계
기기가 4KB 및 16KB 페이지 크기 커널 모두에서 작동하도록 페이지에 구애받지 않는 방식으로 변수를 설정했는지 확인합니다. 개발자 옵션을 계속 추가하기 전에 16k 커널을 직접 설치하여 기기가 16KB 모드에서 직접 작동하는지 확인하는 것이 좋습니다. 가상 기기 예시 타겟 구성을 참고하세요.
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
를 설정합니다. 선택사항이며 대부분의 기기에서는 이 값을 설정하면 안 됩니다.
인증
설정 완료 후
- 설정 앱에 16KB 전환 버튼이 '16KB 페이지 크기로 부팅'으로 표시됩니다.
/system/boot_otas
또는/vendor/boot_otas
에는 두 개의 OTA ZIP 파일(boot_ota_16k.zip
및boot_ota_4k.zip
)이 포함되어 있습니다.
16KB 전환 사용
- 개발자 옵션 문서에 설명된 대로 개발자 옵션을 사용 설정합니다.
- 기기가 OEM 잠금으로 감지되면 사용자에게 휴대전화를 OEM 잠금 해제하도록 요청하는 대화상자가 표시됩니다. OEM 잠금 해제 단계를 따릅니다.
- 사용자가 '16KB 페이지 크기로 부팅'에 도달하면
/data
및/metadata
파티션이 ext4여야 합니다. 설정되어 있지 않으면 사용자에게 기기를 초기화하도록 요청하는 대화상자가 표시됩니다. '예'라고 답하면 기기가 초기화되며 개발자 옵션을 다시 활성화해야 합니다. - 이제 16KB 전환 버튼에 16KB로 전환하는 확인 대화상자가 표시되며 확인하면 부팅 OTA가 적용됩니다. 그런 다음 데이터 파티션을 지우지 않고도 4KB 모드와 16KB 모드 간에 전환하여 앱 동작을 테스트할 수 있습니다.
16KB 모드 확인
페이지 크기 가져오기의 단계에 따라 페이지 크기를 확인합니다.