With the release of the new JailbreakMe.com 2.0 (Star) Jailbreak, it is now possible to upgrade any iDevice that supports it to iOS 4.0.1 and then jailbreak simply by visiting JailbreakMe.com in MobileSafari and sliding to jailbreak. The iPhone 3G and 3GS can be unlocked with ultrasn0w 0.93. The iPhone 4 unlock will be released in a day or two.
Please Note: It is still advisable for old-bootrom 3GS users with 3.1.2 or lower SHSH on file to use PwnageTool to upgrade so that they can remain "on the jailbreak train," ensuring their ability to upgrade to future versions while preserving the ability to unlock. I have updated the Decision Tree to reflect this:
Correction: the updated version of ultrasn0w for iPhone 4 mentioned in this chart has not yet been released, but is expected very soon.
Now that iOS 4.0 has been released, this board is being flooded with questions about the proper way to upgrade while preserving your ability to jailbreak and unlock. I have created this guide to answer those questions and provide a pre-emptive warning to people looking to upgrade to 4.0.
1. Where can I find reliable information on how and when to upgrade?
There are only three sources I would trust for reliable information on how and when to upgrade:
MuscleNerd's Twitter: This will be the first source of information on whether it is safe to upgrade to the release version of 4.0 and/or iTunes 9.2. He may also give specific warnings for users who require unlocks, etc.
The Dev-Team's Twitter: this will have official release information for new Dev-Team tools.
The Dev-Team Blog: This will have the official announcement of any tool the Dev-Team releases to jailbreak or unlock the iPhone.
These sites will always have the first information. Any information on other sites not derived from one of these sources should be treated with great suspicion.
2. When will I be able to JAILBREAK my phone on 4.0?
That depends on what device you have and, if 3GS what bootrom you have:
3G - The Dev-Team has now posted links to Redsn0w 0.9.5-5 beta, which now supports 4.0 jailbreak and hacktivation of the iPhone 3G. The 3GS is still not supported in this beta.
3GS ("old" 359.3 bootrom) - PwnageTool 4.0 has now been released. It allows owners of old-bootrom 3GS phones to do a "jailbreak train" upgrade to 4.0 by creating a custom pre-jailbroken firmware. To use this tool, you must be already have an untethered jailbreak by a method other than Spirit. Do not upgrade directly to 4.0 official; restore only to a custom firmware..
3GS ("new" 359.3.2 bootrom) - JailbreakMe.com is now live, with the ability to jailbreak the iPhone 3GS.
iPhone 4 - JailbreakMe.com is now live, with the ability to jailbreak the iPhone 3GS.
3. When will I be able to UNLOCK my phone?
3G, 3GS - Now! With the release of ultrasn0w 0.93: it is now possible to unlock any baseband released since iPhone OS 3.0, i.e., basebands 04.26.08, 05.11.07, 05.12.01, and 05.13.04. This means that if your iPhone can be jailbroken at 3.0+, you can unlock it by adding the repo http://repo666.ultrasn0w.com/ to Cydia and installing ultrasn0w.
iPhone 4 - Soon. The Dev-Team is in the final stages of testing the iPhone 4 unlock. It should be available within a couple of days.
4. What if Apple releases an update? How will I know whether it is safe to upgrade to iOS 4.x and/or iTunes 9.x?
I cannot stress this point enough: wait for official information from the Dev-Team. If you wait for their official go-ahead it is almost certain that you will eventually be able to jailbreak and unlock your phone...or at least to maintain your jailbreak. But you must be patient! Prematurely upgrading can endanger your ability to jailbreak or unlock indefinitely.
Please Note: It is still advisable for old-bootrom 3GS users with 3.1.2 or lower SHSH on file to use PwnageTool to upgrade so that they can remain "on the jailbreak train," ensuring their ability to upgrade to future versions while preserving the ability to unlock. I have updated the Decision Tree to reflect this:
Correction: the updated version of ultrasn0w for iPhone 4 mentioned in this chart has not yet been released, but is expected very soon.

Now that iOS 4.0 has been released, this board is being flooded with questions about the proper way to upgrade while preserving your ability to jailbreak and unlock. I have created this guide to answer those questions and provide a pre-emptive warning to people looking to upgrade to 4.0.
1. Where can I find reliable information on how and when to upgrade?
There are only three sources I would trust for reliable information on how and when to upgrade:
MuscleNerd's Twitter: This will be the first source of information on whether it is safe to upgrade to the release version of 4.0 and/or iTunes 9.2. He may also give specific warnings for users who require unlocks, etc.
The Dev-Team's Twitter: this will have official release information for new Dev-Team tools.
The Dev-Team Blog: This will have the official announcement of any tool the Dev-Team releases to jailbreak or unlock the iPhone.
These sites will always have the first information. Any information on other sites not derived from one of these sources should be treated with great suspicion.
2. When will I be able to JAILBREAK my phone on 4.0?
That depends on what device you have and, if 3GS what bootrom you have:
3G - The Dev-Team has now posted links to Redsn0w 0.9.5-5 beta, which now supports 4.0 jailbreak and hacktivation of the iPhone 3G. The 3GS is still not supported in this beta.
3GS ("old" 359.3 bootrom) - PwnageTool 4.0 has now been released. It allows owners of old-bootrom 3GS phones to do a "jailbreak train" upgrade to 4.0 by creating a custom pre-jailbroken firmware. To use this tool, you must be already have an untethered jailbreak by a method other than Spirit. Do not upgrade directly to 4.0 official; restore only to a custom firmware..
3GS ("new" 359.3.2 bootrom) - JailbreakMe.com is now live, with the ability to jailbreak the iPhone 3GS.
iPhone 4 - JailbreakMe.com is now live, with the ability to jailbreak the iPhone 3GS.
3. When will I be able to UNLOCK my phone?
3G, 3GS - Now! With the release of ultrasn0w 0.93: it is now possible to unlock any baseband released since iPhone OS 3.0, i.e., basebands 04.26.08, 05.11.07, 05.12.01, and 05.13.04. This means that if your iPhone can be jailbroken at 3.0+, you can unlock it by adding the repo http://repo666.ultrasn0w.com/ to Cydia and installing ultrasn0w.
iPhone 4 - Soon. The Dev-Team is in the final stages of testing the iPhone 4 unlock. It should be available within a couple of days.
4. What if Apple releases an update? How will I know whether it is safe to upgrade to iOS 4.x and/or iTunes 9.x?
I cannot stress this point enough: wait for official information from the Dev-Team. If you wait for their official go-ahead it is almost certain that you will eventually be able to jailbreak and unlock your phone...or at least to maintain your jailbreak. But you must be patient! Prematurely upgrading can endanger your ability to jailbreak or unlock indefinitely.