Sunday, April 29, 2012

Rooting my Nook Simple Touch

Note: This post is mostly about my technical experience of rooting the Nook.  I'm planning to write a less technical post about actually having and using the device on my main blog sometime soon.

I recently got a Nook Simple Touch.  This device is running on Android 2.1 (Eclair) under the covers, and I wasted no time getting control of my device so that I could install my own apps and customize to my heart's content.
 First, I backed up the internal memory.  You should always back things up if you plan to mess with their innards in ways that could turn them into a brick.  In fact, that's exactly what I ended up doing.  Read on.

Here's a guide to backing up your Nook Simple Touch.

I ended up doing a Linux dd to write the nookie image to the MicroSD card, because I kept getting an error whenever I tried to do it from Windows 7 or Windows 8 preview, regardless of which tool I was using. 

Also of note:  the disk images produced by this backup method are 1.82 GB in size.  While you're not actively using the backup images, I recommend compressing them, since they're mostly empty space.  I was able to get the factory fresh image down to 237 MB by Zipping it up with 7-Zip.  I also tried the 7z format instead of ZIP, which got it down to 207 MB, but I just got 25 GB of free SkyDrive space to play with, and the compression took a lot longer to process.  As you add files to the Nook, the compressed size of the images will go up.

I'm going to say this again: BACK UP!  And back up your backup!

I had created my initial backup, and rooted it following this guide.  I had to track down my own copy of uRamdisk_rooted, since the link they provide is dead.  This method only gets you root, however; it doesn't install the Market or anything else, so this wasn't what I wanted. 

I then found this thread, which was exactly what I had been looking for.  I was at the step where it says to follow the on-screen instructions.  The instructions said to wait until the screen flashed black, remove the SD card, and reboot.  I did that, or at least, I did what I thought that meant.  It was really quick--too quick:  the screen immediately flashed black and back to white, and then it sat there for a while doing nothing.  This looked like a normal screen refresh, but was that it?  Spoiler: no. 

I had just bricked my shiny new Nook. 

Not to worry!  I had a backup.  I then proceeded to restore it to its factory-fresh state.  I booted the Nook to the nookie-flashed SD card, fired up Roadkil's Disk Image, and pointed it at the backup file and the Nook's drive, and clicked "Start".  All appeared to be going smoothly, until I realized that I was overwriting my only good backup with an image of a corrupted system!

Thankfully, that file was sitting in my Dropbox folder at the time, and had been there long enough for its 1.82 GB to have uploaded to the cloud.  As fast as I could, I moved the file out of my Dropbox folder, and then went online and restored the deleted file, and re-downloaded it.  I then copied it to my Linux box, and used that to copy the image back to the device using the dd command (since, as I mentioned, hitting "Start" with the correct settings in Windows only resulted in an error.).  (Actually, since my current Linux box only has USB 1.1, It was faster to copy the file to the media PC, boot that to a Linux LiveCD, and dd the image from that environment.)

After that, I re-initialized the device, updated its firmware from Barnes & Noble, and correctly followed the instructions to root it, creating several backup images along the way.  One annoying thing about creating backups is that in order to do so, you need to boot from the nookie-imaged SD card (which is different from the touchnooter image used to root it, and also different from the way the Nook sets up files on it during normal operation).  I only have three MicroSD cards: two of them are in Liz and my phones (and are therefore in use), and the remaining one is for the Nook.  There are no extras, so whenever I need to make a backup, I have to somehow preserve what's on the card (if it's valuable), flash it with the nookie image, create the backup, and then restore it to a semblance of its previous state.  I've considered getting another microSD card.  I've got my eye on a 32GB one for my phone, thus freeing up the current 8GB card and giving me lots more space for pictures, video, and music.  This has the disadvantage of being unnecessary in the strict sense, and possibly more trouble than its worth at the moment since I would need to wait for it to arrive, and so I'll still need to use the old method "this time".  That, and they keep getting cheaper, so I want to hold off.