Droid10

Android DPI changer: change screen density with or without root

A DPI changer on Android does not change the panel — it changes the density value the system divides pixels by. Every method below writes to that same value; they differ only in how much access they need and how precise the number is.

Plan the change before you run it

Pick your phone, type the density you intend to set, and see the dp viewport it produces. Everything runs in your browser.

Native density
480 dpi
shipped value · xxhdpi
Native dp viewport
360 × 808
1080 × 2424 px panel
At 520 dpi
332 × 745 dp
content scale 108% of default

Safe band: 408–552 dpi — inside the safe ±15% band.

adb shell wm density 520
adb shell wm density reset    # undo
Densitydp viewportBucketvs nativeUI size
360480 × 1077xhdpi-120133%
400432 × 969xhdpi-80120%
420411 × 923xxhdpi-60114%
440392 × 881xxhdpi-40109%
480360 × 808xxhdpinative100%
520332 × 745xxhdpi+4092%
560308 × 692xxhdpi+8086%
600288 × 646xxxhdpi+12080%
640270 × 606xxxhdpi+16075%

What a DPI changer actually changes

Android converts every layout dimension from dp to px with px = dp × (dpi / 160). The dpi in that formula is a single integer stored in the system settings — not a hardware measurement. Increase it and each dp covers more pixels, so text and controls get smaller and the screen fits more content. Decrease it and everything grows. The physical resolution never changes, which is why a DPI change is sharper than a display-resolution change: you keep every pixel and just redistribute the layout.

The value you are overriding is usually a density bucket the manufacturer picked — most commonly 420 or 440 dpi on a 1080p phone whose panel is really closer to 400 ppi. See dpi vs ppi vs dp for why those three numbers disagree, and density buckets for how the system snaps them to drawable folders.

Method 1 — adb (no root, any integer)

This is the only method that needs no root, no extra app and accepts any value. Enable Developer options, turn on USB debugging, connect the cable and run:

adb shell wm density            # read the current value
adb shell wm density 520        # set a new one
adb shell wm density reset      # undo, back to device default

No cable? Android 11 and later support wireless debugging: Developer options → Wireless debugging → Pair device with pairing code, then adb pair host:port followed by adb connect host:port. The density commands are identical. The step-by-step version, including what to do when the UI becomes unusable, is in how to change Android DPI with adb.

Method 2 — Developer options display size (no root, coarse)

On Android 8 and later, Settings → System → Developer options → Smallest width and Settings → Display → Display size both move the same density override without a computer. Display size steps through four or five presets; Smallest width lets you type a dp value directly and is the better control if you want a specific result. Neither needs root and both are reset from the same screen. The catch is that display size presets are coarse — a 480 dpi phone typically lands on 400, 440, 480, 520 or 560, nothing in between.

Method 3 — root and build.prop (persistent)

With root you can change the shipped default instead of an override: edit ro.sf.lcd_density in /system/build.prop and reboot. This is the only method that makes the new density the device default, so wm density reset will no longer take you back to the old value. On a system-as-root device the file is on a read-only partition — remount it read-write or use a Magisk module rather than editing it in place. A wrong value here can leave the phone unable to finish booting, so keep a recovery option and a backup of the original file.

Method 4 — third-party “DPI changer” apps

The apps on the Play Store that advertise a DPI slider are not doing anything magical: the ones that work without root open a local adb connection (you pair them once over wireless debugging) and run the same wm density command. That means two things worth knowing before installing one: they need the same permission a computer would need, and they are a wrapper around a command you can run yourself. The convenience is a saved preset; the risk is an app holding an adb connection. If you only change density once or twice, Method 1 is strictly safer.

Choosing the value

Work from the native density, not from ppi. The rule of thumb that holds across Pixel, Galaxy, OnePlus and Xiaomi devices is ±15%: a 440 dpi phone is comfortable from about 375 to 505, a 480 dpi phone from about 410 to 550. Inside that band you get a denser or larger UI with no side effects. Outside it, three things happen in order: the launcher grid gains or loses a column, some apps switch to a tablet layout because their dp width crosses a breakpoint, and finally OEM system apps start clipping.

TargetTypical valueWhat changes
More contentnative + 40 to +60Smaller text, one more launcher column, wider dp viewport
Defaultas reportedWhatever the OEM shipped; already tuned for the panel
Larger UInative − 40 to −80Bigger touch targets, fewer items per screen
Accessibilitynative − 100 or lessRisk of clipping; prefer the system font-size setting instead

Use the planner above to see what your chosen density does to the dp viewport before you type the command — a Pixel 9 at 480 dpi exposes 360×808 dp, and the same phone at 600 dpi exposes 288×646 dp, which is narrow enough that some apps reflow.

Getting out of trouble

If the screen becomes unusable after a density change, the phone is not bricked: adb shell wm density reset works even when the UI is unreadable, as long as debugging was already authorised. If you lost adb access, boot into safe mode (hold volume-down during boot on most devices), which disables the override on some ROMs, or wipe data. Test any new value while the cable is still connected.

Frequently asked questions

How do I change DPI on Android without root?

Use adb from a computer: enable USB debugging (or wireless debugging on Android 11+), then run 'adb shell wm density 480' to set the density and 'adb shell wm density reset' to undo it. No root is required because wm density is served by the system's WindowManager service, which permits an override over adb. The same override can be adjusted with the Display size slider in Settings, which changes the same density value in coarse steps.

What is the difference between changing DPI and changing display size?

Both write to the same density override; only the granularity differs. The Display size slider in Settings walks through a short list of preset densities (roughly 400–560 dpi on a 480 dpi phone), while 'wm density' accepts any integer. Changing DPI at a fixed resolution is what people mean by a DPI changer — it rescales dp to pixels, so more (or fewer) pixels map onto the same physical millimetre.

What is a safe DPI value to set?

Stay within about 15% of the density your device reports by default. Read it with 'adb shell wm density'. A 480 dpi phone is comfortable between roughly 410 and 550; below 400 or above 600 some OEM system apps draw outside their bounds and the UI starts overlapping. If you need a big change, move in 40–60 dpi steps and check the launcher, camera and Settings after each one.

Will changing DPI break apps or the Play Store?

Apps do not see a different panel; they see a different density and viewport in dp. Layouts that hard-code pixel sizes can look wrong, and a very high density makes some apps report an unrealistically small screen width and switch to tablet layouts. The Play Store itself is sensitive to density changes and may show 'device not certified'. All of this is reversible with 'wm density reset'.

Does changing the DPI override survive a reboot?

The 'wm density' override survives a reboot: it is stored in settings and reapplied at boot. It does not survive a factory reset, and OTA updates generally keep it but occasionally clear it. Third-party apps that use 'adb over network' need to be reconnected after a reboot, and if you cannot reach adb, a factory reset is the only way back — which is why you should always test the value before unplugging.

Related tools