The JBnator Diaries – exorcise extraneous daemons to free iDevice RAM

Last week in the JBnator column I covered a VM hack for the iDevice that utilizes the age-old virtual memory technology to make up to 70MB of free RAM available for all your app needs. Unfortunately that technology was omitted from the iPhone OS for a reason: it ramps up app loading time considerably can cause frame-rate massacring when the disk swaps. This week I’m going to tell you how to get a bit more free RAM, though in no way as spectacular in terms of the increase, but with zero performance drops.

A little background – the iPhone OS is basically a full blown Mac OS X. It just happens to be optimised for Apple’s mobile devices and has a shiny SpringBoard pasted on top. And Mac OS X is – here’s the kicker – a member of the UNIX-family of OS’es. In such operating systems, daemons (computer programs) run in the background.

Since the moment your iDevice is booted up, there are a bunch of background services and processes that account for various functions of your iDevice. These help make calls, handle Push notifications, collecting logs and crash dumps. And all of them take up the short supply of RAM in the iDevice. The good news? Some of them can be disabled with no ill effects on the operation of the iDevice.

Here are some iDevice daemons, explained and split into sub-sections:

  • Safe - safe to disable for all users
  • Conditional - users may disable them if they know for a fact they don’t use that features
  • Manual Edit – daemons that should not be removed but may be altered to exit when not used
  • Unknown – daemons, whose purpose are unknown
  • Device specific – daemons that may be removed on specific devices
  • Leave Alone – daemons that should NOT be removed under ANY circumstances
  • Jailbreak - some daemons installed by common jailbreak apps.

Disclaimer: Proceed at your own risk. Neither I nor TouchMyApps.com will not accept any responsibility for any damages to you iDevice, the data stored on it or your personal well-being should you follow this guide.

Our toolbox for today:

  • iPhone 2G/3G/3GS or iPod Touch 1G/2G/3G already jailbroken and activated
  • iPhone Folders – download latest version at the author’s site
  • iPhone apps – download off Cydia:
    • iFile (the shareware version will be more than enough)
    • afc2add

Now for the real deal

  • Open iPhone Folders and navigate to \System\Library\LaunchDaemons
  • Copy the entire contents of the folder to a safe location of your PC
  • Create a folder in \System\Library\LaunchDaemons (i.e \System\Library\LaunchDaemons\old - which I will be using for purpose of this article)
  • Move the plist files corresponding to the daemons you wish to disable to the newly created folder \System\Library\LaunchDaemons\old

Safe Daemons – These can be deleted by any user, with no adverse effects on the device.

  • com.apple.DumpPanic.plist – Dumps crashes for evaluation by Apple.
  • com.apple.ReportCrash.(Different Things).plist – There are 5 of these daemons, and they collect data about what caused a crash, what programs were running at the time, etc.
  • com.apple.DumpBasebandCrash.plist – Dumps baseband crashes, which shouldn’t happen during normal use. iPod touch users don’t even have a baseband.
  • 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. Some more information can be found Source), but I don’t know what that means, exactly. Removing this daemon has had no adverse effects on my 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.tcpdump.server.plist – This daemon is apparently used to dump traffic on a network (Source), but I don’t know what that means, exactly. Removing this daemon has no adverse effects on one’s device.
  • com.apple.awd_ice3.plist - **4.0 Only** This sets limits on the iPhone 4G(iPhone3,1) hardware. It is safe to delete on any device. (Source)
  • com.apple.psctl.plist – No definitive information about this daemon is currently available, but it’s believed that it deals with connecting external storage devices, possibly a feature coming in new iDevices. It doesn’t do anything for now, though, so feel free to delete it. (Source)

Conditional Daemons – These daemons can be disabled by certain users who have no need for some features of their 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.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.graphicsservices.sample.plist – Thought to have something to do with displaying album artwork. I’ve deleted it on my iPod and everything still works fine, but some people have encountered problems.
  • com.apple.UIKit.pasteboardd.plist – I believe that this daemon deals with copy/paste. If you don’t find yourself using copy/paste, you can disable this daemon.
  • com.apple.mobile.obliteration.plist – This daemon wipes the data partition of your device. (Source) This will be used if you remotely wipe your phone via Exchange, or if you use Settings > General > Reset, or if you set your device to wipe itself after a certain number of failed passcode entries. If you don’t use these features, you can delete this daemon.
  • com.apple.iapd.plist - This daemon is believed to deal with enabling 3rd party accessories. (Source)

Manual-Edit Daemons – These daemons should not be fully disabled, but should be edited so that they are disabled when they are not needed.

  • com.apple.itunesstored.plist – Open the plist file in a text editor and change this:

<key>SuccessfulExit</key>
<false/>

to:

