Включить переключатель 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 в раздел производителя. Устанавливайте этот параметр только для перемещения обновлений 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-загрузчика. Инструкции см. в разделе «Блокировка и разблокировка загрузчика» . Если аппаратная часть устройства полностью поддерживает 16 КБ памяти, разблокировка OEM-загрузчика может не потребоваться, и этот шаг можно пропустить.

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

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

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