16 KB 切換鈕可讓您試用 16 KB 核心。這個切換鈕可在 4 KB 核心和 16 KB 核心之間切換,並位於設定應用程式的「開發人員選項」選單中。16 KB 切換鈕可用於檢查應用程式與 16 KB 核心的相容性,但由於在 16 KB 模式下使用子頁面區塊 (使用 EXT4 的 /data
和 /metadata
分區),因此可能無法反映實際 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
。這個變數會指向支援 16KB 的核心模組。設定這些參數會在系統分區上建立兩個 OTA:boot_ota_16k.zip
(切換至 16 KB 核心) 和boot_ota_4k.zip
(切換至 4 KB 核心)。為較小大小的啟動 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)
設定
BOARD_16K_OTA_MOVE_VENDOR := true
以將 OTA 移至供應商分區。請只將此值設為將 OTA 從系統移至供應商分區。
驗證
成功設定切換鈕後,請按照下列步驟操作:
- 檢查設定應用程式中是否顯示「以 16 KB 頁面大小啟動」切換鈕。
- 檢查
/system/boot_otas
或/vendor/boot_otas
是否包含兩個 OTA ZIP 檔案:boot_ota_16k.zip
和boot_ota_4k.zip
。
使用 16 KB 切換鈕
- 依序前往「設定」>「系統」>「軟體更新」,然後套用任何可用的更新。
- 啟用開發人員選項。如需操作說明,請參閱「設定裝置端開發人員選項」。
- 如果系統偵測到裝置已鎖定 OEM,系統會顯示對話方塊,要求您解鎖手機。如需操作說明,請參閱「鎖定及解除鎖定系統啟動載入程式」。
- 按一下「Boot with 16 KB page size」。如果
/data
和/metadata
不是 ext4,系統會顯示對話方塊,要求您清除裝置。按一下「清除所有資料」即可清除裝置資料。裝置會遭到清除,您必須再次啟用開發人員選項。 - 按一下「Boot with 16 KB page size」。系統會顯示對話方塊,要求您切換至 16 KB,並在確認後套用啟動 OTA。接著,您就可以在 4 KB 和 16 KB 模式之間來回切換,無須清除資料分區即可測試應用程式行為。
檢查 16 KB 模式
請按照「取得頁面大小」一節中的步驟驗證頁面大小。