<key>SuccessfulExit</key>
<true/>

Now this daemon will go away when it’s not needed. If you’re having trouble editing the .plist on your computer, edit it on your device using iFile.

Unknown Daemons – The functions of these daemons are currently unknown. Proceed with caution.

  • com.apple.daily.plist – Nothing is currently known about this daemon, except that it is programmed to perform a certain function once a day. Removing this daemon has had no adverse effects on the test device.
  • com.apple.iqagent.plist – This daemon’s function is currently unknown, but removing it has had no adverse effects on my device. Safe to Remove, Under Unknown because Nobody knows what it does. Tested on iPhone 3G
  • com.apple.mobile.profile_janitor.plist – This daemon’s function is currently unknown, but removing it has had no adverse effects on my device. Safe to Remove, Under Unkown because Nobody knows what it does.Tested on iPhone 3G
  • com.apple.awd_ice2.plist – **4.0 Only** This daemon has NOT been tested and it is believed to put lmits on the iPhone 3G+3G[S] Hardware. I am not sure why these limits are in place, but it is for a reason. NOT TESTED, proceed at your own risk. (Source)

Device-Specific Daemons – These daemons have different functions for different devices. Be ABSOLUTELY CERTAIN that these daemons are safe to delete from your specific device.

  • com.apple.CommCenter.plist – Deals with making and receiving phone calls. iPod touch users (confirmed on the first-gen, assumed on all the others) can delete this daemon with no adverse effects. iPhone users should not delete this daemon under any circumstances.
  • com.apple.scrod.plist - I believe this daemon to deal with VoiceControl. ONLY Remove if you have a device that does NOT have VoiceControl(iPhone2G/3G, iPod touch1G/2G) (Source) Tested on iPhone 3G.

Leave-Alone Daemons – These daemons are crucial to the operation of your device and should not be modified in any way.

  • com.apple.fairplayd.plist – This checks the DRM on your legitimately-acquired music and apps.
  • com.apple.installd.plist – Deals with app installation.
  • com.apple.BTServer.plist – If this daemon is disabled, your device will become extremely slow and unresponsive.
  • com.apple.configd+pm.plist – Deals with system configuration.
  • com.apple.configd-pm.plist – Also deals with system configuration.
  • com.apple.gmmd.plist – A debugging service for your device.
  • com.apple.mDNSResponder.plist – DNS. Disable this, and your Internet is completely gone.
  • com.apple.mDNSResponderHelper.plist – Also deals with DNS.
  • com.apple.locationd.plist – Deals with GPS and location.
  • com.apple.mediaserverd.plist – Plays your music and videos.
  • com.apple.usbptpd.plist – Allows your device to connect to your computer and charge.
  • com.apple.mtmergeprops.plist – Appears to have something to do with the touchscreen. After I deleted this daemon, my screen was unresponsive. This is why you make backups!
  • com.apple.SCHelper-embedded.plist – Appears to be a part of the SystemConfiguration framework (Source), so I don’t recommend deleting it. If some brave soul wants to try it, go ahead and report back.
  • com.apple.SpringBoard.plist – This daemon ensures that SpringBoard launches when you turn your device on. Without this daemon, SpringBoard will not launch. Also, this daemon ensures that you are able to respring your device. If you disable this daemon and attempt to respring, the SpringBoard process will be killed but will not start again.
  • com.apple.mobile.lockbot.plist – This daemon’s function is currently unknown, but several users have removed it (based on my advice; sorry about that, guys!) and have had to restore as a result.
  • com.apple.mobile.Lockdown.plist – Deals with SIM and network authorization. iPod touch users, even though this daemon seems like it deals with iPhone-only operations, have still had to restore after deleting this daemon.

Jailbreak Daemons – These are daemons installed by jailbreak applications.

  • com.apple.dynamic_pager.plist – This is what drives virtual memory (VM) mods. Delete this daemon only if you want to uninstall any VM hacks you have on your device.
  • 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.
  • com.saltinbas.free.mem.plist – This daemon is part of the Repeat Memory Free hack that’s been floating around lately. Disable this if you no longer want your memory to be freed automatically. (Note: please do not discuss this hack here, as it comes from a forum we aren’t allowed to talk about or link to.)
  • org.nodomain.scrobbled.plist – The Scrobbler daemon. Disable this if you don’t want your music scrobbled anymore.

Now just reboot to enjoy extra RAM!

Personally I tried this, removing all of the ones marked as Safe and was able to gain about 6-8 additional MB of RAM. Considering this came at no expense of any performance loss or instability – I see no reason NOT to do it!

Enjoy, folks, and as always – share your experience using the hack in the comments or on the forum.

[via Hackulo.us]

Next ArticleAT&T overhaul data plans; add iPhone tethering