2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
16 KB の切り替えを有効にする
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
16 KB の切り替えを使用して、16 KB カーネルを試すことができます。4 KB カーネルと 16 KB カーネルを切り替えるこのスイッチは、設定アプリの [開発者向けオプション] メニュー内にあります。16 KB の切り替えは、アプリケーションの 16 KB カーネルとの互換性チェックに使用できますが、16 KB モードではサブページ ブロックが使用されるため(/data
および /metadata
パーティションに EXT4 を使用している場合)、実際の 16 KB デバイスのパフォーマンスが反映されない場合があります。
切り替えの設定手順
デバイスで、ページに依存しないように(4 KB と 16 KB のページサイズ カーネルの両方で動作するように)変数を設定していることを確認します。16K カーネルを直接インストールしてデバイスが 16 KB モードで動作することを確認してから、開発者向けオプションの追加を続行することをおすすめします。仮想デバイスのターゲット構成の例をご覧ください。
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
を設定します。これは 16 KB をサポートするカーネル モジュールを指しています。これらのパラメータを設定すると、boot_ota_16k.zip
(16 KB カーネルへの切り替え用)と boot_ota_4k.zip
(4 KB カーネルへの切り替え用)の 2 つの 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
を設定します。これは任意であり、ほとんどのデバイスでは設定すべきではありません。
検証
以上の内容を正常に設定すると、次のようになります。
- 16 KB の切り替えは、[16 KB ページサイズで起動] として設定アプリに表示されます。
/system/boot_otas
または /vendor/boot_otas
には、boot_ota_16k.zip
と boot_ota_4k.zip
という 2 つの OTA ZIP ファイルが含まれています。
16 KB の切り替えを使用する
- 開発者向けオプションのドキュメントの手順に沿って開発者向けオプションを有効にします。
- デバイスが OEM ロックされていることが検出された場合は、スマートフォンの OEM ロック解除を求めるダイアログが表示されます。OEM のロック解除の手順を実施します。
- ユーザーが [16 KB ページサイズで起動] をタップした場合は、
/data
および /metadata
パーティションが ext4 であることが必要です。そうでない場合、ユーザーにデバイスのワイプを求めるダイアログが表示されます。[Yes] と回答すると、デバイスがワイプされるため、開発者向けオプションを再度有効にする必要があります。
- 16 KB の切り替えでは、16 KB に切り替える確認ダイアログが表示され、確認するとブート OTA が適用されます。これにより、データ パーティションを作成することなく、4 KB モードと 16 KB モードの間で切り替えてアプリの動作をテストできます。
16 KB モードを確認する
ページサイズを確認するには、ページサイズを取得するの手順を実施します。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 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-03-26 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."]]