When I first received my HTC One M8, I was in love with the 5-inch screen size, but the icons and font just seemed too big, wasting valuable screen real estate. Phablets, like the Samsung Galaxy Note 4, have only slightly larger screens, but don't seem to have this problem since manufacturers lowered the device's DPI, or dots per inch.
I want to keep my phone as stock as possible, but I also want to find a way to alter my screen's pixel density without needing root access (which tools like Window Manipulator require), and that's when I stumbled across Kyle Gruel's method, relying only on ADB commands to do the trick.
Warning
Keep in mind that altering your DPI may cause the Google Play Store to incorrectly label your device as incompatible when downloading apps. This is caused by developers limiting their app's compatibility based on a device's DPI value. So if for any reason you get an error, all you have to do is revert back to your original DPI and download the app again. Once you have the app installed, you can switch back to your custom DPI.
Step 1: Install ADB
This whole process relies on issuing ADB commands to your device, so if you don't have it installed on your computer, use one of the guides linked below to grab a copy. And if you haven't already, enable USB debugging from your Android's Developer options.
Step 2: Find Your Original DPI
Before going any further, you should check your original DPI in case you need to revert back later. Plug in your Android to your computer, open up Terminal (Mac) or a Command Prompt (Windows), then enter the following command (copy and paste works best here):
adb shell dumpsys display | grep mBaseDisplayInfo
The output will have a part that says "density," next to which is your original value. Write that number down somewhere safe.
Step 3: Change Your DPI
The DPI you choose depends only on your personal preference. Android devices ship with DPIs ranging from 120 up to 640, but know that as you decrease the value, the icons and font size decrease as well. Below you will find examples of various DPIs running on an HTC One M8, so use those as a guide.
Now, in your Terminal or Command Prompt window, enter the following command to change your DPI. (Make sure to swap out DPI with whatever resolution you choose.)
adb shell wm density DPI && adb reboot
Your device will reboot automatically, and once back up, your new DPI will be in effect. Which DPI works best for your Android device? Share your screenshots/device below! Also, make sure to follow Gadget Hacks on Facebook, Google+, and Twitter to keep up with future Android mods/tips.
Hot Deal: Set up a secure second phone number and keep your real contact details hidden with a yearly subscription to Hushed Private Phone Line for Android/iOS, 83%–91% off. It's a perfect second-line solution for making calls and sending texts related to work, dating, Craigslist sales, and other scenarios where you wouldn't want to give out your primary phone number.
57 Comments
plz help me.... it say wm not found on command prop
Are you using the latest version of adb?
Hey man, I have just one question, how the hell did you get your keyboard to adapt with your screen after changing the dpi ??
I use the Google Keyboard which can automatically adjust to many DPI settings.
For me it doesn't, I have a screen of 160 dpi, can you tell me what's the best for a screen this size without having that keyboard problem nor force closes in samsung apps ?? Thank you :)
If apps are crashing that means those apps need a higher DPI. You may need to raise it.
at last adb command..it shows an error
Error: bad number java.lang.NumberFormatException: Invalid int: "DPI"
Which device are you using?
It sounds like you left "DPI" in the second command instead of replacing it with the chosen DPI value.
I have a quick question, that is somewhat related to this post. I have a rooted HTC Desire 510, and I have UI Tuner, an app to change my screen resolution and DPI. After I change my resolution to anything above my default screen size, my screenshot no longer works. Any ideas as to how to fix this or why it is happening?
Does an error pop up or do the screenshots just not save?
This is f--kin awesome!!! THANK YOU SO MUCH!!! and yes I was yelling, hahaha
So I did this like 5 minutes ago.
You said a DPI BETWEEN 120 and 640 would be fine.
Well not with me.
I set it on 150 and now my Note 4 keeps coming up with the error "System UI has stopped" and I can't use my phone anymore.
I can only click on "OK" on the error message and it comes up with the error right after I clicked "OK" again.
Help please, I don't like a 600 dollar bricked phone.
Can it be fixed with a hard reset or won't that work?
With the phone on, you can use the same ADB commands to go back to the original DPI.
I did this just now on my Oneplus One and the outcome is AWESOME!!!! Thank You for this tutorial.
For devices that has 480 DPI, I would recommend tweaking it into between 380 - 420 for best look and performance, meaning your screen will look neatly condensed but you won't suffer any difficulty in reading the texts. I personally use 380 on mine and once again, it looks really cool now. Cheers.
Glad I could help!
I have a question though, regarding the app error issue, do I have to revert back to the original DPI before re-installing the app? or can I just stay on the custom DPI then delete & re-install the app?
You'd have to revert back to the original DPI before every install.
Hello! I tried using this method but when I enter any of these commands, I keep getting the following message in terminal: "-bash: adb: command not found."
Have you installed ADB on your computer already? If you haven't which OS are you using?
i get 2 errors
'grep' is not recognized as an internal or external command,
operable program or batch file.
/system/bin/sh: wm: not found
Do you have ADB installed properly?
Worked like magic.
Thanks for the tip.
changed my samsung s6 to 540.. now this is how a QHD display should look like.. magical....
i have a pipox8 which resolution is 1280x800,
and that make 2 bars on the left and right when projecting to a 1080p TV.
i need to change the resolution ( not dpi ) to 1280x720 so i can match the 720p instead. and use the whole tv screen.
can i do that with this method ?
You may want to check out this XDA thread.
on second thoughts, i found an issue though. my stock camera and keyboard app becomes shrinked (see attached), using 540 DPI (standard is 640). how do i fix this? samsung S6, lollipop 5.1.1
It looks like Samsung limited the supported DPIs for their stock apps. Right now only the original DPI will work with the stock camera. You can usethis modified camera to get it to scale properly.
I see. the mod needs a rooted phone though, and i haven't done it yet as it will void my warranty. I am currently using google camera and google keyboard to replace the stock ones anyway. Thank you for your kind response. Cheers :)
No worries. Glad I could help
how did you fix it?
Hi my phone has default dpi of 640. I changed it to 480 and it worked well and my screen is condensed very nicely. Except one problem, my keyboard pops up over the keypad in my dialer, which hasn't happened before. I thought it was swiftkey's problem so I uninstalled swiftkey but my stock keyboard pops up as well. Any fix?
That is a strange issue. Which Android are you using? And you could always dismiss your keyboard by pressing the down error on your navbar in the meantime.
so i have a meizu m2 note fhd screen (19201080) and i want to get more battery time. will make use of 1280720 make the trick?
Screen DPI will not have any effect on your battery. You may want to check out our other guide for tips on improving your battery life.
I just got an LG V10, which has a stock dpi of 640. Every dpi I've tried (600, 580, 540) causes the System UI to crash, causing me to reset it to default. Am I missing something here? What might be the system limitation?
From what I've read on other forums it looks like its a system UI limitation. If you are more worried about the launcher you can always switch to something like Nova.
Not sure if you're aware of this or not, but grep doesn't exist in Windows as it does in Linux/Unix/Mac... you may want to change that part of the tutorial above to mention that if you're running adb through CMD on Windows you won't be able to grep.
Grep is a part of the base Linux/Unix CLI tools, which makes its way over into Mac because OS X is based on Unix (with a Unix-like "terminal" built in). The easiest way for people to search through the output on Windows would be to dump the output into Notepad and then search for that string, or the more difficult alternative of installing PuTTY and then CYGWin to use an actual grep tool.
So how do i fix this? because im on windows and i got the msg: "'grep' is not recognized as an internal or external command, operable program or batch file."
I seemed to follow all your steps pretty good (for mac).
I installed the adb drivers with no hassle.
when i plug my phone in to my mac i dont get the Allow USB debugging RSA message. I have usb debugging enabled on the phone (6p)
Any help would be appreciated. Thank you in advance!
Will this affect the system files - and result in OAT failures??
That is a possibility, so make sure to return your DPI back to normal before applying an OTA
the change of the DPI will affect the warranty ?
No, but be sure to return it to the default value before taking it in for repairs.
this is great, I changed DPI settings on my Moto X Pure Edition from 640 to 480 and it's looking great, just one question, is there a way to add a new column of icons? I'm still having only a 4x4 grid and a lot of space between columns and rows, I don't know if I'm clear enough, I can add snapshots if needed
If you are using the Google Now Launcher it should automatically adjust the number of rows/columns. If you are using a third party launcher try looking in the settings menu to see if there is an option to adjust those values.
Use the Nova launcher, then you can adjust whatever you'd like.
These are just instructions for screen DPI. You can change the actual resolution with this command:
adb shell wm size 480x800
With 480x800 being the resolution you actually want, of course. You'll also have to then change the DPI accordingly.
In my experience, lowering the device resolution will actually speed it up a little, which can be very helpful on slow devices.
omfg thank you haha. thats all i had to do? that was easy. Now how do i change the dpi too. or does that matter? pros cons of not changing the dpi too?
cheers thanks!
all the icons and and other things like the drop down notification area are all quite large now though.. how do i scale everything down?
Thanks for this guide! It worked for me like a charm and now the buttons on my 8" tablet aren't too small to tap on anymore! For some reason the manufacturer had my 8" 1200 x 800 tablet set at 160dpi... Up'd it to 213dpi and it's perfect now!
Please share ADB command to update the "Refresh Rate". My device has weird 52.24 Hz which I believe is causing an app not to run. Am trying to change to either 50 Hz or 60 Hz. Screen resolution is 1280x720 at 320 dpi. Thanks!
Grep. For people on windows that copy pasted and got "not recognized as a command", this is the windows way.
adb shell dumpsys display | find "mBaseDisplayInfo"
Any idea what I sbould/could change it to to get pokemon go to work on my tablet? Not even sure it could be the fix for the error I am having but I am willing to try.
Thank you!
Thanks! It is so much better now. I used to have a Moto X 2014, and it was 5.2" big, so I moved to a Moto G4 that has 5.5" but I noticed that it showed the same amount of information and it didn't look like a big screen to me like the iPhone 6/6s/7 Plus do with the same screensize. So I changed mine to 400 dpi and it resembles the iPhone's resolution and I get much more information with a decent font size.
I downloaded the adb from here, and I think it is just easier for windows users.
Click baited. It's called DPI, not resolution.
To change resolution:
adb shell wm size 480x800
Share Your Thoughts