Как исправить масштаб интерфейса, если 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
Ниже — пошагово от простого к надежному.
- 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. Минус: на некоторых оболочках всё равно сбрасывается.
- Root + Magisk — стойкое и удобное
- Установите Magisk и модуль для изменения DPI (например, DPI Changer или аналог).
- Задайте нужное значение в модуле — применяется при загрузке.
- Плюс: сохраняется между перезагрузками; минус: нужен root, есть риск блокировки OTA.
- Редактирование build.prop (root/TWRP)
- Откройте /system/build.prop, добавьте или измените строку: ro.sf.lcd_density=340
- Сохраните, установите правильные права и перезагрузите.
- Высокий риск при ошибке — нужен бэкап образа системы.
Сравнение методов изменения DPI
| Метод | Требования | Держится после reboot | Риск |
|---|---|---|---|
| ADB (wm density) | USB debugging | Частично/зависит от оболочки | Низкий |
| Magisk модуль | root + Magisk | Да | Средний |
| build.prop | root + TWRP | Да | Высокий |
| LSPosed/Xposed | root + 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.