As one of the Android Commandments says: "Thou shalt not use thine nexus unrooted." I present to you step by step guide for rooting and dual booting your Nexus 7.
I bought Nexus 7 16 GB Wifi model from Flipkart a week ago. And I have to say, it is one of my most awesome investment that I ever did. I immediately started my research on rooting it so that I can unlock the true potential of this beast. Now I have installed Ubuntu Touch on N7 and its dual boot with Android. But I faced numerous challenges in doing so, due to lack of experience in this regard. I decided to document my research and finding so that other who may want to unlock the bootloader of N7 and want to flash Ubuntu Touch can do so easily.
But first here's some screenshots of the N7 running Jelly Bean.
Click Spoilers to view images :
Images are scaled down, click the image to open the image in its original quality
A few benchmarks on stock:
Rooting the N7 (Unlocking the bootloader):
You can live your life with N7 without rooting it. Or you can be awesome instead and do unlock it to get these features to work:
1. Ability to use an OTG cable to connect pen drives to the device, thereby overcoming the 16 GB (13 GB available actually) limitation.
2. Using a 3G dongle to let your device take advantage of 3G (which by default this device don't have)
3. Take advantage of apps that only works when device is rooted, like Titanium Backup and Cache Cleaner
4. Flash custom ROM's and/or Install Ubuntu Touch on your device (and be a part of an OS in the making!)
You can read this article that echoes my thoughts, until the part where he used a toolkit to root (I rooted the old fashioned adb way).
Here's How to Root the Nexus 7 - But Should You? | Android.AppStorm
Anyway, so how actually you root N7?
You can use the most popular Nexus Rootkit to do all kinds of stuff to your N7 including Rooting, flashing zips etc, but if you are geek like me, here is how to do it manually (and its way easier than you think):
1. First enable "USB debugging" on N7:
Goto settings -> About Tablet, and tap Built Number several times, until a message pops up below with the Google sense of humor: "Congratulations, You are not a developer." You have just enabled a menu option, "Developer Options" in settings. tap Developer Options, and then check mark "USB Debugging".
2. Disable MTP:
Now open Settings -> Storage. And find the option to go into "USB computer connection", and uncheck "Media Device (MTP)". This is necessary so that adb discovers the device (explained later).
3. Get Android Debug Bridge utility (ADB):
There are several methods to get ADB.
-> You can download it from here: Android SDK | Android Developers. Its a big download.
-> Or you can download the Nexus Toolkit from here: Nexus Root Toolkit v1.7.2 | WugFresh (file: NRT_v1.7.2.sfx.exe) and use the adb which the toolkit uses. (its a smaller download than downloading complete SDK).
-> Or you can simply get the SDK from the Omega DVD of Jan 2013 (its rare times like these that a digit DVD really helps!)
4. Install the Nexus 7 drivers on your PC:
I tried to install the drivers from the toolkit, and had a hard time doing that. The toolkit just wasn't able to help me install the right drivers, and I tried installing the alternate driver from the choices. It wasn't after a long R&D and many reboots of the N7, that a dialog box prompt on the device (shown in below screenshot). Once I allowed it, rest was easy.
5. Use ADB to root: (FINALLY)
Open command prompt with platform-tools as directory on prompt. And type the following commands to test if ADB is able to communicate with your device.
Above command should result something like this:
If you can't see above output, then you have to try installing the drivers again. Which you can do so from SDK Manager. Try selecting Google drivers from there. Once you *can* see it as a device, you would need to enter these commands from adb.
Following command will reboot your N7 to bootloader.
Following command will actually root it. You will encounter a confirmation message on the device before its committed.
PS: After you root your device, you will also need to install Super User app, so that the apps can actually use the root status. Which you can install from the Play market.
Now you have your device rooted, and all the data from it should be erased and Nexus 7 set to factory setting. You can now use apps to use Pen drives and 3G dongles on it. But if you want to dual boot N7 with Ubuntu Touch, then continue further.
First an article on why shouldn't install Ubuntu Touch: 4 Reasons Why You Shouldn't Install Ubuntu Touch on Your Nexus | OMG! Ubuntu!
But since we are dual booting the Ubuntu with Android, the reasons stated above won't matter!
6. Installing Custom Recovery (Flashing TWRP Multi ROM)
Using adb commands the next you need to do is to flash a version of TWRP recovery which is tweaked for MultiROM support. The file I downloaded was "TWRP_multirom_grouper_20131022.img" from here: [MOD][OCT 22] MultiROM v16a (fix SuperSU for secondary ROMs) - xda-developers, and used following command to flash it.
7. Flash Kernel with kexec-hardboot patch (We are getting closer)
The next thing which is required to dual boot is to flash a Kernel with kexec-hardboot patch and the file varies by the version of Android you have installed on your N7. I flashed, "kernel_kexec_430.zip" (get from above link) from TWRP recovery's "Flash ZIP" option (not using adb).
8. Download Ubuntu Touch image (The Ubuntu Goodness!)
The final step is to flash the Ubuntu image from MultiROM, so that we can have dual boot. Latest built of Ubuntu Touch can be found here: Index of /ubuntu-touch/daily-preinstalled.
This steps requires to download two files and flashing them together from the Recovery. So I downloaded following two files:
trusty-preinstalled-touch-armel+grouper.zip, and
trusty-preinstalled-touch-armhf.zip.
(grouper is a code name for Nexus 7)
9. Copy the above files to device:
Next thing is to push these two files using adb commands:
10. Flashing Ubuntu Touch (take a deep breath):
To flash these two files you will need to goto Recovery -> Advanced -> Multirom -> Flash files. And select both the above files. Flashing it takes a few seconds. And once its done, reboot the device from options.
Congratulations. If you have done everything correctly, you should have a multi boot menu when you reboot the device, from where you can select which OS to boot into. There should be two options, "Internal" which will open Android and other with the name of the file you flashed, which will boot into Ubuntu Touch. You can even rename these from the recovery and multi ROM menu.
Following are some images of Ubuntu Touch on my N7:
I bought Nexus 7 16 GB Wifi model from Flipkart a week ago. And I have to say, it is one of my most awesome investment that I ever did. I immediately started my research on rooting it so that I can unlock the true potential of this beast. Now I have installed Ubuntu Touch on N7 and its dual boot with Android. But I faced numerous challenges in doing so, due to lack of experience in this regard. I decided to document my research and finding so that other who may want to unlock the bootloader of N7 and want to flash Ubuntu Touch can do so easily.
But first here's some screenshots of the N7 running Jelly Bean.
*machinehappy.com/wp-content/uploads/2012/10/nexus7-2012-06-27-800-7.jpg
Click Spoilers to view images :
Images are scaled down, click the image to open the image in its original quality
The Lock screen:
*i.minus.com/iZs63m3oyfVua.png
Home screen:
*i.minus.com/i1Z3uDzgDrtso.png
Home screen in Landscape:
*i.minus.com/ibcMyCP0MNhI7D.png
Notifications drop down:
*i.minus.com/iA8in5NKfPSNL.png
Settings drop down:
*i.minus.com/iUoEtkvMIRSD3.png
Running Jelly Bean:
*i.minus.com/ibnVLrwd5WjF58.png
App drawer:
*i.minus.com/ibnx9vjkUtYBY9.png
Data Usage Screen:
*i.minus.com/iY7Ph0CyWWRkk.png
Terminal and Stock Keyboard:
*i.minus.com/iKglgzn3ML7w1.png
About screen:
*i.minus.com/ibjuTPe1w9qCXI.png
Specs:
*i.minus.com/igbKJVWYjl98O.png
*i.minus.com/iZs63m3oyfVua.png
Home screen:
*i.minus.com/i1Z3uDzgDrtso.png
Home screen in Landscape:
*i.minus.com/ibcMyCP0MNhI7D.png
Notifications drop down:
*i.minus.com/iA8in5NKfPSNL.png
Settings drop down:
*i.minus.com/iUoEtkvMIRSD3.png
Running Jelly Bean:
*i.minus.com/ibnVLrwd5WjF58.png
App drawer:
*i.minus.com/ibnx9vjkUtYBY9.png
Data Usage Screen:
*i.minus.com/iY7Ph0CyWWRkk.png
Terminal and Stock Keyboard:
*i.minus.com/iKglgzn3ML7w1.png
About screen:
*i.minus.com/ibjuTPe1w9qCXI.png
Specs:
*i.minus.com/igbKJVWYjl98O.png
A few benchmarks on stock:
AnTuTu:
*i.minus.com/iBKm2rbYm1bP1.png
Quadrant:
*i.minus.com/iRaLQM4E5XAYm.png
Nenamark 2.4:
*i.minus.com/iH1o4zu7ILSJH.png
Neocore showed following error:
*i.minus.com/ibwXqEupipQewG.png
3D Mark scores:
*i.minus.com/iYeirP0XOxCJ9.png *i.minus.com/iilxfrSKFHhaa.png *i.minus.com/ijI7MLeaGcrK4.png
*i.minus.com/iBKm2rbYm1bP1.png
Quadrant:
*i.minus.com/iRaLQM4E5XAYm.png
Nenamark 2.4:
*i.minus.com/iH1o4zu7ILSJH.png
Neocore showed following error:
*i.minus.com/ibwXqEupipQewG.png
3D Mark scores:
*i.minus.com/iYeirP0XOxCJ9.png *i.minus.com/iilxfrSKFHhaa.png *i.minus.com/ijI7MLeaGcrK4.png
Rooting the N7 (Unlocking the bootloader):
You can live your life with N7 without rooting it. Or you can be awesome instead and do unlock it to get these features to work:
1. Ability to use an OTG cable to connect pen drives to the device, thereby overcoming the 16 GB (13 GB available actually) limitation.
2. Using a 3G dongle to let your device take advantage of 3G (which by default this device don't have)
3. Take advantage of apps that only works when device is rooted, like Titanium Backup and Cache Cleaner
4. Flash custom ROM's and/or Install Ubuntu Touch on your device (and be a part of an OS in the making!)
You can read this article that echoes my thoughts, until the part where he used a toolkit to root (I rooted the old fashioned adb way).
Here's How to Root the Nexus 7 - But Should You? | Android.AppStorm
Anyway, so how actually you root N7?
You can use the most popular Nexus Rootkit to do all kinds of stuff to your N7 including Rooting, flashing zips etc, but if you are geek like me, here is how to do it manually (and its way easier than you think):
1. First enable "USB debugging" on N7:
Goto settings -> About Tablet, and tap Built Number several times, until a message pops up below with the Google sense of humor: "Congratulations, You are not a developer." You have just enabled a menu option, "Developer Options" in settings. tap Developer Options, and then check mark "USB Debugging".
2. Disable MTP:
Now open Settings -> Storage. And find the option to go into "USB computer connection", and uncheck "Media Device (MTP)". This is necessary so that adb discovers the device (explained later).
3. Get Android Debug Bridge utility (ADB):
There are several methods to get ADB.
-> You can download it from here: Android SDK | Android Developers. Its a big download.
-> Or you can download the Nexus Toolkit from here: Nexus Root Toolkit v1.7.2 | WugFresh (file: NRT_v1.7.2.sfx.exe) and use the adb which the toolkit uses. (its a smaller download than downloading complete SDK).
-> Or you can simply get the SDK from the Omega DVD of Jan 2013 (its rare times like these that a digit DVD really helps!)
4. Install the Nexus 7 drivers on your PC:
I tried to install the drivers from the toolkit, and had a hard time doing that. The toolkit just wasn't able to help me install the right drivers, and I tried installing the alternate driver from the choices. It wasn't after a long R&D and many reboots of the N7, that a dialog box prompt on the device (shown in below screenshot). Once I allowed it, rest was easy.
*i.minus.com/ibecBGSqlG1FgI.png
5. Use ADB to root: (FINALLY)
Open command prompt with platform-tools as directory on prompt. And type the following commands to test if ADB is able to communicate with your device.
Code:
F:\Android\adt-bundle-windows\sdk\platform-tools>adb devices
Above command should result something like this:
Code:
F:\Android\adt-bundle-windows\sdk\platform-tools>adb devices
List of devices attached
015d8b3b4558260b device
If you can't see above output, then you have to try installing the drivers again. Which you can do so from SDK Manager. Try selecting Google drivers from there. Once you *can* see it as a device, you would need to enter these commands from adb.
Following command will reboot your N7 to bootloader.
Code:
F:\Android\adt-bundle-windows\sdk\platform-tools>adb reboot bootloader
*i.minus.com/iptudQDAuabvk.jpg
Following command will actually root it. You will encounter a confirmation message on the device before its committed.
Code:
F:\Android\adt-bundle-windows\sdk\platform-tools>fastboot oem unlock
...
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [104.112s]
finished. total time: 104.112s
*i.minus.com/i4VF6gfOFpmjF.jpg
Now you have your device rooted, and all the data from it should be erased and Nexus 7 set to factory setting. You can now use apps to use Pen drives and 3G dongles on it. But if you want to dual boot N7 with Ubuntu Touch, then continue further.
First an article on why shouldn't install Ubuntu Touch: 4 Reasons Why You Shouldn't Install Ubuntu Touch on Your Nexus | OMG! Ubuntu!
But since we are dual booting the Ubuntu with Android, the reasons stated above won't matter!
6. Installing Custom Recovery (Flashing TWRP Multi ROM)
Using adb commands the next you need to do is to flash a version of TWRP recovery which is tweaked for MultiROM support. The file I downloaded was "TWRP_multirom_grouper_20131022.img" from here: [MOD][OCT 22] MultiROM v16a (fix SuperSU for secondary ROMs) - xda-developers, and used following command to flash it.
Code:
fastboot flash recovery d:\path-to-recovery\TWRP_multirom_grouper_20131022.img
7. Flash Kernel with kexec-hardboot patch (We are getting closer)
The next thing which is required to dual boot is to flash a Kernel with kexec-hardboot patch and the file varies by the version of Android you have installed on your N7. I flashed, "kernel_kexec_430.zip" (get from above link) from TWRP recovery's "Flash ZIP" option (not using adb).
8. Download Ubuntu Touch image (The Ubuntu Goodness!)
The final step is to flash the Ubuntu image from MultiROM, so that we can have dual boot. Latest built of Ubuntu Touch can be found here: Index of /ubuntu-touch/daily-preinstalled.
This steps requires to download two files and flashing them together from the Recovery. So I downloaded following two files:
trusty-preinstalled-touch-armel+grouper.zip, and
trusty-preinstalled-touch-armhf.zip.
(grouper is a code name for Nexus 7)
9. Copy the above files to device:
Next thing is to push these two files using adb commands:
Code:
adb push D:\path-to-first-file\trusty-preinstalled-touch-armel+grouper.zip /sdcard/
adb push D:\path-to-second-file\trusty-preinstalled-touch-armhf.zip /sdcard/
10. Flashing Ubuntu Touch (take a deep breath):
To flash these two files you will need to goto Recovery -> Advanced -> Multirom -> Flash files. And select both the above files. Flashing it takes a few seconds. And once its done, reboot the device from options.
*i.minus.com/iomx1WUHIr48v.jpg
Congratulations. If you have done everything correctly, you should have a multi boot menu when you reboot the device, from where you can select which OS to boot into. There should be two options, "Internal" which will open Android and other with the name of the file you flashed, which will boot into Ubuntu Touch. You can even rename these from the recovery and multi ROM menu.
Following are some images of Ubuntu Touch on my N7:
*i.minus.com/ibo7faL93ZBhvM.jpg
*i.minus.com/ibgoYQqrJTHCGp.jpg
*i.minus.com/iY0vVjvMaqt7l.jpg
*i.minus.com/ibo0fjCzVf1rpd.jpg
*i.minus.com/ibgoYQqrJTHCGp.jpg
*i.minus.com/iY0vVjvMaqt7l.jpg
*i.minus.com/ibo0fjCzVf1rpd.jpg
Last edited: