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

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

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

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

        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 два OTA-zip-файла: boot_ota_16k.zip и boot_ota_4k.zip .

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

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

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

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