How to Disable Multitasking on iPhone 3G and 3Gs iOS 4 Without Starting All Over

[contentblock id=2]

Problem: If you were in too big of a hurry to install iOS 4 on your jailbroken iPhone 3G, you might be surprised and disappointed to find out that Apple’s multitasking really doesn’t work well, or at all. After opening a few apps it basically leaves your phone with 2 to 4 MB of memory all the time. As you can imagine, that’s not enough memory to do just about anything without the OS having to free some up. You can manually remove the app freeze states but I found myself constantly doing it and trying to free memory before running anything. What a pain!

You might be asking, how did this happen? I thought multitasking was not supported on the 3G? That is correct.  It’s not supported but it can be enabled by simply flipping a switch in a Springboard plist (startup preferences file). Using the pwnage tool from the iPhone dev team you can enable multitasking during creation of your restore image by checking a checkbox but if you don’t want to build a new restore image, here is a better way.

This also applies to 3Gs owners who are disapointed in Apple’s implementation of “multi-tasking”. I prefer backgrounder to this solution. I would even if I were on a 3Gs.

Backgrounder has been updated for iOS4.  The beauty of this solution is that you can turn it on or off any time you wish.  It also supports more than one type of backgrounding (native, and foreground styles).

Solution:

  1. SFTP in to your phone or use something like iPhone Explorer and Go to /System/Library/CoreServices/SpringBoard.app/
  2. Open the N82AP.plist (for iPhone 3G) or the N88AP.plist (for iPhone 3Gs).  If you are unfamiliar with plist files, they are just XML files. In this case you may need the Apple plist editor (already installed on all macs) since these particular plist files are stored in a binary format rather than text.
  3. Expand the “Capabilities” section and uncheck the “multitasking” boolean property.
  4. Save the file and respring.

There are a few other things you may want to modify in the plist file while you’re in there.  Have a look at the options.  For the sake of speed, I disabled “homescreen-wallpaper” and enabled “launch-application-while-animating” and “load-thumbnails-while-scrolling”.  After making these changes and respringing, my iPhone 3G is running snappy!  There are a few exceptions to this such as the built in camera app. It is definitely slower to start up.  🙁

Can somebody please make an SBSetting Toggle for this?  That would be awesome!

UPDATE: There is an app on the SiNfuL iPhone repo now which will disable multitasking.  It’s called “Disable iOS4 Mutlittasking”.  That’s cool but an SBSettings toggle would still be cooler (even though it requires a respring).