MacOS – mtrecorder and spirecorder, what are they

daemonsmacos

I've run a EtreCheck on my OS X 10.10.3 just now and I got some error messages.

Problem System Launch Daemons:
    [failed]    com.apple.mtrecorder.plist

Launch Daemons:
    [failed]    com.apple.spirecorder.plist

I did some research from Google but seems I cannot find some useful information. I am a little bit worry about the system since these two components come from Apple.

enter image description here

The content of com.apple.spirecorder.plist is:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>KeepAlive</key>
    <dict>
        <key>PathState</key>
        <dict>
            <key>/var/db/.spirecorder.forcedenable</key>
            <true/>
            <key>/var/root/Library/Preferences/com.apple.spirecorder.enable</key>
            <true/>
        </dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>Label</key>
    <string>com.apple.spirecorder</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/libexec/spirecorder</string>
        <string>-count</string>
        <string>50000</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>Umask</key>
    <integer>18</integer>
</dict>
</plist>

The content of com.apple.mtrecorder.plist is:

Yang$ plutil -convert xml1 -o - /System/Library/LaunchDaemons/com.apple.mtrecorder.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>KeepAlive</key>
    <dict>
        <key>PathState</key>
        <dict>
            <key>/var/db/.mtrecorder.forcedenable</key>
            <true/>
            <key>/var/mobile/Library/Preferences/com.apple.mtrecorder.enable</key>
            <true/>
        </dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>Label</key>
    <string>com.apple.mtrecorder</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/libexec/mtrecorder</string>
    </array>
    <key>Umask</key>
    <integer>18</integer>
</dict>
</plist>

And both /var/mobile/Library/Preferences/ and /usr/local/libexec folders are not exists on my Mac.

By the way I found com.apple.spirecorder.plist in another LaunchDaemons folder which includes only one file, I removed it, rebooted and no problem with it. Now EtreCheck shows only one error with mtrecorder, I am not sure whether I am going to remove it since it comes with lots of Apple daemons in the same folder.

Best Answer

Both of these plist files appear to be part of the iOS operating system, that have been left in OS X by accident due to the shared nature of their development.

The reason you are seeing errors in EtreCheck for these files is that the plist files are telling the launchd process to run executables that don't actually exist on Macs, but only on iOS devices. And even then perhaps only on devices that are used for development.

I think you are safe to remove both files (although I would keep a copy of them somewhere), firstly because they are failing to launch anyway, and secondly because only seem to relate to components of the iOS operating system.