All the information in all the websites still seem insufficient for a ever-changing ever-upgrading device where apple and jailbreakers are playing a sort of an arms-escalation scenario.
So, here's my experience for the benefit of a small segment that may be in the same boat.
By no means am I an expert at this, but I stumbled through it and it worked.
Inventory:
- Iphone 3GS with 4.0 (as it was when purchased)
- Jailbreakme 2.0 was used to previously jailbreak the phone
- Iphone firmware ipsw file download 4.3.3 (if you search you will find it fairly easily)
- Windows 7 is on the machine I did this.
- TinyUmbrella software
Step 1: Connect your iPhone
Like everyone says, backup. I am not sure if a restore would have worked, but it gave me a bit more comfort to make a backup of the backup.
Backups are here (on windows 7):
C:\Users\\AppData\Roaming\Apple Computer\MobileSync\Backup
Step 2: Launch firmware upgrade
Click on the iPhone in iTunes which will list all the details of the connected iPhone
Note: When I launched iTunes it said only 4.1 was available as a download. However, this is irrelevant since we can force it to load a specific version of the firmware.
Next, hold the SHIFT key down and click on upgrade.
This will launch a file chooser where you can now select the 4.3.3 IPSW file.
This step failed for whatever reason for me.
I then tried the restore instead of upgrade and using the same SHIFT key method I selected the 4.3.3 IPSW file and the restore went without a glitch.
The result was that I had an upgraded iPhone with all my data and settings.
Step 3: Jailbreakme again!
Point your safari browser to jailbreakme.com and let cydia install.
Step 4: Add your favorite apps back.