[Galaxy S 4 i9505 Android Development] AfterForever666:
Ok - I'll elaborate a bit and explain my earlier experiences too.

1. The recovery.

Over time I've learned that this is an important factor for success. I used Philz before, but ran into problems with it (suddenly rebooting into recovery stopped working).

Since my galaxy S2 I had been using CWM without problems, so I decided to start using that again. I regularly check for updated versions on the official site here. Note that there is also an official "Touch" version now for CWM. (in fact today I'm a bit confused about the official site listing 6.0.3.6 as the latest for the I9505 whereas Philz is already updated to 6.0.3.7).

All this just to say that I'm using CWM Touch 6.0.3.6 and that I like to keep it up to date, especially cause I tend to flash AOSP/AOKP/MIUI/TW roms with different ICS/JB versions and having all kinds of bootloader support is important).

2. Clean Flash versus Dirty Flash

(Clean Flash = Wipe Data/Factory Reset, Wipe Cache, Wipe Dalvik in CWM before flash)

(Dirty Flash = Wipe Cache, Wipe Dalvik in CWM before flash)

I use the rule that I will *always* do a clean flash if I'm not just flashing a newer version of the ROM I have already installed.

I will decide to dirty flash a new version of my installed ROM based on the changelog of the new version. Still I'm always prepared for disappointment as "dirty" is really what is means. There may always be residues of the old ROM version causing conflicts. Dirty flashing *could* save you some time, but it often doesn't. So It makes sense to come up with a process that allows for clean flashing and getting your ROM back in shape with all its apps and data and customizations quickly (more on that later).

In any case : if I do a dirty flash for a ROM that has aroma options, I'll always select the exact same options as I did for the original flash. If you don't do that, you'll have a quite big change for collisons - espcially if there are quite some choices (like in FoxHound Aroma).

3. My process for clean flashing and getting my ROM in daily driver state again (specifically for FoxHound, but you can adapt)

In case I clean flash this is my process (all backups and zips to flash are on my external SD)

a. Make a nandroid backup

b. Backup mys SMS logs with SMSBackupRestore

c. Backup my call logs with CallLogBackupRestore

d. Backup my launcher configuration (launcher needs to support it of course)

e. backup my lockscreen configuration (launcher needs to support it of course)

f. Make a Titanium Backup of all my USER apps (backup app+data). I never backup system apps, since I consider it not safe to restore them.

g. Reboot Recovery

h. Wipe Data/Factory reset, then wipe cache, then wipe Dalvik Cache

i. Install zip from external sd -> select foxhound

j. In AROMA (from what I can remember and in no specific order - I don't have it before me)

Select option to do a wipe cache/wipe dalvik (remember we factory reset already in CWM, so that's not needed here)

Select Essential Rom (I never select MODS only when upgrading to a new version)

Select the Browser, SMS, Dialer,... of your choice

Select EXT4 support

Select Ausdim Kernel

Select Foxhound Themed

Select Foxhound Battery

Do not install JKAY

Do not select the boot time Query Optimization (I never saw a difference when I selected it, so why bother)

... maybe some I forgot

k. Reboot and go through basic setup + go through settings and set what you need (sound, display, developer options, air- and smart-stuff, security, ...). Also configure playstore to not auto-update.

l. Download 3Minit framework from FoxHound OTA

m. Reboot recovery

n. Wipe Cache + Wipe Dalvik

o. Install 3Minit Framework (the one downloaded from FH OTA !)

p. reboot

q. Install 3Minit Settings, Titanium Backup

r. tune the looks (status bar colors and notification panel colors - use FF33B5E5 as color if you want matching blue with Domination theme. If you've tweaked the colors before and you have a TB backup of 3Minit settings app and its data, then restoring that will get you your colors back too) and the behaviour of the ROM with 3Minit settings

s. Run Titanium backup and adapt the preferences (backup location needs to be to my external SD)

t. With Titanium backup, I restore all my user apps (apps+data) I previously backed up (remember - I only backup USER apps)

u. After the restore is finished, immediately reboot and grant SU permissions to appas that require it

v. Almost all user applications will function as when backed up. Some exceptions may be banking apps or apps accessing your an exhange account (exchange server keep track of mobile device-id's accessing it). You'll have to clear data for those and reconfigure them as your device-id has changed by flashing the new rom.

w. re-install the widgets on the lockscreen and the launcher (they are stale after the Titanium restore)

x. run adaway and configure

y. Restore sms-logs and call-logs with the apps mentioned earlier

z. if you use system mail app or gmail, you'll have to reconfigure them as they were not backup up as system apps. But I use Kaiten and that's backed up as a user app.

There are no more letters in the alphabet, but I think it ends here.

I don't do kernel tweaks or other "deep" stuff - but still with FH running Ausdim I get very good performance and and wonderful batterylife (about 3.7 hours screentime and then I'm at 10% battery left).

I hope this helps someone at least - took me long enough to type (if something else important crosses my mind I'll edit this post) :)