Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,784,212 Members 42,627 Now Online
XDA Developers Android and Mobile Development Forum

[Guide] Ultimate Nexus 4 Root Guide

Tip us?
 
Jubakuba
Old
(Last edited by Jubakuba; 10th July 2014 at 04:54 PM.)
#1  
Jubakuba's Avatar
Senior Member - OP
Thanks Meter 5,052
Posts: 2,319
Join Date: Oct 2010
Location: Pueblo, Colorado

 
DONATE TO ME
Default [Guide] Ultimate Nexus 4 Root Guide

Post One: Unlocking and Rooting
Post Two: Installing Roms / Kernels / Tweaks
Post Three: Panic Section / FAQ / Miscellaneous


Unlocking The Bootloader And Obtaining Root
*This part of the tutorial is geared towards Windows users. The MAC instructions are very similar, from what I understand. Install the package the same way. All ADB/Fastboot commands may need to start with "adb-mac" (no quotes) rather than "adb" (no quotes). Due to the vast amount of Linux distros available; instructions will vary for your device. Once ADB/Fastboot are set up all command will begin with "./adb" (no quotes) rather than "adb" (no quotes). Once ADB/Fastboot are set up; this guide is relevant to everyone.*

Time required:
20-40 minutes.

Setting up ADB for our device:
Download the AndroidSDK onto your computer.
Note: Google changes their mind every other week as to if this will be distributed as a .zip or an .exe. If you get an .zip file, simply extract the contents to your C:\ drive. For an .exe install it like you would any other program, but set the path directly to the C:\ drive when the installer asks.

Or...you can use this page to download the "ADB for Dummies AIO App."
This will automatically install ADB for you to your C:\ directory. It's very very simple this way.

If your platform-tools folder doesn't have a fastboot.exe, place this fastboot.exe file in your C:\android-sdk-windows\platform-tools (or possibly simply called tools, if you set up ADB ages ago) folder.

Now you have ADB installed! Congratulations.

Unlocking the Bootloader:
***NOTE***
This will perform a factory reset on your device. You will lose all applications. Even the data on your SD Card! I'd recommend making a Backup to your computer BEFORE performing this. There is a method for backing your data up, detailed HERE.
For the time being, there is a method available that will allow you to unlock your device (and root it) without losing your data.
For instructions, click HERE. Please note: this is a hack and isn't the "conventional" and "accepted" way of unlocking your bootloader on a nexus device. The wipe requirement is there for your safety, really, and I'm certain this will be patched in the upcoming releases.


Get the drivers:
Uninstall any previously attempted drivers if they don't work and move to the next.
Option One:
Navigate to the "Device Manager" (Control Panel > Device Manager) in Windows and Select the android device. Open the properties and select the "Install Driver" option. Pick the driver with "Install from disk." Ignore any warnings about the driver not being signed properly.
PDAnet's drivers may work if the above options don't. Simply install PDAnet (after uninstalling any previous attempted driver installations) to get the drivers.
While that is downloading, on your Nexus 4: turn USB debugging on.
To do so; you must first go to Settings>About>Build Number and click seven times.
The actual setting can then be found in Settings>Developer Options>USB Debugging
Once the drivers are installed, navigate to the C:\android-sdk-windows\platform-tools folder on your computer.
Hold shift and right click. Select "Open Command Window Here."
Plug your phone into the computer. Now in this command window type:
Code:
adb reboot bootloader
(Hit Enter)
Your phone should now boot into a screen with a green android with his chest exposed.
Type this:
Code:
fastboot oem unlock
(Hit Enter)
If your Command Prompt displays the message "waiting for device" your driver wasn't successfully installed.
Close the Command Prompt window and open Device manager while your phone is still plugged in. (Search for it using the search option).

Right Click the "Android" option and select Update Driver. Choose to "Browse My Computer" and "Let Me Pick From A List." Pick the Driver with the newest date and install it. Now retry the code above.
Your phone will ask if you want to unlock it. Select "Yes" by using the volume keys and use power to select it.
Now, navigate to "Recovery Mode" with the volume keys. Use power to select.
A screen with another Android will pop up. Press Volume Up and Power at the same time.
Select Factory Reset. This process may take a few minutes. Be patient and let it work.
Once finished, select "Reboot."
Your phone is now unlocked!

