Para todos aquellos que dispongáis de Jailbreak en vuestros dispositivos, debéis saber que el acceso a los archivos del sistema, si bien es peligroso, con ciertos cuidados y sabiendo lo que se toca puede ayudar a personalizar nuestro sistema evitando aquellos usos que no resultan de nuestro interés y que pueden estar ocupando espacio de memoria innecesario (esto es especialmente recomendable en el modelo 3G ya que anda justo de memoria).

Para empezar, hoy comentaremos un poco el tema de los LaunchDaemons.

Durante la carga del OS, existen procesos, como en todo sistema Unix que se precie, que se cargan durante el sistema y que componen el core del OS. Además de estos, que suelen ser los primeros en cargarse, existen también otros tantos que pueden no resultarnos de interés para nosotros y de los que podemos prescindir, evitando que consuman recursos en nuestro dispositivo.

Estos procesos o daemons se cargan bajo iPhone al igual que en mac, de una forma similar a cualquier sistema Unix, salvo que estos se cargan con unas propiedades predefinidas en XMLs en formato plist.

Antes de nada, comentar que no me hago responsable de los daños derivados de las acciones que muestro a continuación, pese a que las he probado en más de una ocasión. Como siempre, recomiendo hacer previamente un backup y tocar las cosas con calma y siempre anotando todo lo que cambiamos paso a paso para poder realizar macha atrás si todo va mal.

Bien, una vez aclarado el punto anterior, si accedemos vía SSH al sistema iOS 4, nos encontraremos dentro de la carpeta /System/Library/Launchdaemons los siguientes archivos de daemons:

com.apple.AOSNotification.plist
com.apple.AddressBook.plist
com.apple.AdminLite.plist
com.apple.BTServer.plist
com.apple.CommCenter.plist
com.apple.CommCenterMobileHelper.plist
com.apple.CommCenterRootHelper.plist
com.apple.CrashHousekeeping.plist
com.apple.DumpBasebandCrash.plist
com.apple.DumpPanic.plist
com.apple.MobileFileIntegrity.plist
com.apple.MobileInternetSharing.plist
com.apple.ReportCrash.DirectoryService.plist
com.apple.ReportCrash.Jetsam.plist
com.apple.ReportCrash.SafetyNet.plist
com.apple.ReportCrash.SimulateCrash.plist
com.apple.ReportCrash.StackShot.plist
com.apple.ReportCrash.plist
com.apple.SCHelper-embedded.plist
com.apple.SpringBoard.plist
com.apple.UIKit.pasteboardd.plist
com.apple.accessoryd.plist
com.apple.adlibd.plist
com.apple.appleprofilepolicyd.plist
com.apple.apsd.plist
com.apple.apsd.tcpdump.en0.plist
com.apple.apsd.tcpdump.pdp_ip0.plist
com.apple.aslmanager.plist
com.apple.assetsd.plist
com.apple.awd_ice2.plist
com.apple.awd_ice3.plist
com.apple.calaccessd.plist
com.apple.certui.relay.plist
com.apple.chud.chum.plist
com.apple.chud.pilotfish.plist
com.apple.configd.plist
com.apple.daily.plist
com.apple.dataaccess.dataaccessd.plist
com.apple.datamigrator.plist
com.apple.fairplayd.N82.plist
com.apple.fairplayd.default.plist
com.apple.gamed.plist
com.apple.gmmd.plist
com.apple.iapd.plist
com.apple.imagent.tcpdump.en0.plist
com.apple.itdbprep.server.plist
com.apple.itunesstored.plist
com.apple.locate.plist
com.apple.locationd.plist
com.apple.lsd.plist
com.apple.mDNSResponder.plist
com.apple.mDNSResponderHelper.plist
com.apple.managedconfiguration.mdmd.plist
com.apple.managedconfiguration.profiled.plist
com.apple.mdt.plist
com.apple.mediaserverd.plist
com.apple.mobile.installd.plist
com.apple.mobile.keybagd.plist
com.apple.mobile.lockbot.plist
com.apple.mobile.lockdown.plist
com.apple.mobile.obliteration.plist
com.apple.mobile.profile_janitor.plist
com.apple.mobile.storage_mounter.plist
com.apple.mtmergeprops.plist
com.apple.notifyd.plist
com.apple.powerlog.plist
com.apple.psctl.plist
com.apple.racoon.plist
com.apple.sandboxd.plist
com.apple.scrod.plist
com.apple.searchd.plist
com.apple.securekeyvaultd.N82.plist
com.apple.securityd.plist
com.apple.smbd.plist
com.apple.syslogd.plist
com.apple.tcpdump.server.plist
com.apple.usbptpd.plist
com.apple.wapic.plist
com.apple.wifiFirmwareLoader.plist
com.saurik.Cydia.Startup.plist

