Как исправить масштаб интерфейса, если DPI не меняется на Android

DPI не меняется из‑за ограничений производителя, защиты ADB/SELinux или отсутствия root; быстрое решение — временно сменить density через ADB, постоянное — через root (Magisk/build.prop) или настроить масштаб через системные параметры и лаунчер.

Перед изменением DPI обязательно сделайте бэкап данных. Неправильные значения могут привести к нечитаемому интерфейсу или bootloop.

Оглавление {{TOC_AUTOMATIC}}

Почему DPI не меняется

DPI (density) контролирует, как ОС переводит физические пиксели в dp. На многих устройствах производитель/оболочка намеренно блокирует изменение: это предотвращает разрывы интерфейса и баги в приложениях. Дополнительные причины:

  • Ограничения оболочек (MIUI, One UI): системные слои перезаписывают значения.
  • Защита ADB/SELinux и политика Google в новых версиях Android: изменения легче откатить.
  • Отсутствие root: команды wm density временные и сбрасываются после перезагрузки, если не применить принудительное сохранение в настройках.
  • Сторонние лаунчеры и приложения могут имитировать масштаб, не меняя системный DPI.

Практические способы изменить DPI

Ниже — пошагово от простого к надежному.

  1. ADB (без root) — временно, работает на большинстве устройств
  • Включите Developer options: Настройки → О телефоне → тапните 7 раз по Номеру сборки.
  • В Developer options включите USB debugging.
  • На ПК установите platform-tools, подключите устройство и в терминале выполните: adb shell wm density 320 adb shell wm size 1080x1920 # опционально adb reboot
  • Если значение откатывается, можно попробовать: adb shell settings put global display_density_forced 320
  • Плюс: не требует root. Минус: на некоторых оболочках всё равно сбрасывается.
  1. Root + Magisk — стойкое и удобное
  • Установите Magisk и модуль для изменения DPI (например, DPI Changer или аналог).
  • Задайте нужное значение в модуле — применяется при загрузке.
  • Плюс: сохраняется между перезагрузками; минус: нужен root, есть риск блокировки OTA.
  1. Редактирование build.prop (root/TWRP)
  • Откройте /system/build.prop, добавьте или измените строку: ro.sf.lcd_density=340
  • Сохраните, установите правильные права и перезагрузите.
  • Высокий риск при ошибке — нужен бэкап образа системы.

Сравнение методов изменения DPI

МетодТребованияДержится после rebootРиск
ADB (wm density)USB debuggingЧастично/зависит от оболочкиНизкий
Magisk модульroot + MagiskДаСредний
build.proproot + TWRPДаВысокий
LSPosed/Xposedroot + frameworkДаСредний

Для игр включите в Developer options Force activities to be resizable и Force desktop mode — многие игры корректно масштабируются.

Альтернативы: масштаб без смены DPI

Если системный DPI не меняется, используйте эти безопасные варианты:

  • Настройки → Дисплей → Размер шрифта / Размер интерфейса (Display size) — системный слайдер изменяет визуальный масштаб без правки DPI.
  • Developer options → Smallest width (Минимальная ширина) — установка 360–420dp даст эффект планшетного/компактного интерфейса.
  • Лаунчеры: Nova, Lawnchair и др. позволяют менять размер иконок и сетки.
  • Per-app инструменты: некоторые приложения (с root или ADB) позволяют менять DPI для конкретного приложения.

Частые ошибки

  • Ставят слишком низкий DPI (например <200) — элементы становятся крошечными и нечитаемыми.
  • Не делают бэкап перед правкой build.prop — при ошибке восстановить систему сложно.
  • Ожидают, что лаунчер изменит системный DPI — он меняет только внешний вид иконок.
  • Меняют лишь wm size — это не всегда корректно влияет на плотность и может растянуть UI.

FAQ

  • Можно ли вернуть стандартный DPI? adb shell wm density reset или удалить/откатить изменения в Magisk/build.prop.

  • Нужен ли root для постоянного эффекта? Да — для стабильного изменения между перезагрузками обычно нужен root (Magisk или правка build.prop).

  • Какие значения безопасны? Для телефонов обычно 320–420 DPI; для планшетов — 160–280. Меняйте по шагам и проверяйте интерфейс.

  • Что делать, если интерфейс сломался после правки? Попробуйте adb reboot, если не помогает — восстановите бэкап через TWRP или выполните factory reset (последнее — крайняя мера).

Если нужно, подготовлю пошаговую инструкцию под конкретную модель (Samsung / Xiaomi / Pixel) с командами и типичными значениями DPI.