Speed up the iPhone 3G and 3Gs

By | October 12, 2009
I take no responsibility if you destroy your phone, it explodes or your arm falls off.

I recently upgraded my iPhone 3G to 3.1.2 and JailBroke it. So I decided to try the experiments to speed up the iPhone by removing language packs and disabling launch daemons. The iPhone seems more snappier since doing this, read more to see the full story.

This tutorial is for Windows only, you will need to download i-FunBox.

I went through all the following folders and removed all lproj folders except for English.lproj or en.lproj. I also deleted DemoApp.app, FieldTest.app, Maps.app, Stocks.app, VoiceMemos.app and Weather.app from /Applications/.

/Applications/
– AppStore.app
– Calculator.app
– Cydia.app
– DemoApp.app
– Icy.app
– Maps.app
– MobileAddressBook.app
– MobileCal.app
– MobileMail.app
– MobileMusicPlayer.app
– MobileNotes.app
– MobilePhone.app
– MobileSafari.app
– MobileSlideShow.app
– MobileSMS.app
– MobileStore.app
– MobileTimer.app
– Preferences.app
– Stocks.app
– VoiceMemos.app
– Weather.app
– Web.app
– WebSheet.app
– YouTube.app

/Library/Audio/Plug-Ins/HAL/VirtualAudio.plugin
– Can delete all but English or your language.

/private/var/stash/Ringtones/
– Can delete any of them.

/private/var/stash/Wallpaper/
– Can delete all except 101*.

/System/Library/CoreServices/SpringBoard.app
– Can delete all but English or your language.

/System/Library/PreferenceBundles/
– AccountSettingsUI.bundle
– AirPortSettings.bundle
– BluetoothSettings.bundle
– CarrierSettings.bundle
– CyDeleteSettings.bundle
– EDGESettings.bundle
– ManagedConfigurationUI.bundle
– MusicSettings.bundle
– MobilePhoneSettings.bundle
– MobileSafariSettings.bundle
– MobileSlideShowSettings.bundle
– MobileStoreSettings.bundle
– NotificationSettings.bundle
– ScheduleSettings.bundle
– VPNPreferences.bundle
– VideoSettings.bundle
– Wallpaper.bundle
– WirelessModemSettings.bundle
– iPodSettings.bundle

/System/Library/PreferenceBundles/AccountSettings/
– ActiveSyncSettings.bundle
– CalDAVSettings.bundle
– ContactsSettings.bundle
– LDAPSettings.bundle
– MobileCalSettings.bundle
– MobileMailSettings.bundle
– MobileWirelessSyncSettings.bundle
– SubscribedCalendarSettings.bundle

/System/Library/PrivateFrameworks
– AccountSettings.framework
– AccountSettingsUI.framework
– AppSupport.framework
– CalendarUI.framework
– ChatKit.framework
– CoreTelephony.framework
– DAVKit.framework
– DataAccess.framework
– DataDetectorsUI.framework
– IAP.framework
– ITSync.framework
– ManagedConfiguration.framework
– Message.framework
– MobileQuickLook.framework
– MusicLibraryDDB.framework
– MusicLibrary.framework
– OfficeImport.framework
– PhotoLibrary.framework
– Preferences.framework
– TelephonyUI.framework
– WebKit.framework
– WebUI.framework
– YouTube.framework
– iTunesStore.framework
– iTunesStoreUI.framework
– iWorkImport.framework

/System/Library/SystemConfiguration/
– PPPController.bundle
– WiFiManager.bundle

/System/Library/TextInput/
– Can delete all except en.lprog / English.lproj.

/System/Library/Frameworks/
– AddressBook.framework
– AddressBookUI.framework
– AudioToolbox.framework
– CFNetwork.framework
– CoreLocation.framework
– Foundation.framework (keep en.lproj)
– GameKit.framework
– MapKit.framework
– MediaPlayer.framework
– MessageUI.framework
– Security.framework
– SystemConfiguration.framework
– UIKit.framework

Now what we can do is disable the Launch Daemons at startup. Navigate to /System/Library/LaunchDaemons/

Safe Daemons – These can be deleted by any user, with no adverse effects on the device.
– com.apple.Dump* – 2 daemons to disable purpose is to dump the crash for apple evaluation.
– com.apple.Report* – 5 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.aslmanager.plist – This daemon manages system logs.
– com.apple.syslogd.plist – Logs system events.
– com.apple.powerlog.plist – This is used to monitor any incompatibilities with 3rd party chargers.
– com.apple.stackshot.server.plist – This daemon’s function is currently unknown, but removing it has no adverse effects on one’s device.
– 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.iqagent.plist – This daemon’s function is currently unknown, but removing it 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.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.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.graphicsservices.sample – No confirmed info available.

