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

Переключатель "16 КБ" позволяет попробовать ядро размером 16 КБ. Этот переключатель позволяет выбрать ядро с размером страницы 4 КБ или 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 в раздел поставщика. Установите это значение, только чтобы переместить OTA из системного раздела в раздел поставщика.

Проверка

После настройки переключателя выполните следующие действия:

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

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

  1. Откройте Настройки > Система > Обновление ПО и установите все доступные обновления.
  2. Включите параметры для разработчиков. Инструкции приведены в разделе Как настроить параметры для разработчиков на устройстве.
  3. Если устройство заблокировано производителем, появится диалоговое окно с предложением разблокировать его. Подробнее о том, как заблокировать и разблокировать загрузчик операционной системы… Если аппаратное обеспечение устройства полностью поддерживает размер страниц 16 КБ, разблокировка загрузчика может не потребоваться и вы можете пропустить этот шаг.

  4. Нажмите Загрузка с размером страницы 16 КБ. Если /data и /metadata не используют файловую систему ext4, появится диалоговое окно с предложением стереть данные с устройства. Нажмите Удалить все данные с устройства и обновить, чтобы очистить устройство и применить обновления по беспроводной сети. Устройство будет сброшено до заводских настроек и загрузится в режиме 16 КБ. Снова включите параметры для разработчиков. После этого вы сможете переключаться между режимами 4 КБ и 16 КБ без очистки раздела данных, чтобы проверить работу приложения.

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

Чтобы проверить размер страницы, выполните инструкции в разделе Как узнать размер страницы.