[Hero CDMA Android Development] theraginasian:
NOTE: This is a work in progress. While I have completed this guide myself SEVERAL times to ensure accuracy, It is possible that typos or errors in understanding exist. Please use at your own risk, and expect NOTHING from me. I will do my best to update this guide and improve the formatting as I find time. Feel free to leave feedback!

I cannot stress this enough: always have backups of any important information. While we may not be able to do full image-based backups until after root, you can still make sure we aren't deleting needed data. While yes, Google should hold your most important data and allow you to sync at any time, what would you do if Google went down? And I've even had trouble using the "Offline" function for some of the Apps. Therefore, Make a copy of everything on your SD card and read this excellent guide from Lifehacker about how to backup Google Apps data: Lifehacker

You will need an SD card. I recommend AT LEAST an 8GB Class 4. Most actually recommend a Class 6 for use with apps2sd, but I just wanted to let you know that it would still work with a Class 4. For those unaware, apps2sd allows you to save internal phone memory by placing after-market applications onto your SD card. Most users notice a speed benefit from this.

If you would like to purchase a Class 6 SD card, you can get a one here with three sizes available (4GB, 8GB, 16GB):

A-DATA MicroSDHC Class 6 Turbo With SD Adapter

To ensure the best possible load, perform a factory reset, and WIPE your SD card!

Menu > Settings > Security > Factory data reset > Reset phone > Erase everything

TRUE FACTORY RESET (UN-ROOT)

If you, like me, have already rooted and are trying to perform this process over again, you will unfortunately have to download the original ROM and flash it in Windows.

Download: RUU_Hero_C_Sprint_1.29.651.1_signed_release.exe

Run in Windows (I used XP through VMWare Fusion), and this will return the phone to the TRULY factory loaded state. Any other Factory data reset will simply reload the last ROM image saved, which, if you rooted and loaded MoDaCo, would be MoDaCo. I am encouraging you to follow this process to avoid any problems that may exist while the phone is rooted or loaded with the unofficial ROM. And even if you perform this process as a first-time rooter, it certainly wont hurt!

ROOT HERO [MAC]

(This is the process that allows modifications to occur on your phone):

The guide I follow and can verify is this:

Rooting CDMA Hero [Mac]

I do not use Windows as a primary platform, so I would recommend following this guide if you are on Windows:

How to root the CDMA Hero (DETAILED Windows guide)

You should be able to return to this guide after you have successfully completed the root process on Windows. Continue from the section "NANDROID BACKUP" below.

Per the purpose of this guide, I will detail my exact steps from the "Rooting CDMA Hero [Mac]" post. Thanks ajones7279!

Plug in your phone

Download Android SDK: http://developer.android.com/sdk/index.html

Unpack, Rename the extracted folder to "AndroidSDK" (This is case sensitive!), and Move it to "Applications" (I consider the Android SDK a set of applications.)

Open TextEdit, Click Format>Make Plain Text, then copy and paste the following:

export PATH=${PATH}:/Applications/AndroidSDK/tools

Save as: ".bash_profile"

On Phone: Go to Settings > Applications > Development>USB Debugging and make sure the option is checked.

On your Mac: Download asroot2: http://zenthought.org/tmp/asroot2

Save this file into: /Applications/AndroidSDK/tools

Open Terminal and run the following commands (You can copy and paste):

cd /Applications/AndroidSDK/tools
adb push asroot 2 /data/local
adb shell chmod 0755 /data/local/asroot2
adb shell
/data/local/asroot2 /system/bin/sh
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su
chmod 4775 su
exit
exit

At this point, the phone has root access.

Download: http://rapidshare.com/files/303797523/recovery-RA-heroc-v1.2.3.img

Save this file into: /Applications/AndroidSDK/tools

Go back to your terminal and type:

adb push recovery-RA-heroc-v1.2.3.img /sdcard/
adb shell
su
flash_image recovery /sdcard/recovery-RA-heroc-v1.2.3.img
exit
exit
adb shell reboot recovery

Now, the phone will reboot into recovery mode. To preserve our freshly rooted state, we will make a Nandroid backup.

NANDROID BACKUP

*NOTE: These steps assume that you have already entered Recovery Mode on the phone through Terminal "adb shell reboot recovery" or the "Quick Boot" app.*

On phone: Using the trackball, scroll down and select "Nandroid v2.2 backup". This will create a backup of the phone in its freshly rooted state to your SD card, under the nandroid directory.

After it completes the backup, we want to make sure that we have the backup "backed up" by copying it to our Mac (Just in case anything happens to the SD card!).

Select "USB Mass storage on"

After your SD Card appears, copy the contents of the "nandroid" folder to anywhere you wish on your Mac (You are using Time Machine right?)

Once the copy is complete, eject the sdcard in mac and select "USB Mass storage off" on the phone.

NOTE: Nandroid does not backup the contents of your SD card. If you don't want to lose what's on your SD card, MAKE A BACKUP COPY!

From this point forward, if you do something that seems to really mess with the phones functionality, you can simply go back to your Nandroid backup!

RESTORE NANDROID BACKUPS

Select "Nandroid v2.2 restore" *THIS WILL ERASE EVERYTHING ON YOUR PHONE*

Your phone will be returned to the condition it was in as of the last Nandroid backup. You can control which backup is restored by deleting the unwanted, time-stamped folders within the "nandroid" directory on your SD card. If you leave only one time-stamped backup folder, that is the backup that will be restored.

Note that this will leave the custom Recovery ROM we loaded (recovery-RA-heroc-v1.2.3.img) in place.

I actually perform a Restore after every Backup. While this takes extra time, you know your Backup is intact and not corrupted in any way!

If you are looking for a complete factory reset, you will need to scroll up to "TRUE FACTORY RESET (UN-ROOT)"

PREPARE SD CARD FOR APPS2SD (A2SD)

For those unaware, apps2sd allows you to save internal phone memory by placing after-market applications onto your SD card. Most users notice a speed benefit from this.

Select "Wipe SD: fat32+ext2+swap" *THIS WILL ERASE EVERYTHING ON YOUR SDCARD*

Select "USB Mass storage on"

The mounted drive should now be empty. Double-check that it was partitioned correctly by opening Disk Utility and verifying 3 partitions on the sdcard: NONAME, disk1s2, and disk1s3. Close Disk Utility.

LOAD Unofficial MoDaCo 1.2c Core ROM

Forum Post: Unofficial MoDaCo 1.2

Download: Unofficial MoDaCo 1.2c Core

Save this file into: your SD card. (the root of your SD card, probably named "NONAME" if you didn't change it. You can change it to whatever you want though.)

Save the file as: "update.zip" (Or rename it)

Eject your sdcard and Select "USB Mass storage off"

Select "Apply sdcard:update.zip"

Select "Reboot system now"

If it successfully loaded, you now have a fresh load of the Unofficial MoDaCo 1.2c ROM! Congrats!

I would recommend that you create another Nandroid backup. Scroll back up to "NANDROID BACKUP" and follow the steps over again and come back to this point.

Now you are ready for the workarounds!

Guide: Workaround Issues (Unofficial MoDaCo 1.2c)