Here's my experience getting to 4.0.4 on a white i9020a. A little bit more of a headache than I would have liked but nonetheless, I have it running smoothly AND I kept ALL of my data, messages, settings, etc.
I got my 9020a back in July and I believe had messed with some settings that caused it to go into a constant reboot. Basically I ended up flashing the wrong GRI54 (the one for the 9020T) and that eventually got updated to GRJ22 2.3.4.
From July until December I was stuck on 2.3.4 as I kept on trying to apply the 2.3.6 update for the 9020a and kept getting error status 7 using both stock and CWM. I had given up. Then in late December I received a brief notification to update to 4.0.3 and that update failed (also status 7).
Last week I got tired of 2.3.4 and thought about trying the full update for the 9020T thinking that maybe I had a 9020T ROM. It worked without a hitch and literally 10 minutes later I was up and running on 4.0.3 from here (http://forum.xda-developers.com/show....php?t=1398186
). I flashed the XXKB3 radio from the radio thread via fastboot and was sitting pretty. The battery life was horrible and KB3 had issues maintaining a signal.
Today, I downloaded the 4.0.4 file from here: (http://forum.xda-developers.com/show....php?t=1569116
) and tried to apply it via both stock recovery and CWM and both failed with the dreaded status 7 error. Here's what I did to get it working on the 9020a from 4.0.3
1. Backup EFS folder to a secure location.
2. Download and place the full ROM for 4.0.3 from the above thread on your SD card.
3. Download and place the update for 4.0.4 from the above thread on your SD card.
4. Download the radio UCKE1 from the thread here and place on SD card: (http://forum.xda-developers.com/show....php?t=1116884
5. Install CWM (I used CWM touch)
6. Boot into CWM and install from SD card. Install the full version of 4.0.3 (works even if you are currently on 4.0.3. This will make you stock again.)
7. Before allowing your new 4.0.3 to boot, go back into CWM.
8. Go to install zip from SD card again and install the 4.0.4 build. It should show you that it's patching the existing setup.
9. Once 4.0.4 has installed, restart the phone and allow it to boot.
10. Make sure CWM is installed and boot back into CWM.
11. Apply zip from SD card and apply the zip for UCKE1. UCKE1 was the only radio that gave me signal on AT&T. If you dont have signal, delete the contents of your /EFS folder and then replace them from your EFS backup.
12. Use your favorite rooting method to regain root. I used the 1 click method from here: (http://forum.xda-developers.com/show....php?t=1544940