Obtaining Root Access and Custom Recovery:
Turn on USB Debugging.
To do so; you must first go to Settings>About>Build Number and click seven times.
The actual setting can then be found in Settings>Developer Options>USB Debugging
Download the following:
SuperSU (CWM .zip)
CWM (Pick the version for your device)

Place the recovery-clockwork-VERSIONNUMBER-mako.img file into your C:\android-sdk-windows\platform-tools folder.
Put the SuperSU.zip on your phone.
Open another Command Prompt if it isn't still open. (Navigate to C:\android-sdk-windows\platform-tools and shift + right click. Select "Open Command Window Here.")
With your phone plugged in type:
Code:
adb reboot bootloader
(Hit Enter)
And wait for your phone to boot into the android again.

Now type:
Code:
fastboot flash recovery IMAGENAME.img
(Change the file name to the correct file name and Hit Enter)

Once that is finished: select the "Recovery Mode" option again on your phone.
You should get a new recovery menu here. Select "install zip from sd card" and "choose zip from sd card."
Find the SuperSU.zip that you transferred earlier and select "Yes" to installing.
Navigate back to "Reboot" and reboot your phone.
You're now rooted!
However, ClockworkMod Recovery won't continue to load after this.
To fix this, find "Rom Manager" from the market. (The free version is fine.) Use the "Flash ClockworkMod Recovery" option.
If your recovery still doesn't stick around after a reboot, you have another couple options. Find a file explorer that allows root access, such as Root Explorer. Use this program to rename /system/etc/install-recovery.sh to /system/etc/install-recovery.bak. You'll need to mount the system as r/w to do this. Root Explorer provides a button at the top to do so.
Or, you can do this completely manually by firing up ADB again and running a few commands:

Code:
adb shell
(Hit Enter)
Code:
su
(Hit Enter)
Code:
mount -o remount,rw -t ext4 /dev/block/mmcblk0p1 /system
(Hit Enter)
Code:
mv /system/etc/install-recovery.sh /system/etc/install-recovery.bak
(Hit Enter)

Congratulations!
Your phone is now unlocked, rooted, and has a custom recovery!
Continue reading the next posts for info on getting custom roms, kernels, tweaks, and more!

***I take no responsibility for what happens to your phone due to following this guide! That being said, not only am I sure you'll be fine...but there are an endless amount of users who would be glad to help if you need it.***

Thanks:
Google, for making Android a reality.
VanillaTbone, for the ADB AIO app.

Efrant, for posting about a bootloader locking utility without USB.
ClockworkMod team, for being a part of making our phones as awesome as they are.
The assorted developers, who continue to push out amazing material for us to use.
The awesome community, for endlessly supporting both Android itself and its users.
The Following 204 Users Say Thank You to Jubakuba For This Useful Post: [ Click to Expand ]
 
Jubakuba
Old
(Last edited by Jubakuba; 28th November 2012 at 11:29 AM.)
#2  
Jubakuba's Avatar
Senior Member - OP
Thanks Meter 5,052
Posts: 2,319
Join Date: Oct 2010
Location: Pueblo, Colorado

 
DONATE TO ME
Installing Custom Roms Kernels and Tweaks
All of the instructions below require your bootloader to be unlocked. Please follow the guide above and return here when you're done.

Backing Your Files Up:
Time required:
15-25 minutes.

Making a Nandroid
The first thing you're going to want to do is back up your phone's entire system. This is done by making a "nandroid."
To do this, boot into ClockworkMod Recovery. To accomplish this: Turn your phone off. Once it is completely off: hold both volume buttons and the power button until the Android with his chest exposed is displayed. Navigate to the "Recovery Mode" option and select "backup."
This will take some time. Be patient and let it finish. This process is important! You should always have a recent nandroid available on your device.

Backing Your Data Up
Install Titanium Backup from the market.
Open Titanium Backup. A Superuser request should pop up. Allow it. Note: if Titanium Backup then says it failed to obtain root access; press the menu button and select more>reload application.
Press menu>batch. Select "Backup all User Apps." Select all and "Run the Batch Operation."
Let the process complete. This may take quite some time: depending on how many applications you have installed.

You can now backup your Text Messages, Bookmarks, and WiFi addresses with Titanium Backup as well.
Press Menu>Backup Data To XML to do so.

