[Fascinate Android Development] bobloblaw1:
First off, all credit should go to imnuts for this. With his permission, I have copied his guide from the Droid Charge forums and tweaked it slightly to apply to the Fascinate and added some notes. Also, I'd like to thank vegitoss who helped me figure out partitions I was having trouble with.

This will allow you to backup your system and create custom Odin images for restore purposes. I would still recommend that you try to do a nandroid or titanium backup first. Don't bring out the big guns unless you need them.

The goal here is to produce a .tar.md5 file that is flashable in Odin based on your current ROM install. The .tar.md5 files are .tar files with the md5 checksum added to the end of the file. If you attempt to flash a .tar.md5 file, Odin will automatically check that the contents are what they should be before flashing and proceed with the flash if the md5 is valid, otherwise it will stop.

In Odin, you should use the PDA button for all flashing. The PIT button may be used as well, if we can get a valid .pit file for the device, but for now, PIT won't be used either. Other than PDA, Start/Reset are the only other buttons you need to worry about.

Now, on to creating the backup files. First, you will need your device to be rooted (perm or temp root will work), and you also need to have access to terminal on the phone, either via an emulator or adb shell access. To create the backup files, you won't need a Linux/UNIX system, but you will if you want to create a flashable Odin package.

The following will output the files on the root of the SDCard, adjust the "of=" path if you want them somewhere else. It will also create the files for the proper filename for Odin as well. So to create the files, here are the commands you will use from root shell (#):

System:

dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096

Kernel:

dd if=/dev/block/bml7 of=/sdcard/zImage bs=4096

Recovery:

dd if=/dev/block/bml8 of=/sdcard/recovery.bin bs=4096

DO NOT INCLUDE THE FOLLOWING IN ANYTHING BUT A PERSONAL BACKUP

Cache:

dd if=/dev/block/stl11 of=/sdcard/cache.rfs bs=4096

DBData:

dd if=/dev/block/stl10 of=/sdcard/dbdata.rfs bs=4096

Data:

dd if=/dev/block/mmcblk0p1 of=/sdcard/movinand.bin bs=4096

The last three files (cache, dbdata, data) may contain personal information, so do not include these 3 files in anything but a personal backup/recovery package.

To create a flashable Odin package, you need to pull all of the files off of the phone/sdcard and onto your computer. From there, you use the following to create the package:

tar -H ustar -c factoryfs.rfs recovery.bin zImage > package_name.tar
md5sum -t package_name.tar >> package_name.tar
mv package_name.tar package_name.tar.md5

]If you want to include cache/dbdata/data in the above for personal use, just add them after the "-c" and before the ">".

There are other files that may be in Odin packages, but they are protected by Samsung and cannot be dumped properly. The files are the bootloader, secondary bootloader, modems, and .lfs partitions. The files would be boot.bin, Sbl.bin, modem.bin , and param.lfs. It however isn't that big of an issue that these can't be dumped as the can't really be altered by normal flashing of the device, and are usually only altered via OTA updates.

Some additional notes:

* You can skip the process of making a .tar.md5 and just use heimdall for everything except your user data (if anyone knows how to do this please let me know and I will edit it in.)

* Be sure you have at least 2GB free on your SD card if you plan to include personal data.

* If you need help in using Odin/Heimdall, I'd recommend you read DaleV's great guide here. In fact, I recommend you read it regardless as it's a good refresher.