Thumbs up Complete guide from S-On to S-Off to Root and customizations!

I've been asked many a times on what needs to be done.. let me try to put together one post for how you go from S-On to S-Off to custom ROM.

Before we start, a disclaimer.. proceed with caution.. do this at your own risk. Though I must say, I've tried Steps 1-8 myself and they've worked for me. #9 is something I've not done yet.

1) Follow the steps nikhil007mmus provided for S-Offing your phone

2) If you're having trouble and you're on an Asian ROM (yes, we've been known to have issues), my post on how to move to the Optus ROM and get S-Off

3) If you have S-Off already, did you get CWM?
If you have no idea what CWM (ClockWorkMod) is, I'd like to quote l0st.prophet from Rooting Incredible S - AlphaRevX in Public Beta
Quote:
Originally Posted by l0st.prophet View Post
Bootloader a.k.a HBoot - This is the piece of software that runs before anything else on the phone. It basically packages it all up, tells what to run in what order e.t.c Every computer device has a bootloader in some form or another, be it an Android Phone, iPhone, Windows PC, iMac e.t.c. The HBoot is accessible by switching your phone off, then holding down volume down as you turn it back on. The first line of the HBoot will tell you if you are S-OFF or S-ON.

Recovery - The recovery is the piece of software that allows us to write files to partitions while they aren't being used. It is the portal to allow us to flash custom ROM's and kernels. There are custom recoveries with more options than the stock such as ClockworkMod.

Superuser a.k.a su or Root - This is a user that is present on all linux distros that allows higher permissions than standard users have access to. Certain apps need superuser permissions to function, such as Titanium Backup.
You need to follow the instructions from [Info] After AlpharevX: install Clockworkmod, root & more which tells you to get the PG32IMG.ZIP for CWM, put it in your goldcard SD, go to HBOOT and have it installed as you recovery. On your next boot you can remove the zip file. You now have CWM!

Having trouble installing CWM and need a more detailed tutorial? Read this!

4) Want root? Go back into HBoot and then recovery (you can only go there if you have deleted PG32IMG.ZIP else HBOOT will automatically start the installation again.. so please make sure you've deleted the zip post installation) and you can install the "su" zip from SD card. Once you do that, you have root! Check by going back into your OS and seeing if there is a "Super user" application in your menu. If you do, congrats! If not, rinse and repeat
Of course, once you're done, you can remove the zip from your memory card.. you don't need it post installation

5) Did you create a backup? If you screw up, you need a recovery to go back to.. a snapshot of your system to do put back in. Doing it is simple.. if you have a memory card with enough space, simply boot into CWM and tell it to backup. Note: this will take quite some space.. mine too 500-600 MB.

6) Want a custom ROM? Did you create a backup? If not, go to step 5.
For the custom ROM, I went for Android Revolution HD. Make your choice
Download your ROM, read the instructions.
For the Android Revolution HD, I needed to update my CWM to an ext4 supported version. So I took the newest zip and installed it (just like the su script.. go to CWM, install from zip, navigate to file and install). Now you have the updated CMWR with EXT4 support!
Once you boot into the updated CMW, you can install the zip for your ROM. 3 minutes later, you are ready to use your new ROM

Note: Android Revolution HD asks for you to do a full wipe if you're coming from another custom ROM/stock ROM. I ran a wipe on my main memory for that.

Want addons too? If you want the No-Sense++ script or Sense 3.0 scripts, get them, put them on your SD, go back into CWM and install the zip Can it be any simpler?

7) I want custom boot animations! There are a bunch of them in the second Android Revolution HD post. A simple search revealed 2 more great posts with boot animations [BOOT ANIMATION] The Droids and [Boot Animation] Android Particle Ring (GB GREEN, Honeycomb BLUE, CM CYAN, Droid RED)
Pretty straight forward, I used ADB to do the following steps
Quote:
adb remount
adb push bootanimation.zip /data/local/bootanimation.zip
I actually have a folder with ADB (exe and dll), fastboot, nbimg.exe (for #8) and have created batch scripts to push these files. Of course, this script works only when bootanimation.zip exists in the same folder and you have USB debugging enabled on your phone (Settings > Applications > Development > USB debugging enabled)

8) Want your own splash screen as well? There is a nice tutorial in [HOW TO] HTC Desire Custom Splash screen which works perfectly even on our device.
Here's my quick deployment script for this one..
Quote:
nbimg -F splash1.bmp -w 480 -h 800
move splash1.bmp.nb splash1.img
fastboot flash splash1 splash1.img
There is an automated tool to do this as well (refer: [UTILITY]Android Flasher(Rec,splash,Radio,HBOOT,bootanim)(USB-Brick FIX)(12/06/11)) but I'm not a fan.. I took the adb and fastboot files from the Android Flasher zip though

9) [UNTESTED] There is a way to have a custom shut down animation too.. I've not tried it yet but I'll link you guys to it anyway.
[CAB][LEO][6.5|6.5.x] ShutDown Animation
I'm not sure if this would even work for us.. Haven't looked into it at all yet.. all prior steps do work, of course, because I've gone through them

So you've gone from Stock OS S-On -> S-Off -> Root -> custom ROM -> addons -> custom bootanimation -> custom splash screen.
Hope you found this helpful Feel free to hit thanks though I did nothing more than type out/compile links based on need 8-)
You really should thank the people I've linked to if what they said works for you
public Device getDevice() {
....if (device == null) {
........device = new Device(DeviceManager.GOOGLE_NEXUS_4);
........device.setAndroidOS(("4.2.1");
........device.setBuildNumber("JOP40D");
........device.setRadio("M9615A-CEFWMAZM-2.0.1700.33");
........device.setKernel("3.4.0-perf-ge039dcn");
........device.setSecurity(Security.ON);
........device.setRoot(false);
....}
....return device;
}