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 モードを確認する
ページサイズを確認するには、ページサイズを取得するの手順を実施します。