Включить переключатель 16 КБ

Переключатель 16 КБ позволяет вам попробовать ядро ​​размером 16 КБ. Этот переключатель переключает между ядром размером 4 КБ и ядром 16 КБ. Его можно найти в меню «Параметры разработчика» в приложении настроек. Переключатель 16 КБ можно использовать для проверки совместимости приложения с ядром 16 КБ, но он может не отражать производительность фактического устройства 16 КБ из-за использования блоков подстраниц (при использовании EXT4 для разделов /data и /metadata ) размером 16 КБ. режим.

Шаги по настройке переключателя

  1. Убедитесь, что на устройстве настроены переменные, независимые от страницы (для работы с ядрами размером страницы как 4 КБ, так и 16 КБ). Возможно, вы захотите установить ядро ​​16 КБ напрямую, чтобы убедиться, что устройство работает в режиме 16 КБ, прежде чем продолжать добавлять опцию разработчика. См. пример целевой конфигурации виртуального устройства.

        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 . Это указывает на модули ядра, поддерживающие 16 КБ. Установка этих параметров приведет к созданию двух OTA в системном разделе — boot_ota_16k.zip (для переключения на ядро ​​16 КБ) и boot_ota_4k.zip (для переключения на ядро ​​4 КБ). Включите дополнительные 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)
    
  5. Установите BOARD_16K_OTA_MOVE_VENDOR := true чтобы переместить OTA в раздел поставщика. Необязательно, и на большинстве устройств это не следует устанавливать.

Проверка

После успешной настройки

  1. Переключатель 16 КБ виден в приложении настроек с надписью «Загрузка с размером страницы 16 КБ».
  2. /system/boot_otas или /vendor/boot_otas содержит два zip-файла OTA — boot_ota_16k.zip и boot_ota_4k.zip .

Использовать переключатель размером 16 КБ

  1. Включите параметры разработчика, как указано в документации по параметрам разработчика .
  2. Если устройство обнаружено как заблокированное OEM, отображается диалоговое окно с просьбой к пользователю разблокировать телефон OEM. Следуйте инструкциям по разблокировке OEM .
  3. Когда пользователь нажимает «Загрузка с размером страницы 16 КБ», разделы /data и /metadata должны быть ext4. Если это не так, отображается диалоговое окно с просьбой к пользователю стереть данные с устройства. Ответ «Да» приведет к стиранию устройства, и вам придется снова активировать параметры разработчика.
  4. Переключение 16 КБ теперь отображает диалоговое окно подтверждения для переключения на 16 КБ, и при подтверждении применяются загрузочные OTA. Затем вы можете переключаться между режимами 4 КБ и 16 КБ, не очищая раздел данных, чтобы проверить поведение приложения.

Проверьте режим 16 КБ

Следуйте инструкциям по получению размера страницы , чтобы проверить размер страницы.