Backing Your Contacts Up
Note: This process may or not be useful to you. The Google servers should automatically import any contacts you have stored back whenever you install a new rom. Also note that Facebook/Google+/etc contacts will need to be synced again through their respective applications.
Open the Contacts application.
Press the Menu button.
Select import/export.
Export to storage.

Installing A Rom (Or Kernel/Radios/Tweaks/Themes/etc.)
Time Required:
5-10 minutes.

Note:
Follow the guide above about backing your phone up before attempting!
This guide will also work for flashing kernels/radios/themes/tweaks/etc. Simply ignore the part about wiping data and wipe whatever the thread says you should. You only need to restore data after a rom install.

Find a Rom You'd Like To Try:
Nexus 4 Original Development
Nexus 4 Development

Download the rom you'd like to try on your device.
Most roms also require you to install "gapps" as well.
You can find the correct ones for the rom you're using in the rom thread.
Make sure the Rom and Gapps are on your SD card.
Now, open Google Wallet (if you have it installed) and press Options>Settings>Reset Google Wallet. This will prevent the "Secure Element" errors some users have experienced.
Boot into ClockworkMod Recovery by turning your device completely off. Hold volume up, volume down, and power until the green Android with the open chest is displayed. Navigate to "Recovery Mode" with the volume buttons and select using the power button.
Remember to have a recent nandroid before continuing!
Navigate to "wipe data/factory reset" and select it. Select "yes."
Wait for the process to complete. This may take some time. Be patient!
Once complete: Navigate to "Install Zip from SD card" and "Choose zip from SD card."
Find the rom's .zip and install it. Once that completes install any applicable gapps' .zip.
Select the "Reboot" option.
Congratulations! Your phone should now boot into the custom rom!
Follow the prompts to re-activate your phone.

Restoring Your Applications / Contacts / Nandroid
Time Required:
5-15 minutes.

Restoring Your Applicaions
Install Titanium Backup. Note: you may want the pro key. If you have it, you won't have to manually click "install" on each application. The process is completely automated. Open Titanium Backup (grant root access. If titanium says it failed to obtain root access, press menu>more>reload application). Press menu>batch>restore missing apps with data. Now, here you have a choice to make. Do you want a completely clean install? Select "app only" and run the batch operation (Deselect Google Wallet first. We don't want to risk restoring wallet in any way. Install it manually through the Play Store.). Do you want all of your application data (saved games/settings/etc)? Select "app+data" and run the batch operation (Deselect Google Wallet first. We don't want to risk restoring wallet in any way. Install it manually through the Play Store.). This MAY cause you problems or it may not. Personally, I often restore application data and seldom run into any trouble. If you do find that restoring data caused problems, follow the guide above to re-install your rom and restore without data. This process will take some time. Be patient (I'd suggest turning your screen off so the screen doesn't burn, but that's just me.) It will vibrate upon completion.

You can now restore your Text Messages, Bookmarks, and WiFi addresses if you backed them up by pressing Menu>Restore Data From XML.

Note:
Overclocking/CPU tweaking applications should never be restored with data. Simply deselect it from the list.
Facebook/Haxsync/Google+ may have problems restoring your contacts when installed through Titanium Backup. Simply uninstall and reinstall through the market (and be sure to log in and select to sync your contacts again).
Also, if you have NFC Task Launcher successfully launching Tasker tasks with your stickers: they may not immediately work.
Through my testing, it's as simple to fix as uninstalling NFC Task Launcher and Tasker. Restore Tasker first. Then restore NFC task launcher.

Restoring Your Contacts
If google fails to restore your contacts (not facebook/haxsync/google+/etc) you may import them manually if you backed them up.
Open the contacts application and press menu>import/export>import from storage.

Restoring A Nandroid
If your phone is acting funny or won't boot...restore a nandroid from a previous rom or working set-up.
You may also use a Nandroid to switch back to a previous rom if you decide you don't like the one you're on.
Do this by booting into ClockworkMod Recovery (hold volume up, volume down, and power while your phone is off and navigate to "Recovery Mode").
Simply select "restore" and find the most recent (or relevant) backup.
This process will take some time. Be patient and let it complete! Once done, select "Reboot."