De todos estos daemons, existen algunos que no son necesarios para el correcto funcionamiento del OS y que Apple mantiene a fin de tomar muestras de errores, dumps y cores que luego se envían a Apple desde iTunes. Seguramente todos hemos visto alguna vez la clásica pregunta de iTunes indicando que se disponen de datos de depuración pendientes de enviar a Apple.

He remarcado en verde todos aquellos que se pueden eliminar sin perjudicar al sistema, pudiendo acelerar bastante en casos en los que una aplicación produce un error y esta se cierra. Veréis tras el cambio y el correspondiente reinicio del sistema que ahora, cuando una aplicación da un fallo, ya no se queda un par de segundos “colgada” y esta se cierra (el retraso de esos segundos es el producido en generar el “Crash Report”).

Hoy nos centraremos únicamente en estos daemons, dejando el resto para un segundo y tercer artículo para no extendernos demasiado en el mismo.

Cabe decir que muchos de ellos se presuponen debido a la obviedad del nombre y al contenido del mismo, mientras que otros se pueden “intuir” mediante un editor hexadecimal indagando en las entrañas del binario del daemon.

 
com.apple.CrashHousekeeping.plist: Desconozco si esto está relacionado con un daemon llamado house_arrest.
com.apple.DumpBasebandCrash.plist: Genera un report de la Baseband del terminal. La Baseband es el componente que gestiona todo el tema de telefonía.
com.apple.DumpPanic.plist: Genera un report en caso de panic.
com.apple.ReportCrash.DirectoryService.plist: Otro daemon que genera reports del sistema. En este caso sospecho que es válido para conexiones con LDAP.
com.apple.imagent.tcpdump.en0.plist: Otro sniffer para la interfaz WiFi.
com.apple.ReportCrash.Jetsam.plist: ¿?
com.apple.ReportCrash.SafetyNet.plist: ¿?
com.apple.ReportCrash.SimulateCrash.plist: Genera un report de sistema forzado.
com.apple.ReportCrash.StackShot.plist: Por el nombre todo apunta a que genera un volcado de la pila (Stack) en errores de desbordamiento de pila.
com.apple.ReportCrash.plist: Genera reportes a nivel de aplicaciones.
com.apple.apsd.tcpdump.en0.plist: Volcado o sniffer de la tarjeta de red (Wifi)
com.apple.apsd.tcpdump.pdp_ip0.plist: Volcado o sniffer de la conexión 3G¿?
com.apple.chud.chum.plist: Parece ser relacionado con entornos de desarrollo. Innecesario para el terminal.
com.apple.chud.pilotfish.plist: Parece ser relacionado con entornos de desarrollo. Innecesario para el terminal.
com.apple.syslogd.plist: Gestiona los logs del sistema.
com.apple.tcpdump.server.plist: Volcado o sniffer de TCP/IP.

Una vez eliminados (yo recomiendo moverlos a un subdirectorio llamado Disabled, por ejemplo) estos daemons, lograremos que el sistema ya no tarde tanto en responder cuando una aplicación de un fallo. En este caso, el borrado o desactivación de estos daemons no liberará mucha memoria, pero si ayuda a hacer un sistema algo más rápido en algunos casos.

om.apple.ReportCrash.DirectoryService.plist
com.apple.ReportCrash.Jetsam.plist
com.apple.ReportCrash.SafetyNet.plist
com.apple.ReportCrash.SimulateCrash.plist
com.apple.ReportCrash.StackShot.plist
com.apple.ReportCrash.plist
Tagged with:  

4 Responses to “LaunchDaemons en iOS 4.0 (iPhone OS 4). Optimizando un poco el sistema (I)”

  1. -,: I am really thankful to this topic because it really gives great information “;.

  2. ;-” that seems to be a great topic, i really love it -:’

  3. Good blog – I tend to be of the same mind with most of what you wrote. I would like to see new posts on this. I will bookmark and come back.

  4. Judging by the way you write, you seem like a professional writer.-’.`.

Leave a Reply

WordPress Themes

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

Weboy