Tuesday, December 4, 2012

Updating the TF700

Ok, I've had this device for a while now and so far have only rooted it with DebugFS and unlocked the Bootloader with the ASUS Bootloader Unlocker Tool. I have never updated and haven't done any hacking. What I plan to do now is get NVFlash, CWM, and a new ROM installed.

A few notes before getting started:

  • Left Volume = Volume Down
  • Right Volume = Volume Up
  • Power + Left Volume = Menu with Fastboot option (USB symbol). Left changes, Right selects.
  • Power + Right Volume = APX mode (screen stays blank)
  • Sequence for booting modes
    • Push button (Left or Right volume) and hold
    • Push Power and hold
    • Device vibrates
    • Release Power
    • Release Button at appropriate time
  • APX Mode is a super low-level diagnostics mode that can allow NVFlash to write to any partition.
  • NVFlash is a program that allows primitive access to the system. It can only be used on the TF700 if the bootloader is ICS-based (that means pre-
  • Recovery Mode is a mode that allows for the manipulation of the system fom outside of the operating system. This can be used to backup the current system, restore the system, or install ROMs.
  • Fastboot Mode is a mode that allows for flashing files via USB.
  • Instructions for installing NVFlash was found at AndroidRoot.mobi (most files are from there)
  • Important! Rom Manager does not work on the TF700 and can brick the device!
  • It's best to have a microSD installed for backups and for ROM zips.

Necessary Files

Device Drivers (modified Universal Naked Drivers to support the TF700)
Fastboot (to perform device modifications via USB)
NVFlash Binaries (Program to get our device backup files)
TF700 NVFlash pack (NVFlash Support files for TF700)
Clockwork Mod Recovery (Recovery to allow install of new ROMs)
Stock Root ODEX ROM (Transitional ROM to update Bootloader)
Any Custom ROM

APX Drivers

Starting off, I needed to extract the drivers from the zip file. Doesn't really matter where, just that they need to be easily found for the installation. After that put the TF700 into APX Mode (Power + Right Volume) then plug it into the computer. The computer will see the device and not find drivers for it so select the contents of the extracted zip and install those. Windows will show a notification that the drivers aren't signed but install them anyway.

Fastboot Drivers

Restart the device but this time go into Fastboot Mode. This requires the use of the Power + Left Volume combination. Hold the Left Volume until messages start appearing ("Checking RCK Image") and then release the button. Wait a few seconds and a small menu will come up. There will be 10 seconds to select the USB Symbol (press left volume, then right volume) or it will just boot normally. This will place the device into Fastboot Mode and the computer will see it as a different device to which is does not have drivers. Install the same drivers as those done for APX mode.

Flashing Modified ICS Bootloader With NVFlash

Extract the fastboot files somewhere then copy the contents of the NVFlash pack into that directory. Start a commandline session as Administrator (Start -> Accessories -> Right-Click "Command Prompt" and "Run as Administrator"), then change to that fastboot directory.

Use the command to replace the bootloader
fastboot -i 0x0b05 flash staging ebtblob.bin

Then run this command to reboot the device
fastboot -i 0x0b05 reboot

The "The Device is UnLocked" message will be replaced by "AndroidRoot" and the ASUS Logo will be fractured and distorted. This indicates that the bootloader has been properly replaced and NVFlash accessibility is now available.

Backing Up Device

Go back into APX Mode and make sure there is still a command prompt session for fastboot.
fastboot -i 0x0b05 boot nvfblobgen.img

The process is very short, but it will return an error quickly. It can take between 20-30 seconds but when completed, the device will restart on its own. The generated files are in /sdcard/AndroidRoot/ and all of them are necessary. For some reason, my PC just showed them as little drives but when I copied the files to the microSD, I could then see the files correctly. The error resolved itself after restarting the device again. No idea why the issue nor why the resolution.

Backup the resulting files and then copy them into the fastboot directory.
Extract the NVFlash binaries zip then start NVFlash with the following command.
wheelie --blob blob.bin

Now we can generate a few other files that will complete our brick-prevention archive.
nvflash --resume --rawdeviceread 0 2944 bricksafe.img

nvflash --resume --read 14 factory-config.img

nvflash --resume --read 7 unlock-token.img

These files will be saved into the nvflash directory. Copy them into the place the original blob files are archived.

Clockwork Mod Recovery

Put the recovery image (recovery-jb-touch.img) into the fastboot directory then run the following command.
fastboot -i 0x0B05 flash recovery recovery-jb-touch.img

After rebooting, CWM can now be accessed via Power + Left Volume, then click Right Volume during "Check RCK image". From there, it's best to make a backup just in case things go awry.

Now that there are NVFlash backups and CWM backups, pretty much anything can be installed without worry. Before continuing, I'll add a little reminder here to backup whatever you want to keep. Some things to consider:

Back up SMS stuff
Create an App List
Backup contacts via Sync with Google or onto SD
Titanium Backup is not really an option because it doesn't make the ICS -> JB transition well

Updating the Bootloader (Optional and Dependent on ROM)

Since many of the available custom ROMs are dependent on Jelly Bean, that means changing Bootloaders because the version that was installed earlier for allowing NVFlash is an ICS Bootloader (thus, unable to run those ROMs). To do this update, we need to install a ROM that actually contains the update for the Bootloader. Otherwise, any ROMs that require the Bootloader update will fail. Just to test this, I went ahead and tried to install CleanROM. All went swimmingly until something was installed that didn't work for whatever the reason, CWM choked, device restarted, and I entered a bootloop. Thanks to the backup I had made, I was able to restore that and went back to a functional system - but still the same old ICS Bootloader.

Copy the Stock Root ODEX zip file to the microSD card. then in CWM, perform a Wipe Data/Factory Reset. This will clear off all data from the system so make sure anything you want saved is properly backed up. Go to "Install zip from sdcard", "Choose zip from sdcard", then select the Stock Root ODEX zip file and confirm. When it first starts the installation, it will appear to hang for some seconds. Just let it be and then magic will start happening.

After some time, it will finish its install and go back to the CWM menu. Select "Reboot system now" and go through the entire setup process because this update does more than merely update the bootloader. When that is done, we can now install any JB ROM we like - even the fabled Cyanogenmod. Just like before, merely copy the appropriate zip to the memory card, wipe the data, and install from sdcard.

Additional note, to go back to the stock OS, one can merely download the ASUS Firmware update, extract the zip file, take that internal zip file, place it onto the card, and install via CWM. Pretty handy!

1 comment:

  1. Thank you so much for explicitly describing the button press and release sequence for reboot into fastboot mode. I was going crazy and already expected to have BRICKED my TF700. You helped a lot!