Friday, 7 March 2014

Root Google Nexus 4 Ultimate Guide

Root Google Nexus 4 Ultimate Guide

Disclaimer
I am not responsible if your phone gets bricked, by following the process you are voiding your warranty and significant damage may be caused to your device.
If you are naive enough to screw somewhere, then it is your responsibility.
Software are unpredictable in nature, one may/may not act as predicted especially in case of rooting (personal experience). Hence my friend, treat with ULTRA care.
In short,

I AM NOT RESPONSIBLE FOR ANY DAMAGE TO YOUR PHONE


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 may perform a factory reset on your device. You might 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.

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!



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.



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!