I’m a big fan of the SBSettings application for jailbroken iDevices (Available via the BigBoss repo on Cydia). After upgrading to firmware version 4.0.1 (using jailbreakme.com) and installing SBSettings via cydia, each time the installation completed and I clicked the respring button, the springboard would just crash and I would end up in safe mode. In my case, the problem was that some of the old toggles for SBSettings had been brought over in my iPhone backup. The solution was to SSH into my iPhone 3Gs, navigate to /var/mobile/Library/SBSettings/Toggles, then type ls -l to list all of the available toggles (with the dates they were added). The majority of them will be listed as a single date (the date which you installed SBSettings last), in my case it was “Aug 21”. Remove all folders which do not have this date (they were Toggles which were probably only designed for firmware 3.x, so were crashing 4.x in my case). I removed UAFaker, Rotation, EDGE, Push and Tether; I never used the EDGE, Push or Tether toggles anyway, so it was no big deal for me.
I hope that this helps someone. If you have any comments, suggestions or just want to say thanks (:-)), please leave a message below 🙂
As usual, I accept no responsibility for any damages caused, do it at your own risk. I’ve performed this on my own iPhone 3Gs on iOS4.0.1 and it worked, this is no guarantee for any other hardware/firmware combination (although it should work)!