So one of my friends bought a nook color this past week and I had a chance to play with it. I fell in love. Then once I found out ebay was having a $50 off special, I HAD to pull the trigger. I received it yesterday. It lasted all of about an hour before rooting.

I first updated to 1.1.0 at B&N’s nook site. Then I downloaded AutoNooter (http://forum.xda-developers.com/showthread.php?t=942424) and performed that. Once I was rooted I proceded to install the Kindle app along with some other niceties like ADW Launcher Ex.

I then had to try out HoneyComb (Android 3.0). This was as easy as downloading the SD Card Image (http://forum.xda-developers.com/showthread.php?t=936995) and dd’ing it to my card. Then sticking the card into the NC (NookColor).

I also installed ClockworkMod Recovery. In my rooted Stock NC Rom, I installed Rom Manager and used that to install the Recovery to “Nook Color” (not the OLD one).

Well I couldn’t leave well enough alone. I wanted to try out CM7 Nightlies without wiping my stock image. I didn’t go to bed till almost 5am … but I now have a procedure for installing cm7 AND honeycomb on the same sd card.

These instructions are very much experimental and YOU PERFORM THEM UNDER YOUR OWN RISK. I AM NOT RESPONSIBLE IF YOU BRICK YOUR NOOK COLOR.

Prereqs:

  • gingerbread google-apps update zip (if you can’t find it, you shouldn’t be doing this)
  • cm7 nightly update zip (ditto)
  • uboot-mkimage installed
  • Linux machine w/root access
  • 2 to 8GB sd card
  • adb communication with NC

Procedure:

  1. You first need to flash the honeycomb sd image to your sd card.
    1. You may be able to skip this step and copy them from the image if you can get losetup to create the block devices with offsets
    2. See “Accessing Specific Partitions in the Image” at http://wiki.edseek.com/guide:mount_loopback
  2. Mount partition 1 (vfat) and copy “uImage”, “uRamdisk”, “mlo”, “u-boot” somewhere safe
  3. DD partitions 2 and 3 somewhere save
dd if=/dev/mmcblk0p2 of=HC_Partition2.img bs=1M
dd if=/dev/mmcblk0p3 of=HC_Partition3.img bs=1M
  1. Partition your sd card:
    1. Delete all partitions
    2. Create a new primary partition 1. The size should be approx all but 2GB of the sd card (at least 64MB). Once created, ensure the number of blocks does not have a + after it. otherwise delete and change the cylinders by 1.
    3. Create primary partition 2. The number of cylinders should be 84
    4. Create primary partition 3. The number of cylinders should be 84
    5. Create an extended partition with the remainder of the drive
    6. Create a logical partition, 84 cylinders
    7. create a logical partition, 84 cylinders
    8. create a logical partition, remainder of drive
    9. The size of partition 2 and 3 should be “682762+” blocks, and 5 and 6 should be “682731” blocks
      1. Change type of partition 1 to “c” (Win95 FAT32 (LBA)”) (‘t’ then ‘1’, then ‘c’ commands)
      2. Make partition 1 bootable (‘a’ command)
      3. My partition table:
Device Boot      Start         End      Blocks   Id  System
/dev/block/mmcblk1p1   *           1         637     5116671   c Win95 FAT32 (LBA)
/dev/block/mmcblk1p2             638         722      682762+ 83 Linux
/dev/block/mmcblk1p3             723         807      682762+ 83 Linux
/dev/block/mmcblk1p4             808         992     1486012+  5 Extended
/dev/block/mmcblk1p5             808         892      682731  83 Linux
/dev/block/mmcblk1p6             893         977      682731  83 Linux
/dev/block/mmcblk1p7             978         992      120456  83 Linux
  1. format partition 1: mkfs.vfat -F 32 -n boot /dev/mmcblk0p1
  2. Format partitions 5,6,6: mkfs.ext4 -m 0 /dev/mmblk0p5;mkfs.ext4 -m 0 /dev/mmblk0p6;mkfs.ext4 -m 0 /dev/mmblk0p7;
  3. DD Honeycomb partitions back
dd  if=HC_Partition2.img of=/dev/mmcblk0p2 bs=1M
dd  if=HC_Partition2.img of=/dev/mmcblk0p3 bs=1M
  1. Mount partition 1
  2. Copy the the mlo file you saved to partition 1
    1. Copy uImage to partition 1 but rename it uAltImg
    2. copy uRamdisk to partition 1 but rename it uAltRam
    3. Download the Boot Menu for nook color (http://forum.xda-developers.com/showthread.php?t=962708)
    4. Unzip and copy u-boot.img to “u-boot” to partition 1
    5. Download kernel and recovery-clockwork-[version]-encore.img from http://forum.xda-developers.com/showthread.php?t=971197
    6. Copy kernel to partition 1, rename to uRecImg
    7. Copy recovery-clockwork-[version]-encore.img to partion 1, rename to uRecRam
    8. umount partition 1
    9. put your SD card into your nook and reboot
    10. you should see a boot prompt to press any key within 5 seconds, do so
    11. Change to SD and recovery and boot – verify clockwork mod start
    12. Reboot
    13. Press key at boot menu and change to SD and Alternate and boot. should start honeycomb
    14. Now for the fun stuff modifying a CM7 image to install onto and boot from sd card
    15. Change install:
      1. mkdir cm7
      2. cd cm7
      3. unzip
      4. Edit META-INF/com/google/android/updater-script
        1. Change mmcblk0p5 to mmcblk1p5 (in script twice)
        2. Change mmcblk0p6 to mmcblk1p6
      5. cd ..
    16. We’ve updated the install, now we need to update the boot (unpack, edit, and repack the ramdisk)
      1. mkdir rd
      2. dd if=cm7/ramdisk.img of=ramdisk.gz bs=64 skip=1
      3. gunzip ramdisk.gz
      4. cd rd
      5. sudo su
      6. cpio -H newc -ivd < ../ramdisk
      7. Edit init.encore.rc
        1. Change mmcblk0p5 to mmcblk1p5
        2. Change mmcblk0p6 to mmcblk1p6
        3. Change mmcblk0p7 to mmcblk1p7
      8. find . -regex “./.*” | cpio -ov -H newc | gzip ../repacked-ramdisk.cpio.gz
      9. exit root shell
      10. cd ..
      11. mkimage -A ARM -T RAMDisk -n Image -d repacked-ramdisk.cpio.gz cm7/ramdisk.img
    17. Repackage zip:
      1. cd cm7
      2. zip -r ../cm7-sd.zip *
    18. Mount partition 1 and copy cm7-sd.zip and gapps.zip over
    19. Boot into recovery rom (CWM)
    20. READ READ READ – the next step is VERY IMPORTANT
    21. Prior to flashing you need to update fstab to point to the sd card – YOU MUST DO THIS OR YOU COULD MESS UP YOUR INTERNAL IMAGE!!
      1. adb pull /etc/fstab fstab
      2. Edit fstab
      3. change partitions
      4. Boot should be mmcblk1p1
      5. cache should be mmcblk1p7
      6. data should be mmcblk1p6
      7. system should be mmcblk1p5
      8. sdcard should be mmcblk1p1
      9. sd-ext should be mmcblk1p2
      10. (it may be possible to repack the clockwork mod ramdisk to have these changes, just follow the repacking ramdisk instructions but use the uRecRam image)
    22. Flash cm7-sd.zip
    23. Without rebooting flash gapps.zip
    24. Reboot. If you did everything you should boot into the CM7 nightly.
    25. Congrats, you now have CM7 and Honeycomb booting off the same SD card.

Things I know that might be broken:

  • Google Maps.
    • You can get this to work by editing /system/build.prop and changing the ro.sf.lcd_density to 161
  • Market list of installed apps
    • Once you get maps working:
    • Go to manage applications in settings
    • Select the market, uninstall the update
    • Delete the data on ”Google Services Framework”
    • reboot
  • Clockwork Backup (it will try to back up sd-ext which is Honeycomb system’s partition)

Still haven’t added root to my honeycomb – but that should be easy – http://forum.xda-developers.com/showthread.php?t=941445