After much experimentation and research, I’ve determined how to fix iOS4 running on the iPhone 3G. No warranty is expressed or implied. YMMV.
Preparation:
- First off, make sure you’re updated to iOS 4.0.2
- Make sure your phone is backed up, and do two hard resets (holding down the sleep button and home button until it resets).
- Then do a normal power off (hold the sleep button, slide to power off). Wait 30 seconds and power back on
- Do a DFU restore of iOS 4.0.2
- After you’ve done the restore, don’t restore from the backup. Reinstall all your applications and re-enter all your data. Don’t sync any music yet.
- Backup the iPhone again
The Important Part:
- Put every application into Folders. Not just willy-nilly. It’s important that you put all the applications of the same category into the same folder (i.e. – All the “Social” applications in one folder, all the “Navigation” into a different folder). I’m not sure if you should have them sorted alphabetically in the folder, but it can’t hurt.
- Go to Settings -> General -> Home Button -> Spotlight Search and turn off Spotlight for everything except Notes.
- Turn off Push Notifications. Wait at least 15 minutes for the servers to catch up. Then turn Push Notifications back on
- Sync your music. Use iTunes to sync the “only checked songs” and then incrementally sync the iPhone by genre (i.e. – check all the 50’s music, and sync. Then check all the 60’s music, and sync. Check all the Pop music, and sync.). After each Sync do a power off-power on sequence.
- Convert all your videos to h.264, but make sure you’re using Main profile with 8 b-frames, CABAC, and CQ mode of 19. Use FFMPEG. It’s actually pretty easy to write a bash shell script to do all this, so I won’t bother including it here. Make sure you get all those little options right
- If you have ringtones, make sure none are longer than 29.97 (30p) seconds, and none shorter than 23.976 (24p). Use Garageband or Audacity for this
- Give up on iOS4 on the 3G and get an iPhone 4 instead, nothing’s going to fix that bullshit.