Conditional Daemons – These daemons can be disabled by certain users who have no need for some features of their device.
– com.apple.AddressBook.plist – If removed, Contacts in the Phone application will load slightly slower. Disable this if you don’t care about that.
– com.apple.accessoryd.plist – If removed, disables accessories like FM radio transmitters, iPhone docks, and AV cables. Accessories will be able to charge your device, but that is all they will be able to do. Remove this if you don’t use any of these accessories.
– com.apple.apsd.plist – If removed, Push Notifications will no longer work. Disable this if you don’t use Push Notifications.
– com.apple.dataaccess.dataaccessd.plist – If removed, contacts will no longer sync via Exchange or Google Sync. Disable this if you don’t use those services.
– com.apple.datamigrator.plist – Used to transfer contacts from SIM card to phone. iPod touch users can delete this.
– com.apple.racoon.plist – Used for Virtual Private Networks. Disable this daemon if you do not use any VPNs.
– com.apple.MobileInternetSharing.plist – Used for Internet Tethering. Disable this if you have an iPod touch or if you aren’t interested in tethering.
– com.apple.aggregated.plist – It is believed that this performs some function related to Audio-In. If you have an iPod touch and do not intend to use Audio-In, disable this. iPhone users should leave this alone.
– 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 lengthly 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.
– com.apple.mobile.obliteration – Delete disables the delete all reset options useful if u dont use password.

Leave-Alone Daemons – These daemons are crucial to the operation of your device and should not be modified in any way.
– com.apple.mobile.lockdown – Very Dangerous Deamon. Network locked / authorised sim that kind of stuff.
– com.apple.fairplayd – DRM thing used for both apps and music, appstore apps wont run if you remove this.
– com.apple.installd – Required to install legitimate apps.
– com.apple.BTServer – Very Important. iPhone will become slow and unresponsive if you remove or force terminate it.
– com.apple.configd+pm – System configuration with power/profile management I think.
– com.apple.configd-pm – System configuration without power/profile management I think.
– com.apple.gmmd – iPhone debug service.
– com.apple.mDNSResponder – DNS, no internet access if you delete this. May also screw up your ability to SSH in to fix it.
– com.apple.CommCenter – This is the one that manages your phone functionality calling/receiving e.t.c.
– com.apple.locationd – GPS wont work if removed.
– com.apple.mediaserverd – Shows videos plays music this is it.
– com.apple.usbptpd.plist – Allows your device to connect to your computer and charge.

JailBreak Daemons – These are daemons installed by jailbreak applications.
– com.bigboss.sbsettingsd.plist – Related to SBSettings. I would suggest leaving it alone.
– com.imalc.insomnia.plist – Used to keep Insomnia running through resprings and reboots. If you don’t want it to do that, disable this.
– com.mxweas.MxT2d.plist – The daemon that allows MxTube to download videos in the background. If disabled, the application will need to be reinstalled; however, if you don’t use MxTube and are too lazy to uninstall it, you can disable this daemon.
– com.saurik.Cydia.Startup.plist – It’s believed that this daemon deals with the AutoInstall trick for installing .deb files. If you don’t know what that is and you don’t use it, you can disable this daemon.
– org.nodomain.scrobbled.plist – The Scrobbler daemon. Disable this if you don’t want your music scrobbled anymore.

File Edits
– com.apple.itunesstored.plist – copy this file to your computer and edit it (you can use any free plist editor). After edit, save and copy it back into your device.

Change:

SuccessfulExit

to:

