啟用 16 KB 的切換鈕

16 KB 切換按鈕可讓您試用 16 KB 的核心。這個切換鈕可在 4 KB 核心和 16 KB 核心之間切換,並可在設定應用程式中的「開發人員選項」選單中找到。16 KB 切換鈕可用於檢查應用程式與 16 KB 核心的相容性,但由於在 16 KB 模式中使用子頁面區塊 (使用 EXT4 的 /data/metadata 分區),因此可能無法反映實際的 16 KB 裝置效能。

切換設定的步驟

  1. 請確認裝置已將變數設為不依頁面而異 (可同時搭配 4 KB 和 16 KB 頁面大小的核心)。建議您直接安裝 16k 核心,確保裝置可在 16 KB 模式下運作,然後再繼續新增開發人員選項。請參閱虛擬裝置範例的目標設定

        PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := true
        PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 16384
    
  2. 在「PRODUCT_16K_DEVELOPER_OPTION := true」中設定產品變數以顯示開發人員選項

  3. 使用 BOARD_KERNEL_PATH_16K 設定核心路徑。這個核心應使用 CONFIG_ARM64_16K_PAGES=y. 建構

      BOARD_KERNEL_PATH_16K := kernel/prebuilts/mainline/$(TARGET_KERNEL_ARCH)/16k/kernel-mainline.
    
  4. 設定模組設定路徑 BOARD_KERNEL_MODULES_16K。這會指向支援 16KB 的核心模組。設定這些參數後,系統分區會建立兩個 OTA:boot_ota_16k.zip(切換至 16 KB 核心) 和 boot_ota_4k.zip(切換至 4 KB 核心)。為較小體積的 OTA 啟動 OTA 增量功能,方法是設定 BOARD_16K_OTA_USE_INCREMENTAL := true

      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)
    
  5. 設定 BOARD_16K_OTA_MOVE_VENDOR := true 可將 OTA 移至供應商分區。選用,大多數裝置不應設定此值。

驗證

設定完成後

  1. 在「設定」應用程式中,您會看到「Boot with 16 KB page size」(以 16 KB 頁面大小啟動) 旁的 16 KB 切換按鈕。
  2. /system/boot_otas/vendor/boot_otas 包含兩個 OTA ZIP 檔案 - boot_ota_16k.zipboot_ota_4k.zip

使用 16 KB 切換鈕

  1. 按照開發人員選項說明文件的說明啟用開發人員選項。
  2. 如果系統偵測到裝置已鎖定 OEM,系統會顯示對話方塊,要求使用者解鎖手機。按照原始設備製造商 (OEM) 解鎖的步驟操作。
  3. 當使用者按一下「以 16 KB 頁面大小啟動」,/data/metadata 分區必須是 ext4。如果不是,系統會顯示對話方塊,要求使用者清除裝置。如果回答「是」,系統會抹除裝置資料,屆時您必須再次啟用開發人員選項。
  4. 16 KB 切換按鈕現在會顯示切換至 16 KB 的確認對話方塊,並在確認後套用啟動 OTA。這樣一來,您就可以在 4 KB 和 16 KB 模式之間來回切換,而不必清除資料分區來測試應用程式行為。

檢查 16 KB 模式

請按照「取得頁面大小」一節中的步驟驗證頁面大小。