Answer: This software does not use an exploit to root your device, instead it relies upon the low-level access gained from unlocking the bootloader.
Fundamentally, the basic steps involved in rooting any Nexus device are as follows:
- Unlock the bootloader
- Boot/flash into an alternate recovery
- Use that recovery to flash a Superuser recovery zip
NRT helps automate these primary procedures in addition to some desired additional steps. More specifically, when checking “flash custom recovery” under the root button – the script also takes care of flashing custom recovery for you, and renaming a certain system file, which (if present) can prevent the custom recovery from sticking properly. That file being:
Additionally, if “flash custom recovery’ is checked the toolkit also installs a simple root user app called Quick Reboot(by PhongIT); which provides a simple way to reboot your device directly into bootloader, recovery, or system. This is very useful whenever you are trying to modify your device without a computer handy. Automatically installing this light weight app during the root procedure can be disabled in the toolkits options menu.
By default, NRT also installs the user root app Busybox Installer Free (by Stericson) for installing and configuring all the latest essential applets for you. Busybox is not a requirement for root, however a lot of Playstore root apps require its applets to run properly. This automatic installation of Stericson’s Busybox Installer can be disabled in the toolkits options menu, or switched to install Busybox Pro via the Playstore instead.
To fully automate these procedures, NRT makes use of (modified) boot.img’s which I tweaked and re-compiled for each build (and each device). Temporarily booting these modified boot.img’s enables running privileged commands; more specifically, gaining adb root shell access. NRT utilizes this increased shell access to push a specialized auto-generated temporary script file called ‘openrecoveryscript’ to your device. This ‘openrecoveryscript’ file which now resides in your devices /cache/recovery/ directory gets read-in by TWRP custom recovery and ultimately directs it to flash a series of zips. More specially it flashes SuperSU by Chainfire, a zip I packaged for installing the user root app busybox, and another zip I packaged for installing Quick Reboot and auto-renaming the system file I mentioned previously (if the user checked “flash custom recovery”).
When the script finally completes it provides some info on how to install the busybox applets and confirm root. And thats that. ^_^
Feel free to ask me any (more-specific) questions about the process if you have any. Cheers!
Answer: No, sorry… not yet:
I built this program with AutoIt which is a native Windows programming language. Officially supporting Mac and Linux OS’s will require a full re-write in a cross-platform language – something I would like to do but don’t have an ETA on at this time. For now, Mac and Linux users can try running it through a VM like Parallels/VirtualBox/VMware or through a compatibility layer like Wine. User’s have reported success doing so.
NRT works on all versions of Windows – XP and up. Both 32bit and 64bit system and OS architectures. This means 32bit & 64bit versions of:
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Windows 8.1 Preview
- Windows 8.1
- Windows 10 Technical Preview
- Windows 10 Enterprise Preview
I have personally tested this on multiple computers. Both desktops and laptops. And I was able to configure the drivers successfully on all of them.
Restoring/Fixing Nexus Devices
Answer: This can happen after a flash stock operation. The solution is to factory reset in stock recovery. If you want to preserve userdata you can try just wiping cache. If you have already installed a custom recovery, you can use the toolkits Advanced Utilities > Fastboot Flash > Recovery > Restore Stock Recovery.
Follow Google’s instructions for factory resetting in stock recovery here: https://support.google.com/nexus/answer/4596836
If a standard factory reset doesn’t work, try flashing stock again.
If the issue still persists you can try ‘advanced utilities’ > ‘fastboot format’ > and then have it format system and userdata – then use “soft brick mode” to “Flash Stock + Unroot” one more time (if needed).
Answer: If you are ever experience unexplained complications with your device, need to upgrade/downgrade, or need to restore it back to the way it was when you first bought it, then make use of the “Flash Stock + Unroot” feature.
- To avoid complications enable Force Flash Mode (recommended)
- If you want to avoid a data wipe, enable No Wipe Mode (only should be used for incremental updates).
- If you have complications, Disable ‘No Wipe Mode’. Backup your important files first and do a clean flash (the device will be completely wiped including sdcard content).
If you device is bootlooping or can’t boot up, use “Flash Stock + Unroot” with the “Soft-Bricked/Bootloop” option and follow the onscreen instructions for manually booting your device into bootloader mode and restoring your device.
If you plan on returning the device, after your flash stock you can re-lock it as well with the OEM Lock button.
Answer: Having no recovery at all is highly unlikely unless you deliberately issued a fasboot erase recovery or fastboot format recovery command. Chances are you are confusing the stock recovery prescreen for an indication that recovery is missing. This is understandable because the stock recovery prescreen is very misleading. It is a picture of an android on its back with an open chest and red exclamation point hovering above it. Do not be alarmed.
To bring up the stock recovery menu:
- While holding down Power, press Volume Up.
- Now you can navigate with the volume keys and select with the power button.
- So to reboot the device simply navigate to reboot system and press the power button.
The key combination to bring up the menu may not be identical on all devices. If its not working to bring up the menu try simultaneously pressing all three buttons (Vol Up, Vol Down, & Power) at the same, and repeat this a few times until it works.
If you want custom recovery (either TWRP or CWM), then you can easily flash it with the toolkit:
- Advanced Utilities > Fastboot Flash > ‘Recovery’ > ‘Latest TWRP’/’Latest CWM’
Alternatively you can use the toolkit to flash custom recovery + root in one operation:
- Chose TWRP (default) or CWM in the toolkits main options menu.
- Check the ‘Flash Custom Recovery’ checkbox on the main interface
- Press the ‘Root’ button.
If you want to avoid flashing custom recovery, but just boot custom recovery temporarily – you can do so in the toolkit:
- Advanced Utilities > Fastboot Boot > ‘Custom Recovery’
Or if you want to fully automate ROM/zip flashing you can do so in the toolkit:
- Advanced Utilities > ‘Flash zips…’ with ‘File is on this computer’ checked.
Answer: The “Developer Options” menu item on 4.2.* is hidden.
1. Goto Settings -> About Phone.
2. Goto “Build Number” at the end of the Scroll list.
3. Tap on “Build Number” repeatedly (7 times). On your third tap you should see message indicating that you only have 4 more taps to go to ‘become a developer’.
4. Continue: 4 more taps.
5. Hooray, you are now a ‘Developer’, go back to the Setting page.
6. You should see Developer Option menu item in your setting list now.
7. Open Developer Options and check USB debugging > Ok
Answer: New security enhancements in android 4.2.2 builds (and above) require the end user to explicitly grant adb access to any connecting computers before that connecting machine can successfully issue any adb commands to your device. When you connect a 4.2.2 (and above) android device to your machine (with USB debugging enabled) for the first time, you should be prompted with a confirmation message to allow or disallow USB debugging. This message will display your computers unique RSA key fingerprint and provide you a checkbox to “Always allow from this computer”. Check this box and select ‘OK’. Your device should no longer be listed as ‘offline’.
If you don’t see this prompt then you should try the following:
- With your device connected via usb and the toolkit running, toggle USB debugging off/on in Settings > ‘Developer Options’ and see if the prompt comes up.
- Also try unplugging and re-plugging the usb connection.
- Use the toolkits ‘Advanced Utilities’ > Quick Tools > List Devices (ADB mode)’ to test for device connectivity.
If you successfully accept the RSA fingerprint prompt and your device still remains listed as offline then follow the additional suggestions in the toolkit prompt.
Answer: Enable Test Mode on Win8 to allow using unsigned driver files:
METHOD #1: Through Windows 8 Settings Interface:
1.) WinKey+C > Settings (Gear icon)
2.) Change PC Settings
3.) General > Advanced Startup > Restart now
4.) Troubleshoot > Advanced Options
5.) Windows Startup Settings > Restart
6.) Wait for computer to restart…
7.) Select ‘Disable driver signature enforcement’.
8.) Now you can proceed to install these drivers ^_^
METHOD #2: From the CMD line:
1.) Open a cmd prompt as an Admin and enter the following cmds:
bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS bcdedit -set TESTSIGNING ON
2.) Now restart your computer, or if you are feeling extra nerdy type this into cmd prompt to restart:
shutdown /r /t 1
3.) Then use whatever driver solution you are attempting (Driver Solution #3 is recommended).
4.) After you are all done, if you wan’t to revert back to Winows8 default driver behavior and disable test mode, then open a cmd prompt again as an Admin and enter the following cmds:
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS bcdedit -set TESTSIGNING OFF
5.) Then just restart your computer again. ^_^
Answer: Just because the toolkit suggested a certain driver solution (most likely #1), does not mean that it is guaranteed work on your setup. NRT provides multiple driver solutions so that if you are unsuccessful with one method can try another. Remember when it comes to driver configuration device manager is your friend. You can launch device manager from within the driver guide itself, or from windows Start by typing ‘devmgmt.msc’ then enter. The goal is to configure your device so that adb can communicate with it when its on (with USB debugging enabled) and also so that fastboot can communicate with it when its in bootloader mode. Here are some tips that may help:
- If solution #1 doesn’t work for you, I highly recommend trying solution #4. Solution #4 is the manual method, so it allows you to directly point your computer to the correct driver files in device manager.
- If you are trying a new driver solution, make sure you start back at step 1; meaning you should use USBDeview again to uninstall any conflicting drivers first and fully reboot your computer.
- Enable USB debugging on your device and have NRT running before you plug it in. Doing it this way should initiate the RSA prompt (assuming you are running a 4.3* build). When you accept this prompt, make sure to check “Always allow from this computer”, otherwise NRT will not be able to communicate with your device without you explicitly re-accepting that prompt.
- When plugging your device in, always watch device manager. You should be able to easily identify which entry is your device, then you can Solution#4 to configure the drivers.
- This rule also applies to when you boot your device into bootloader mode. Watch device manager to make sure the entry is properly configured in this mode.
- Remember that a simple way to test the drivers is by using the ‘Quick Tools’ – ‘List devices’ feature. Check that it see’s an adb device when your device is connected and on with usb debugging enabled, and also that fastboot see’s your device when its in bootloader mode.
- If you are having limited success, try alternate USB ports. As mentioned in the guide, try to use USB 2.0 port if they are available rather than USB 3.0 ports.
- Try enabling or disabling MTP; also try this with PTP.
What NOT to do:
If you are having problems configuring your drivers… Please, please, please do NOT write me a message like this:
Wug, I installed the drivers, but it doesn’t work.
There is no way for me to respond to that. I did as much as I can to provide lots of information on Windows driver configuration and provide as many solutions as possible. Unfortunately, it is the one thing that is truly impossible to automate consistently on Windows; believe me, if I could – I would. The Universal ADB Driver Installer by Koush is the closet thing to an automated solution which is why I recommended it in the driver guide, however it may not work on your step up. So, please try other driver solutions like Solution#4, and take advantage of Device Manager before concluding that its not working for you.
With a little effort I hope that you will be successful setting up the drivers. Once you get that out of the way, the other toolkit procedures can be performed with minimal effort.
Answer: Use the ‘Continue’ button, it will bring up an interface with a link to download the file through your web browser and import into the toolkit.
Answer: Chose your device, and then chose “Custom ROM” as your build. If you find that certain procedures are not working properly, then change the build to closest matching stock build – typically this will be the latest build available.
Answer: Select “Android *.*.* – Any Build” mode for your device for the time being. Any Build mode will work for performing the most common tasks like unlocking, rooting, unrooting (flashing-stock), and relocking your device, so this is a great option to utilize right when a new android release comes out if I haven’t updated the masterlists for full automated toolkit support yet.
Please don’t ask me when I will provide full toolkit support for a new recently released build if Google has yet to release the official factory image packages on their site here or it has been less than 24 hours since they did.
You can typically expect for me to update the toolkit to fully support new builds within 48 hours after Google releases new factory image packages; that should give me enough time to download them, analyze them, rename and modify certain files, upload everything to the server, test it, and then update the public masterlists.
Answer: Select the corresponding YAKJU build (based on the numerical android version). For example: If you are on yakjuxw 4.0.4 then select: “YAKJU-MAGURO: Android 4.0.4 – Build: IMM76D“
OTA Updates + Updating Android
Answer: On Android versions 5.*.* and up, No. On KitKat (4.*.*) , yes (sometimes) – if you haven’t made any other system level modifications.
With android versions 5.*.* and up, the OTA update process checks the entire system blob. That means if just one small thing is different about the system partition the OTA will fail. Since rooting itself (regardless of the method: manual/toolkit) installs Superuser as a system app and su binaries to the system partition it inherently breaks OTA’s.
So how should you update a rooted Lollipop device?
1. Wait for the official factory package from google to be released for the build you would like to update to.
2. Backup your apps + data, as a safe measure – in case you end up having to wipe data.
3. Use “Flash Stock + Unroot” and “No-wipe mode” (to avoid a data wipe).
That’s it. Afterwards you can re-root.
Answer: There are numerous ways to go about doing this, so I will explain each one and their corresponding benefits/drawbacks:
OPTION #1: Using “Flash Stock + Unroot” with ‘No Wipe Mode’. Then ‘Sideload Update’ button [if needed] –
1. “Flash Stock + Unroot” > Enable ‘No Wipe Mode’, and select the latest build available.
2. After this completes, if the latest build available in the toolkit that you just flashed is the build you want, then you are done. If not, proceed with steps 3-5.
3. Do a Google Search for the ‘OTA Update Zip’ for your particular device and build you want to update to. (Example: ‘KOT49E OTA Update Zip for Nexus 10’)
4. Download the correct OTA Update zip for your device (Example -‘bab270d1d4d935e31f61b1dcf2e66600006c87f7.signed-mantaray-KOT49E-from-KRT16S.bab270d1.zip’)
5. Use Advanced Utilities > ‘Sideload Update’ button and follow the on-screen instructions.
- Use the toolkit to root again (if you want to); selecting ‘Any Build Mode’ if your device is not yet listed in the toolkit as explained here
- Manually reconfigure any system settings that got reset.
- Allows you to update to the latest android version without loosing your userdata.
- Relatively simple and should correct any previously experienced unsuccessful OTA related errors.
- Utilizes purely stock/official files directly from Google.
- You don’t have to wait for Google to release the latest factory image package, all you need is the OTA Update zip.
- Can reset some system settings since ‘Flash Stock + Unroot’ with ‘No Wipe Mode’ only preserves your userdata and cache, not your system partition (however reflashing the system partition is the very thing that makes this method work; i.e. it corrects any conflicting problems preventing your OTA from being successful by resetting your system partition to stock).
- Using ‘No Wipe Mode’ can potentially cause unwanted problems since its not a truly “Clean Flash”. If you were to review Google’s included “Flash-all.bat” scripts in their factory image packages, you would notice that they are written with the ‘-w’ switch included by default which means that their “recommended” setting for flashing stock involves wiping data. That being said, in many circumstances using this ‘No Wipe’ approach can work great, and if for whatever reason it doesn’t – you could always backup your data and repeat “Flash Stock + Unroot” with wiping.
OPTION #2: Waiting for the latest official factory image package, backing up, and then using “Flash Stock + Unroot” –
- Exercise some patience and wait for Google to release the update in an official factory image package, which can be found here.
- Backup all your data using whatever method you prefer:
- If you are rooted you may want to check out the paid app Titanium Backup from the playstore.
- If you use Titanium Backup it is recommended to only backup user apps + data (not system apps), because when you update to the new android version, the system apps are most likely updated, so restoring an old system app backup will overwrite your new system app with the legacy version; and if you were just to restore the data, it may be incompatible with the new version of the system app. There are some exceptions to this rule; as in – you might be able to get away with restoring some system data, however if you chose to go this route then make sure you just restore the data (not the app), you do so selectively (as in – one system app at a time), and you know how to delete that app data if it doesn’t work properly (Settings > Apps > All > navigate to the particular app > clear data > reboot your device.)
- Make sure that whatever you backup ends up on your COMPUTER – NOT just your device’s sdcard; that means if you use a third party app like Titanium Backup to backup all your apps, then you must make sure to take the extra step to fully copy Titanium Backup’s folder from your devices sdcard onto your computer (or synced to your cloud storage) BEFORE proceeding to flash stock.
- You can also of course use the toolkit to make backups, however you may find that third party apps like Titanium Backup are better than Google’s adb backup.
- Make sure to backup everything on your devices sdcard you want to keep (like music, pictures, video’s) or sync it to cloud storage.
- If you can, make multiple backups or use more than one backup solution – that way you can be sure you will preserve your data.
- If you are rooted you may want to check out the paid app Titanium Backup from the playstore.
- Use ‘Flash Stock + Unroot’ and select the build you want to update to in the flash stock interface and use Autodownload/extract, or use the ‘Other/browse’ option if that build is not yet listed and Google has released the package on their site.
- Re-root your device with the toolkit if you want to.
- Restore your data.
- Manually reconfigure any system settings that got reset.
- A truly clean flash; overwrites any modifications or system hacks you may have performed on your setup prior to flashing and ensures you are running a truly clean stock setup.
- Allows you think about how you will setup your device again; I always find that after I perform a full flash that I opt to restore less apps than I had beforehand, or replace apps that I rarely use with better ones.
- Don’t have to deal with any OTA errors
- Uses only official stock files from Google
- Requires you to wait for Google to release the full factory image package rather than update the moment the OTA gets posted
- Have to spend the time backing stuff up, restoring it, and setting things up (however with third party apps and some experience, this becomes quicker every time).
OPTION #3: Wait for an independent developer to release a pre-rooted/Custom-ROM version of the newly released build and “dirty flash” it –
- Google search for a pre-rooted/custom-ROM release of the newly announced build (Example; ‘KOT49E Custom ROM for Nexus 10’)
- Download which ever custom ROM looks the best to you/suits-your-needs (some will be very-close if not identical to the pure stock experience, whereas others may offer some neat mods and enhancements..)
- Dirty flash the ROM in custom recovery (either via the toolkit using ‘Flash zips’ button – ‘file is on this comp’ or manually through flashed/temp custom recovery)
- By ‘dirty flash’ – I mean – flash the ROM without wiping user data first (however you may want to consider wiping dalvik and cache – probably better practice)
- You can of course opt to ‘Clean Flash’ instead – as in, wipe data/factory-reset first and then flash, but in that circumstance you are going to want to backup all your important data before doing so (following the same guidelines described in option#2).
- Re-root your device (if you want to) if the ROM you flashed isn’t already pre-rooted.
- Manually reconfigure any system settings that got reset.
- Don’t have to deal with any OTA update errors.
- Don’t have to worry about having custom recovery, or any system mods and hacks prior to flashing.
- Typically independent developers are really quick to release these ROM, so you can get the updates within a very short time-span after Google releases the official OTA.
- If the ROM has other enhancements and features, you may find the experience to be even better than what Google offers.
- Typically these ROMs are pre-rooted so you don’t even have to bother with re-rooting (although its very simple to do with the toolkit)
- If you are running an actively supported custom ROM like CyanogenMod – you may find that it has its own in-built OTA system that works great and grabs the latest and greatest directly from them without any OTA update error hassles (however you may have to wait a little longer for them to merge the new official build changes into their ROM)
- Probably have to wait a little bit longer for a dev (or your favorite dev) to merge the new official build changes into their releases.
- Does not use the official stock files directly from Google (however many people would consider this a benefit, as many custom ROMs often offer an even better experience than Google’s official releases).
- By running a custom ROM, you will not be able to successfully take future official OTA updates without first going back to a stock state (like option#1) – however this really isn’t an issue if you are getting your updates directly from the Custom ROM developers.
- Running custom firmware could void your warranty.
So in conclusion… there are numerous ways to update your device – each with its own benefits and drawbacks. Consider the options and pick the one that sounds best to you. ^_^
Which option do you use Wug? –
Typically I am switching between options #2 and #3. If its a major update that I want right away and no Custom ROM is offering it, then I backup all my stuff, then flash the factory pack with the toolkit. Otherwise I enjoy custom ROMs and wait for them to get updated with the latest and greatest. This is mostly because I am a big fan of clean flashing (personal preference), I typically only dirty flash when a ROM developer says its cool and its an incremental update/nightly.
Hope that helps. Enjoy! ^_^