Kodi Community Forum

Full Version: [HOWTO] - OSX Kiosk / Minimal / Lean
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've recently got a Mac Mini to use for Kodi. It's an absolutely fantastic device for this use but it needs some tuning to turn into a proper kiosk/kodi device. The idea is to disable all of the rubbish we don't need and make Kodi run smoother.

I'm starting this thread for two reasons. The first is to keep track of all of the changes I've made so that when I purchase the second Mac Mini, I can come here and follow. The second is to get the inputs from the community of things they've changed.

So here it goes. Remember, it's a work in progress and I'll be updating it over time. I will also append this with any decent suggestions in reply to this thread.

Software Update

While this doesn't help the usability, it does help reduce your overall power usage and has marginal performance improvement.

Upgrade to yosetmite

Upgrade EFI & SMC Firmware (http://support.apple.com/en-gb/HT201518)


Automatically Start Kodi on startup and restart on crash

Create file '~/Library/LaunchAgents/user.launchkeep.kodi.plist' and paste in the following contents:

<?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>Label</key>
<string>user.launchkeep.kodi</string>
<key>KeepAlive</key>
<true/>
<key>Program</key>
<string>//Applications/Kodi.app/Contents/MacOS/Kodi</string>
</dict>
</plist>

Run the following command

launchctl load ~/Library/LaunchAgents/user.launchkeep.kodi.plist


Disable unwanted services/programs

launchctl unload -w /System/Library/LaunchAgents/com.apple.com.apple.CalendarAgent.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.CalendarAgentLauncher.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.tccd.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.AddressBook.SourceSync.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.AddressBook.AssistantService.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.SocialPushAgent.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.soagent.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.Dock.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.icloud.AOSNotificationAgent.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.icloud.AOSNotificationLoginAgent.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.metadata.SpotlightNetHelper.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.AirPlayUIAgent.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.gamed.plist
launchctl unload -w /System/Library/LaunchAgents/com.apple.cloudd.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.CrashReporterSupportHelper.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.blued.plist
sudo mv /Applications/iTunes.app/Contents/MacOS/iTunesHelper.app/Contents/MacOS/iTunesHelper /Applications/iTunes.app/Contents/MacOS/iTunesHelper.app/Contents/MacOS/iTunesHelper.disabled


Disable Quit/Crash Notifications

defaults write com.apple.CrashReporter DialogType none


Disable Menu Transparency

defaults write com.apple.universalaccess reduceTransparency -bool true (disable menu transparency)
IN other words, the Mac literally becomes a KODI only machine?
Well, I think you need to place some warnings regarding the stuff you're unloading. Some functionality is definitely necessary for certain users:
l
  • com.apple.Dock.plist - This completely removes the Dock, which is not what you always want. It gets difficult to to navigate to other parts of the system when Kodi hangs. Keep that in mind when doing this!
  • com.apple.icloud.*.plist - This messes with the iCloud setup, which is also used for iCloud Drive (on which you might store media files), Back to My Mac and Find My Mac (in case your Mac gets stolen).
  • com.apple.Spotlight.plist - This disables the search feature as a whole, so again makes troubleshooting (looking for log files and such) a pain when Kodi has issues.
  • com.apple.AirPlayUIAgent.plist - Disables the complete AirPlay functionality, which is also present in Kodi. Not sure how many people use this, but the functionality is there, so it must be a certain amount of users in the community.
  • com.apple.cloudd.plist - Not 100% sure about this, but sounds like something iCloud uses, so refer to the iCloud.plist above.
  • com.apple.spindump.plist - Disabling this removes all diagnostic crash logs, so if you run into an unstable installation (especially a heavily customised version like yours), troubleshooting will be one hell of a pain (read: just start over).
  • com.apple.blued.plist - I've marked this red, because sir, you're absolutely wrong about advising to disable this on a Mac mini! This makes sure that as soon as you've unloaded it, none of the Bluetooth devices will work anymore. And to enable it again, you will need a USB keyboard! Seeing as this is a Mac mini, lots of people will probably use some kind of Bluetooth device. Of course, using an RF device is also a possibility, but people who buy a Mac mini with a keyboard and mouse tend to buy the Bluetooth versions instead of the wired ones.
  • iTunesHelper - This is again completely based on your use of the Mac, since I also integrate my iTunes library into Kodi. So I wouldn't want this disabled.

In the end I feel like there's lots more you can (choose to) disable if you'd like. Think about Time Machine (I use it, but some don't), Wi-Fi (only if you use LAN), etc. So please be more thorough in your guide and make sure you document each step. Like: why should it be disabled, what's the effect, how can you enable it again, what do you gain by disabling it (some I'm not sure you'll gain anything) and so on.
So, if I wanted to upgrade the a new version of Kodi (say 14.0 to 14.1 or a recent nightly), mod something in the advancedsettings file, etc, I have to unload the kodi.plist, install the update and the reload the plist, right?

Also, minor syntax correction... "com.apple.com.apple.CalendarAgent.plist" should just be "com.apple.CalendarAgent.plist"
There's no need to unload the kodi.plist whatsoever. Just upgrade and all settings will be migrated. If you've heavily customized your Kodi/XBMC installation, a back-up is always recommended though.
An interesting post, but IMO, not really necessary. Even with the extra services enabled on OS X, it already runs very lean as it is. OS X is very good at managing resources on low-power machines, and the worst offenders can be turned off via a GUI setting.