SuccessfulExit
  • samsins

    tried it and it worked quite smoothly

    • Glad it worked for you. :-)

  • gnetics

    How do you feel this would work with the iphonevm swap file implemented? I’m running at about 72-76mb on an 8gig 3g with no open apps… Lags some here and there though.

    • That is awesome. I only get about 58-62MB free on my 3G. From what I have read about the iPhoneVM, it will actually slow your iPhone down, and does a lot of read/writes so isn’t too good either.

      • gnetics

        Yeah, wasn’t too comfortable with the virtual swap file… I uninstalled and went about eradicating any sign of other languages as you detailed above, a couple of the safe launch daemons too…Feels good, snappy, running about the 49-55MB with mquickdo, kirakae, backgrounder and sbsettings running and no apps. THANKS! One thing though, I accidently deleted the other 3 files in the foundations.framework file… dont even know what they were but I know they weren’t .lproj… have seen any adverse effects yet. Do you happen to know what they were or if I actually need them for something vital? (Lord help me!!! I cant dial 911!!!!)

        • In Foundations.Framework I have:
          – en.lproj
          – Info.plist
          – types.plist

          They are the only files and folder I have in there. So not sure what else you deleted.

          • gnetics

            Yeah, I deleted the 2 .plist files… Still haven’t seen any adverse effects.

  • gnetics

    OH and All with NO LAGGING!!! Thanks again.
    G.

  • OSUBuckGuy

    Will I need to change permission to 0755, I did something similar to this with my 2g iPhone and if you didn’t change permissions it would hang at the apple logo, I have a new 3gs and I wont to make sure it doesn’t do the same.

    • No, you will not need to change any permissions. I haven’t had any hanging issues, and neither has gnetics but that’s not to say something can’t go wrong if you delete needed files.

  • T

    I accidently deleted a code signature folder. What exactly is that folder for and will it have any effect on my phone?

    • I’m not too sure about the CodeSignature folder as I didn’t delete it. Some apps may crash and worse case scenario the iPhone will need a restore.

  • Edwin

    i accidentally del the whloe of the Foundation.framework without keeping the en.plog..so any1 can help me?

    • Wow. Does the iPhone still work without Foundation.framework? I thought you would have a backup.
      Few questions:
      Is it a 3G or 3GS?
      Which version of the firmware are you running?

      You could always ask over here.

  • Pingback: Momoblog › iPhone-Speedup-Hack()

  • iphone3gs-user

    Loved your article and love hacking. Love the iphone 3gs.

    You seem to be the MAN!

    I have two 3GS 32GIG, FW3.1.2 (one works the other does not)

    I have tried:
    Delete any device backups
    Reset sync history

    Can you help or tell me the MASTER CONTROL backup file on the iPhone?

    Backing up with itunes – error msg

    “iTunes could not backup the iphone backup session failed”

    • Everything I have seen in regards to that issue is one of two things.

      – USB ports are 1.1 and not 2.0 (doubtful)
      – Software firewall (possible)

      It seems that most software firewalls are blocking “Applemobilebackup.exe” from accessing the internet. If you “allow” this then you should be fine.

      P.S. In the future keep the comments shorter and to the point. ;-)

  • iphone 3G

    Hi!

    I did exactly what the guide said, but when I try to start my iphone it gets stuck on the loading screen and eventually there is a “loading circle” appearing. I can access my iphone through the computer but the start screen won´t show up..

    Any ideas?:)

    • iphone 3G

      I know it has nothing to do with the daemons since I started with those and did a restart before moving on to the language packages.

      • You would have deleted another folder inside of they folders that you should not have deleted.

        I’ve modified fubayas langdelete file to delete everything and keep only the English. You can download it from http://justynsmith.info/langdel.sh. Install wget and Mobile Terminal in Cydia, fire up Mobile Terminal, login as root and navigate to /var/mobile/ then wget http://justynsmith.info/langdel.sh then chmod 777 langdel.sh then run it by typing ./langdel.sh.

        This will be a safer option than trying to manually delete them all. All credit goes to fubaya though for writing the original script. :-)

  • Startjumpingship

    i accidentally deleted all the “.lproj” in /System/Library/PreferenceBundles/AirPortSettings.bundle. i rebooted and it booted up fine. but i did notice in my wifi settings everything is bold and capitalized now… any idea if this will be ok?

    • I’m sorry to hear that. Next time make sure you backup everything. If you look at my above post, I posed a link to a langdel.sh file which deletes all languages except for English.

      Might be wise to do a restore and run that. :-)

  • hey i deleted all the language packs manually and left english behind. after reboot my mail app wont open it auto closes after like 2 seconds, do you think i have mistakenly deleted something? can i fix it without like restoring or anything?
    and if i have to restore does that mean i will have to re jailbreak my iphone?

    • I do believe you have deleted something you shouldn’t have. Unfortunately the only way around this would be a restore. Doing a restore does mean you have to re-jailbreak your iPhone.

  • lee

    is it safe to delete DemoApp.app, FieldTest.app, Maps.app, Stocks.app, VoiceMemos.app and Weather.app from /Applications/??

    • I deleted them all except for Maps and Weather (just incase another application “needs” it). I just hide them with SBSettings. :-)

  • Hey I have a Japanese iphone 3g…and the itunesstored.plist file mentioned might be different than what you have…

    mine reads

    bplist00?
    YKeepAliveULabel\MachServices_
    no mention of “Key” or anything recognizable!!!

    what should I do??

    • If your using Windows download plist editor and open the .plist file in that. Should be readable. :-)

    • If you’re using Windows download plist editor. You should be able to then read it with correct formatting.

  • Pingback: ?ios????????????????JailBreak? « iPhone????()

  • Pingback: ?ios????,????,?????3?JailBreak? « iPhone????()