Note:
Nandroids are stored in the "clockworkmod" folder on your SD card. They take up quite a bit of space. ALWAYS have at least one recent one on your SD card. However, since these are huge files: you may like to delete old ones to save space. You must delete backups by booting into CWM and navigating to Backup and Restore>Delete.

Important Notes About Restoration
I outline the method of using Titanium Backup above for a reason. Restoring system applications and data is the most common cause of problems on custom roms. For this reason, always ONLY restore "missing applications" from "user applications" that were backed up when restoring onto a new rom. Every time you restore system data or applications a narwhal sodomizes your favorite childhood cartoon. This is FACT.

Installing Alternate Custom Recoveries
If you find a custom recovery (such as the touch-recovery options) that came as a .img file:
Use these instructions to flash. Plug your phone into the computer. Open up ADB. Move the .img to the C:\android-sdk-windows\platform-tools folder.
Type the following:
Code:
adb reboot bootloader
(Hit Enter)
You can also manually boot to the bootloader by powering off and holding volume down, volume up, power buttons until the green Android with his chest exposed is displayed.
Then type:
Code:
fastboot flash recovery FILENAME.img
(Replace the file name with whatever the .img is called and Hit Enter).
Wait for the process to complete and reboot.

***I take no responsibility for what happens to your phone due to following this guide! That being said, not only am I sure you'll be fine...but there are an endless amount of users who would be glad to help if you need it.***
The Following 73 Users Say Thank You to Jubakuba For This Useful Post: [ Click to Expand ]
 
Jubakuba
Old
(Last edited by Jubakuba; 30th November 2012 at 09:53 AM.)
#3  
Jubakuba's Avatar
Senior Member - OP
Thanks Meter 5,052
Posts: 2,319
Join Date: Oct 2010
Location: Pueblo, Colorado

 
DONATE TO ME
Panic Section! (Something is Wrong)



Q: My phone won't boot!
A: The easiest option is to get into recovery and restore a nandroid using the above guide (pull battery to put phone in an off-state if needed).
However, more advanced options are available if you don't have a nandroid available (You're naughty).

Do you have another rom .zip available on your SD card? If so, simply use the above guide for installing a rom to get you booting again.
If not, you can download one on your PC. Boot into fastboot (the green Android with open chest menu). Navigate to recovery and select it with the power button.
Move the .zip to the C:\android-sdk-windows\platform-tools folder.
Open ADB.
Change the NAMEOFZIP.zip below to the correct file name...and perform the action.
Code:
adb push NAMEOFZIP.zip /sdcard/NAMEOFZIP.zip
(Hit enter)
You may have to reboot recovery to get the file to show up. Now follow the guide above for flashing a rom to get you booting again.

