For users who can't wait for this to be on modmyi.com repo later on today, you can add the source http://cydia.pushfix.info/ to Cydia and install it now. The package is called "blacksn0w RC2".
UPDATE: It looks like modmyi.com is keeping the release in limbo. They haven't accepted or rejected it.
I have the final package uploaded. Please report your results here.
Requirements :
3G or 3GS (old bootrom) running 3.1.2 or 3.1.3 firmware with baseband 05.11.07
OR
3GS (new bootrom) running 3.1.2 with baseband 05.11.07 (with SHSH on file in case of restore)
This modified release of Geohot's blacksn0w adds support for phones running 3.1.3 with 05.11.07 baseband (phones upgraded with PwnageTool or Sn0wbreeze). It also fixes a small bug that APPEARS to make WiFi much more stable, at least on several tester's phones. This bug is fixed for both firmware versions of blacksn0w in this package. It is a suggested upgrade for all 3GS blacksn0w users. If blacksn0w RC1 works fine on your 3.1.2 3G iphone, then you probably shouldn't upgrade to RC2.
Both of these issues were fixed by a user named msft.guy (http://msftguy.blogspot.com/) and he deserves full credit, as well as Geohot for the original unlock. I have permission from msft.guy to distribute his fix in this package. I was unable to get Geohot's permission before release.
I scripted the install routines so that it
1) Checks your *real* firmware version using your kernel version (this avoids using the reported firmware version which might be "faked"). Only installs if you are really running 3.1.2 or 3.1.3
2) Checks your baseband version - only installs if 05.11.07
3) Properly backs up and restores your configuration if uninstalled
UPDATE 3/24/10:
For the record, it initially looked like a bug fix may have cured some of the WiFi problems with Blacksn0w. This may not be the case, although for some like me, it has improved the situation immensely.
Here was my response to someone who said it takes time to develop blacksn0w WiFi problems as well as a description of the bug fix.
========================
I had WiFi problems the minute I installed blacksn0w RC1 (original Geohot release). It would work once and then when I rebooted, WiFi would be gone. If I continued to reboot, it would not come back. The only thing that brought it back was a "reset network settings". This made it work again for ONE boot. Any power off or soft reboot caused it to stop working again.
This is on an original bootrom 3GS on 3.1.2.
With this RC2 release, I power cycled my phone approximately 25-30 times and I had one instance of messed up WiFi. I rebooted (WITHOUT resetting network settings) and WiFi came right up. I also soft rebooted around 10 times during those 30 boots and none of them resulted in dead WiFi. Sometimes I left the phone off for 5 seconds, other times 10 minutes. This was a HUGE improvement for me.
RC2 adds support for 3.1.3, you can't argue that. Whether it fixes WiFi is still open to debate as no one really knows what causes it. It should be obvious that the settings files are getting corrupted and that is why the reset network settings fixes it. It should also be obvious that something in blacksn0w is causing CommCenter to become corrupted as it rarely happens without blacksn0w (although it IS known to happen).
Here is a description of the other fix msft.guy did besides fixing the string that it searched for to locate the area of memory to patch.
Among other things, blacksn0w patches this instruction:
MOV R0, R5
This stored the result code in R0 and then returned from the subroutine. R5 (and thus R0) contained 0 if it failed a signature check and 1 if it passed.
Blacksn0w RC1 patches the instruction to:
MOV R1, #1
This was supposed to set it to always return successful, however it stored 1 in the wrong register! R0 was left with whatever unknown value that it had from instructions prior, including a call to _CFRelease. It's value was completely unknown and probably random. My analysis is that this random return code may have been causing problems.
msft.guy patched it to :
MOV R0, #1
which is the proper instruction, given the code in question.
