Speed up the iPhone 4

By | August 18, 2010
I take no responsibility if you destroy your phone, it explodes or your arm falls off.

So you’re probably thinking the iPhone 4 is fast enough already, right? Well if there is any bit of performance you can squeeze out of a device then why not? After doing all this I get around 360MB – 370MB of available memory after a reboot.

First things first, you need to JailBreak which is simple as going to JailBreakMe in Safari on the iPhone. You can either download limera1n or greenpois0n to JailBreak.

What I did was download and run langdel.sh which deletes all language packs except English and Japanese (chmod it to 755 and run as root from MobileTerminal). If you want to remove all except just English, you can run langdelen.sh which is what I did.

Next I deleted the following Launch Daemons from /System/Library/LaunchDaemons/.

– com.apple.Dump* – 2 daemons to disable purpose is to dump the crash for apple evaluation.
– com.apple.Report* – 6 daemons to make reports about what caused the crash/what were running e.t.c.
– com.apple.CrashHouseKeeping.plist – Also deals with crashes.
– com.apple.VoiceOverTouch – Another Voice Control daemon.
– com.apple.aslmanager.plist – This daemon manages system logs.
– com.apple.awd_ice2.plist – Apparently only affects the iPhone 3G and 3GS. It’s not known what its function is on those devices, however, so remove this daemon at your own risk.
– com.apple.datamigrator.plist – Used to transfer contacts from SIM card to phone. iPod touch users can delete this.
– com.apple.marcoagent.plist – Logs errors with WiFi connections (failed to connect).
– com.apple.marco.tcpdump.en0.plist – Logs errors with WiFi connections (failed to connect).
– com.apple.mediaremoted.plist – Backend for AirTunes.
– com.apple.scrod.plist – This daemon deals with Voice Control. If you don’t use Voice Control, you can delete this daemon.
– com.apple.voiced – Yet another Voice Control daemon.
– com.apple.syslogd.plist – Logs system events.
– com.apple.powerlog.plist – This is used to monitor any incompatibilities with 3rd party chargers.
– com.apple.tcpdump.server.plist – This daemon is apparently used to dump traffic on a network. Removing this daemon has no adverse effects on one’s device.
– com.apple.mobile.profile_janitor.plist – This daemon’s function is currently unknown, but removing it has no adverse effects on one’s device.
– com.apple.searchd.plist – Disables Spotlight search if removed. The Spotlight page will still be there, but nothing will show up when you start typing. Disable this daemon if you don’t use Spotlight.
– com.apple.chud.chum.plist – This daemon is thought to relate to Apple’s CHUD (Computer Hardware Understanding Developer) tools. Removing this daemon will have no adverse effects on your device, unless you are a developer.
– com.apple.racoon.plist – Used for Virtual Private Networks. Disable this daemon if you do not use any VPNs.
– com.apple.chud.pilotfish.plist – This daemon is also thought to relate to Apple’s CHUD tools. Removing this daemon will have no adverse effects on your device, unless you are a developer.
– com.apple.AOSNotification.plist – This daemon deals with MobileMe syncing. If you do not use the MobileMe service, you can disable this.
– com.apple.AdminLite.plist – This daemon tries to return control of your device to you if it thinks that you are waiting for a lengthy process to respond. It does this by force-quitting the process, so if you’re tired of your apps crashing and you would rather wait a few seconds for them to finish what they’re doing, disable this daemon.

The next thing I did was edit com.apple.locationd.plist which makes locationd run when needed and not at startup.

Change:

<key>RunAtLoad</key><true/>

to

<key>RunAtLoad</key><false/>

The other thing I did was delete the following files from /System/Library/CoreServices/SpringBoard.app/ which removes shadows from the icons on the SpringBoard.

– FolderShadowBottom.png
– FolderShadowBottom@2x.png
– FolderShadowBottomNotch.png
– FolderShadowBottomNotch@2x.png
– FolderShadowTop.png
– FolderShadowTop@2x.png
– FolderShadowTopNotch.png
– FolderShadowTopNotch@2x.png
– WallpaperIconDockShadow.png
– WallpaperIconDockShadow@2x.png
– WallpaperIconDockShadowT.png
– WallpaperIconShadow.png
– WallpaperIconShadow@2x.png
– WallpaperIconShadowT.png

Another thing I have done is in /System/Library/Frameworks/UIKit.framework/ I deleted all the Keyboard*.plist except for Keyboard-default.plist, Keyboard-en.plist and Keyboard-en_AU.plist. You’re setup may vary though. I also deleted Keyboard-Emoji.artwork and Keyboard-Emoji@2x.artwork since I don’t use Emoji.