Freeing a Nook Tablet from the bonds of slavery.

So, my wife has a Nook Tablet. I bought it for her a little under 2 years ago as a gift, and she loves it. She's a big reader, and this thing has done a great job of feeding her addiction. Over the time she's owned it, she's asked me to install certain apps on it, some of which we just plain couldnt. See, the Nook is an android tablet, but it's extremely limited. It doesn't have the standard Android Play Store. And it wont let you install any apps not signed by Barnes and noble. Which is a shame, its a decent device otherwise. I've kept my hands off of it thus far, but tonight, were going to attempt to free it from its opression.

I have owned a number of android devices over the years. Every one of them was quickly rooted, and replaced with CyanogenMod. My incredible ran CM7, my Droid4 got CM9, and then CM10, and my curent Galaxy Nexus and Nexus 7 are both running CM10.1. So, I'm going to try to install CM10.1 on an SD Card, and then boot the Nook Tablet from it. This is nothing new, others have done it already, and I'm just following in their footsteps.

I'm using this XDA thread as a guide.

I'm going to attempt to do all of this from linux (surprise!), even though the guide is written for Windows.

Partition your SD card

I'm using gparted to create the partition table on the sd card. The howto said to create 4 partitions, in this order.

boot - 512M fat32 (bootable)
system - 512M ext4
data - 2GB ext4
sdcard - fat32

My 16gb sd card ended up with:

[war@kenshin ~]$ sudo fdisk -l /dev/sde 
[sudo] password for war: 

Disk /dev/sde: 15.9 GB, 15931539456 bytes, 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00024119

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1   *        2048     1050623      524288    b  W95 FAT32
/dev/sde2         1050624     2099199      524288   83  Linux
/dev/sde3         2099200     6293503     2097152   83  Linux
/dev/sde4         6293504    31115263    12410880    b  W95 FAT32

Populate the SD card

boot

Download the boot image here.

Then decompress the archive

[war@kenshin nooktablet]$ unzip ~/Downloads/boot.zip 
Archive:  /home/war/Downloads/boot.zip
   creating: boot/
  inflating: boot/flashing_boot.img  
  inflating: boot/flash_fix_recovery_bootloop.zip  
  inflating: boot/MLO                
  inflating: boot/recovery.img       
  inflating: boot/u-boot.bin      

Now, we need to copy MLO, u-boot.bin, and flashing_boot.img to boot.

[war@kenshin nooktablet]$ mkdir mnt
[war@kenshin nooktablet]$ sudo mount /dev/sde1 ./mnt
[sudo] password for war: 
[war@kenshin nooktablet]$ sudo cp boot/MLO boot/u-boot.bin boot/flashing_boot.img mnt/
[war@kenshin nooktablet]$ 

Now, download from cm_acclaim_10.1_[ddmonthyear]_HD_SDC.zip and gapps-jb-20130301-signed-SDC.zip here. Theyre toward the bottom of the page, listed as the sdcard version of the rom.

Put both of these files on boot as well.

[war@kenshin nooktablet]$ sudo cp ~/Downloads/gapps-jb-20130301-signed-SDC.zip ~/Downloads/cm_acclaim_10.1.0_29JUN2013_HD_SDC.zip mnt/
[sudo] password for war: 
[war@kenshin nooktablet]$ ls mnt
cm_acclaim_10.1.0_29JUN2013_HD_SDC.zip  gapps-jb-20130301-signed-SDC.zip  u-boot.bin
flashing_boot.img                       MLO

Now, decompress cm_acclaim_10.1.0_xxx_SDC.zip, we need to grab the boot.img and recovery.img.

flashing_boot.img                       MLO
[war@kenshin nooktablet]$ unzip mnt/cm_acclaim_10.1.0_29JUN2013_HD_SDC.zip 
Archive:  mnt/cm_acclaim_10.1.0_29JUN2013_HD_SDC.zip
signed by SignApk
  inflating: META-INF/com/android/metadata  
  inflating: META-INF/com/google/android/update-binary  
  inflating: META-INF/com/google/android/updater-script  
  inflating: boot.img                
  inflating: recovery.img            
  inflating: system/addon.d/50-cm.sh  
  inflating: system/addon.d/blacklist  
  inflating: system/app/Apollo.apk   
  inflating: system/app/ApplicationsProvider.apk  
  inflating: system/app/BackupRestoreConfirmation.apk  

... snip ...

  inflating: META-INF/MANIFEST.MF    
  inflating: META-INF/CERT.SF        
  inflating: META-INF/CERT.RSA       
  inflating: META-INF/com/android/otacert  
[war@kenshin nooktablet]$ ls
boot  boot.img  META-INF  mnt  recovery.img  system
[war@kenshin nooktablet]$ sudo mv boot.img recovery.img mnt/
mv: failed to preserve ownership for ‘mnt/boot.img’: Operation not permitted
mv: failed to preserve ownership for ‘mnt/recovery.img’: Operation not permitted
[war@kenshin nooktablet]$ 

Boot now looks like this:

[war@kenshin nooktablet]$ ls mnt
boot.img                                gapps-jb-20130301-signed-SDC.zip  u-boot.bin
cm_acclaim_10.1.0_29JUN2013_HD_SDC.zip  MLO
flashing_boot.img                       recovery.img

Boot from the sd

Now, eject the sd card, and put it into the nook tablet. BN has hidden the sd card slot in a little door behind that silly loop at the lower left of the tablet.

To boot from the sdcard, do the following.

Power off the Nook Tablet, by holding the power button, and selecting power off.

Once the screen is black, plug the Nook Tablet into AC power using the stock adapter and cable.

The device will start to power on, on its own. A logo for CyanBoot will come up, when it does, press and hold the N button on your Nook Tablet.

You'll get a boot meny, select SDC recovery. Vol up/down to select, and the n button to activate.

Once in recovery, you need to install the rom, and gapps.

Select install zip from sd card, and browse for the cm_acclaim_10.1.0_29JUN2013_HD_SDC.zip, let it install.

Then do the same for gapps-jb-20130301-signed-SDC.zip

Once its done, power the device off by holding the power button.

Boot CM10

Now, we should be good to go.

Unplug the power, and plug it back in, the boot process should start again.

This time, press and hold n at the cyanboot, and select boot from SDC instead of SDC recovery

CM will now boot up, as you'd expect it to.

And, here it is!

Booting for daily use

So, you're about to ask me, do i really need to plug in my tablet every time i want to boot it up?

No, you dont, turns out that as long as the sd card is in there, it'll by default boot off of the sd, and give you the option to get intot cyanboon. It boots cm10 by default, and you can boot it off of the internal nook standard storage by holding the n, and selecting internal boot.

Observations

The rom installed in this tutorial is not stock CM10. I'm going to look into that.