Congratulations to Cicadaman & co. for getting Froyo running on the Nook Color! Visit the nook Color portal!
See Rooting new hardware FIRST if you have a nook original with a 1003* serial# or above.

SD Card Restore

From nookDevs

Jump to: navigation, search

If you have messed up your System SD Card and need to re-create it from scratch (or if you have a cutout and want to make a fully working backup System SD Card) you can use the script below (courtesy of JesusFreke) to re-create the System SD Card.

Contents

Requirements

  • As tested -- Ubuntu/Perl, might work in Mac OS X/Perl or Windows/Perl/dd installed
  • A non-SDHC card you want to restore to (this script does not support SDHC cards!)
  • B&N 1.0.0 image (links can be found at the Softroot page) named signed_bravo_update.1.0.0.dat
  • Previously backed up 64k block of data from the original System SD Card, which you can back up using the command below:
    dd if= of=serial.img bs=1024 skip=1791591 count=64

Script

#!/usr/bin/perl
use strict;
 
#requirements: signed_bravo_update.1.0.0.dat
#serial.img - a 64k block of data from the original sdcard. dd if= of=serial.img bs=1024 skip=1791591 count=64
 
my($sd_size) = shift;
 
if ($sd_size <= 0 || ($sd_size % 1024) != 0)
{
    die "usage: new_image.pl ";
}
 
#1015808000
 
 
`tail -c +153 signed_bravo_update.1.0.0.dat > update.tar.gz`;
`tar -xf update.tar.gz`;
 
 
my($offset) = ($sd_size/1024) - 139673;
`dd if=serial.img of=new.img bs=1024 seek=$offset count=64`;
$offset += 64;
`dd if=serial.img of=new.img bs=1024 seek=$offset count=64`;
 
$offset = ($sd_size/1024) - 139545;
`dd if=Firmware_Update/turboboot.img of=new.img bs=1024 seek=$offset`;
 
$offset = ($sd_size/1024) - 135449;
`dd if=Firmware_Update/bravo_update.dat of=new.img bs=1024 seek=$offset`;
 
$offset = ($sd_size/1024) - 281;
`dd if=Firmware_Update/u-boot.bin of=new.img bs=1024 seek=$offset`;
 
$offset = ($sd_size/1024) - 9;
`dd if=Firmware_Update/u-boot.bin of=new.img bs=1024 seek=$offset count=8`;
 
 
$offset = ($sd_size/1024) - 1;
`dd if=/dev/zero of=new.img bs=1024 seek=$offset count=1`;
 
 
my($last_partition_end) = (($sd_size/1024) - 140000) * 2 - 1;
 
 
system('echo "n
p
1
2
512001
n
p
2
512002
819201
n
p
3
819202
3500263
$last_partition_end
w
" | fdisk -u -C 30176 -H 64 -S 2 new.img');


How to Use

This script is known to work in Ubuntu. It supports non-SDHC cards only!

  1. Copy the code above into clipboard and then save it on disk as new_image.pl.
  2. Make sure this file is executable (chmod +x new_image.pl).
  3. Make sure that the B&N 1.0.0 image is called signed_bravo_update.1.0.0.dat and located in the same folder as the new_image.pl script.
  4. Now you need to find out exact size of your SD Card in bytes.
    On Linux you can use fdisk ("fdisk -l /dev/sdb", replace sdb with your drive).
  5. Now you need to run script with card size as an argument. For example:
    ./new_image.pl 1977614336
  6. This script then will create the image called new.img which you can roll onto your SD card using the following command:
    dd if=new.img of=


Important Notes

  • Please be advised that after you restore this image like that, your nook will go to the "applying system updates" screen and then reboot (without doing anything), 6 times, and then it will do the factory fall-back procedure. Only after that it will then finally boot up normally.
  • The 64k block of data which needs to be backed up from the original System SD Card contains device specific information, the serial, an RSA private key, and some other stuff. If the serial number is faked you will most likely be unable to register your nook.
Views
Personal tools
  • Log in / create account
Navigation
nookDevs Team
miscellaneous
Toolbox