Did you install a tweak that modified only a file or two on your phone? (Find this out by opening the .zip and looking in the folders (ignore META-INF). Good news! We MAY be able to recover you completely. If this doesn't work...you'll have to follow another method.
Get your phone into fastboot (the boot-menu that allows you to select recovery/reboot/etc). Navigate to Recovery. Start up ADB. Pull the files that were modified out of the stock rom's .zip (using whatever tweak you were installing as reference to find what was changed) that you're on into the C:\android-sdk-windows\platform-tools folder. Now we're going to push these files onto your phone...replacing the tweaked ones and hopefully getting you booted again. Use this code, but change the values of the file name and where it should reside. This is only an example!


Code:
adb shell
(Hit Enter)
Code:
su
(Hit Enter)
Code:
mount -o remount,rw -t ext4 /dev/block/mmcblk0p1 /system
(Hit Enter)
This will mount your system so you can write to it.
Code:
exit
(Hit Enter)
This should exit shell and allow the use of adb commands again. You may need to type it a couple of times (until the #_ changes back to the platform_tools> prompt).
Code:
adb push framework-res.apk /system/framework/framework-res.apk
(Press enter after each file that you need to replace).
Note: This last option probably won't work. I'd just skip over it unless you're absolutely adamant about restoring your current setup and want to try everything possible.



Q: I want my SDcard files from my phone...but I'm in a situation where I need to flash stock images! This will erase my SD content. What can I do to save it?
A: Do you have a custom recovery installed? If not, download a custom recovery from post one in this guide and flash it using those instructions. You'll need to be in a custom recovery in order to obtain ADB access without booting your phone. Boot into recovery (With phone turned off: hold Power and Volume+ and Volume- until the bootloader pops up and navigate to "Recovery"). Run the command:
Code:
adb pull /sdcard/ /SDCARD/
(Hit Enter)
This will put all of your files into a folder called "SDCARD" in your C:\ drive. Keep in mind that this will take a LONG time. Maybe a couple of hours.

To restore once you're booting again:
Move the "SDCARD" folder you created from your C:\ drive to the platform-tools folder. *Then input:
Code:
adb push SDCARD /sdcard/
(Hit Enter)

Q: How do I make an "ADB Backup?"
A: An ADB Backup will backup your phones data (applications and their settings). Follow the guide HERE about ADB Backups.

Q: My phone gets really sluggish and often turns off or reboots on its own.
A: Without knowing anything about your situation...I'd say you either have severely bad data somewhere or some bad kernel tweaks. Use the rom install guide above, paying close attention to the part about backing up and restoring if you haven't already. In the case of a kernel problem, you're likely undervolting too low. Restore the stock kernel values and see if your problems subside.



Q: My phone screen won't turn on! This requires a battery pull to fix.
A: This is called a "Black Screen of Death" or BSOD. This is generally due to using a hotplug governor (one that turns cores off with the screen off) or possibly undervolting your device too low. Change governors or up your slots a bit.



Q: My phone is doing really weird things. Regardless of kernel/rom and even if I don't restore any data at all! Either that or I simply cannot boot up! My phone is possessed no matter what I do!
Download the stock IMAGES for your device and extract the files using 7-zip. Move all of the extracted files to your platform-tools folder. Open the flash-all.sh file with a text editor. Copy and paste the commands (one by one) and wait for each process to complete for continuing.



FAQ

Roms/Kernels



Q: What is the best rom?
A: The "best" rom is a matter of opinion. Do you like a certain customization and can't live without it? Use a rom that has that option.



Q: What is the best rom for battery life?
A: Roms themselves really shouldn't impact your battery all that much. They can have an impact, but if you're really looking for better battery I'd suggest swapping kernels or tweaking yours.



Q: What is the best rom for stability?
A: All of the roms out are "stable." They may have options that don't work correctly, but generally: this is user error. If you follow my advice on installing a rom, you'll end up with MUCH fewer bugs.



Q: What is the best kernel?
A: The best kernel is a matter of opinion. Some users may love one, while others swear by another. Find one you like and tweak it accordingly.



Q: How do I tweak a kernel for better battery?
A: Generally, you'll want to either change your governor and or undervolt and or underclock your kernel. This is done either by using SetCPU or similar apps, or with an option in your rom (usually labeled "performance" or something similar). Take note: extremely high/low voltages may cause instability. Never "set at boot" until you've thoroughly tested the options you've set. Testing includes low strain (like turning your screen off for an hour) and high strain (like playing a game for an hour) scenarios. To be extra safe: run the values for a couple days before setting them at boot. Follow the users ideas in the kernel's threads for some guidelines. However, remember that not all values will play nicely with all phones.



Miscellaneous



Q: Why isn't Google Wallet working at [store]?
A: I'm not sure if it's a Google Wallet problem, or a problem with the terminal. But I personally struggle to find a terminal that consistently works in my area. Something that has generally worked for me is to open wallet and go to Options>Reset Google Wallet. You must then re-add any cards you had.



Q: Does my ass look good in these shorts?
A: Yes.



Neat Ideas / How to Show Off the Nexus 4
-Get some NFC stickers. Tagstand has them available.
You can use these to make your phone perform certain tasks when you touch the sticker. Use NFC Task Launcher to define the tasks. These are capable of doing simple things like muting your volume to the more complex like turning on Tasker tasks that do things like auto-reply to text messages while you're at work.

-Do you have any suggestions? Submit them below!


***I take no responsibility for what happens to your phone due to following this guide! That being said, not only am I sure you'll be fine...but there are an endless amount of users who would be glad to help if you need it.***
The Following 67 Users Say Thank You to Jubakuba For This Useful Post: [ Click to Expand ]
 
Jubakuba
Old
(Last edited by Jubakuba; 14th December 2012 at 12:00 PM.)
#4  
Jubakuba's Avatar
Senior Member - OP
Thanks Meter 5,052
Posts: 2,319
Join Date: Oct 2010
Location: Pueblo, Colorado

 
DONATE TO ME
ADB Backups:



SDcard backup:
Code:
adb pull /sdcard/ /sdcard/
(This will pull all of your sdcard contents to an "sdcard" folder in your C:\ directory)

Applications and their data:
Take note, that you'll need to be using CyanogenMod's method for setting up ADB to do this. The ADB AIO application installs an older SDK without this functionality. First, get your drivers installed (detailed in post one). Once you get ADB installed (post one), navigate to the C:\android-sdk-windows\platform-tools folder on your computer. Hold shift and right click. Select "Open Command Window Here."

Input this while your phone is turned on and USB Debugging is Enabled:
To do so; you must first go to Settings>About>Build Number and click seven times.
The actual setting can then be found in Settings>Developer Options>USB Debugging

Type this:
Code:
adb backup -apk -noshared -all -nosystem
(Hit Enter)

Your phone will ask for a password. Input one and remember it.
Once the process completes: continue with unlocking and rooting your phone.

Restoration:
Upon unlocking and rooting your phone: open up ADB again.
Enter this code:
Code:
adb restore backup.ab
(Hit Enter)
Input the password you saved to this file earlier, and wait for the restore to complete.

To restore your SDcard backup, first move the "sdcard" folder that was made in the backup process to your platform-tools folder.
Then run:
Code:
adb push sdcard /sdcard/
The Following 70 Users Say Thank You to Jubakuba For This Useful Post: [ Click to Expand ]
 
iAndropple
Old
#5  
iAndropple's Avatar
Recognized Themer
Thanks Meter 801
Posts: 1,028
Join Date: Jul 2012
Location: Centereach, New York

 
DONATE TO ME
Do you have to install "ADB" ?


“Creativity is knowing how to hide your sources”
Albert Einstein
The Following User Says Thank You to iAndropple For This Useful Post: [ Click to Expand ]
 
Jubakuba
Old
#6  
Jubakuba's Avatar
Senior Member - OP
Thanks Meter 5,052
Posts: 2,319
Join Date: Oct 2010
Location: Pueblo, Colorado

 
DONATE TO ME
As far as like...clicking it and letting the windows installer install...no.
The exe file will read the commands in cmd without "installation."
The Following 4 Users Say Thank You to Jubakuba For This Useful Post: [ Click to Expand ]
 
ak700
Old
#7  
ak700's Avatar
Senior Member
Thanks Meter 435
Posts: 1,616
Join Date: Nov 2010
Location: 25.00° N, 71.00° W
Nice Work!
The Following User Says Thank You to ak700 For This Useful Post: [ Click to Expand ]
 
KidCarter93
Old
#8  
KidCarter93's Avatar
Forum Moderator
Thanks Meter 6,686
Posts: 14,322
Join Date: Mar 2012
Location: Coventry
I've just added this guide to the Nexus 4 Complete Index

Sent from my GT-I9100 using xda premium
I'm subscribed to too many threads so I may not notice your reply. To make sure I do, quote my post or add "@KidCarter93" to your reply."
[ m7 | 1.54.401.5 | S-OFF ]
Can't find your answer or not sure where to post? Ask in the XDA Assist Forum
Forum Rules | XDA New User Guide | Getting Moderator Help

"There are 10 types of people in the world - those who understand hexadecimal and F the rest."
Follow me on Twitter - @XDAKidCarter93
The Following 4 Users Say Thank You to KidCarter93 For This Useful Post: [ Click to Expand ]
 
slowpc
Old
#9  
slowpc's Avatar
Senior Member
Thanks Meter 29
Posts: 674
Join Date: Sep 2010
Location: W.S -=- NC

 
DONATE TO ME
Great work!!! nice and clean reading!
-=- AT&T - Google Nexus 4 - Never Forget. 11/13 -=-
 
jayluke
Old
#10  
Junior Member
Thanks Meter 4
Posts: 28
Join Date: May 2010
Location: BC
Can this guide include information on how to re-lock bootloader and unroot the device? Does this informaiton exist?

I need to RMA my phone due to dead pixels and I want to make sure I dont have any issues with the warranty.

The Following 2 Users Say Thank You to jayluke For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes