iPhone MAC Tips & Tricks

Undocumented iPhone preferences

Not all preferences appear in your iPhone Settings application. As I discussed rather thoroughly in my Modding Mac OS X book, it’s not that hard to dig through applications and discover undocumented–or in this case unpromoted–preferences that add spice to your Mac or iPhone. I decided to put the iPhone’s SpringBoard to the test. That’s the app that runs your main home page. This core application contained over a dozen user-settable preferences. I tested them all and selected my six favorites. If you have access to the command line, you can start having fun with these settings yourself. This post shows you how.
Customizing with plutil

To customize your settings, you need to access and update SpringBoard’s preferences file. This is found in your home Library folder in /var/root/Library/Preferences/ You can do this by copying the file to your Mac and using Apple’s property list editor or you can do it in-place using a utility I wrote. This is handy for anyone using Windows and without Apple’s developer tools.

Plutil is part of my utilities for the iPhone and iPod touch. It allows you to view property lists and to check and set properties from the command line. The original OS X version does not let you do all this but I got carried away while writing it and gave it lots of features I wish the OS X version would have had. (You can download a universal Mac binary here, named plusutil so as to not compete with the existing plutil name. Plusutil contains all my additional features). With plutil, you can directly customize file and set and update these secret preferences.

Each of the following examples uses plutil and restart (also in the same package) to set and then update the look of your iPhone or iPod touch. Unfortunately, there’s no way I’ve been able to find to send SpringBoard a notification to update itself from the preferences file. Restart uses the blunt force approach of restarting SpringBoard. It does this by issuing a launchctl command.
6 fun iPhone Preferences

I’ve tested each of the following iPhone preferences on my personal unit. They are, as a whole, pretty useless, which explains why they didn’t make it into the Settings application. On the other hand, they are extremely fun. So, user beware but also user enjoy. Use these tricks at your own risk.

1. Set a fake “time”. SpringBoard offers two fake time preferences: SBFakeTime and SBFakeTimeString. When SBFakeTime is set to YES, the time at the top of your screen gets replaced with the contents of SBFakeTimeString. Sure, you can set this string to, say, an actual time. Or you can make it fun using pretty much any arbitrary text. You can see the SBFakeTime result in the image at the head of this post.

iphone # plutil -s SBFakeTime -v YES
Setting property SBFakeTime to YES
iphone # plutil -s SBFakeTimeString -v “TUAW Rocks”
Setting property SBFakeTimeString to TUAW Rocks
iphone # restart

2. Setting a fake carrier. The SBFakeCarrier preference allows you to change your carrier from AT&T to any string you like. I liked this preference so much, I put together the Make it Mine application to let anyone do this without having to use the command line.

iphone # plutil -s SBFakeCarrier -v “Erica”
Setting property SBFakeCarrier to Erica
iphone # restart

3. Hide certain apps for your keynote The SBEnableAppReveal preferences is just plain goofy. It hides YouTube, iTunes and Safari. Handy for giving keynotes, odd otherwise. Double-tap the spaces to reveal the apps. Double-tap again to hide them.

iphone # plutil -s SBEnableAppReveal -v YES
Setting property SBEnableAppReveal to YES
iphone # restart

4. Use a different dock As you know the iPod touch dock differs from the default iPhone dock. If you want to switch between the matte dock to the shiny dock, SBUseNewDock will accomodate.

iphone # plutil -v YES -s SBUseNewDock
Setting property SBUseNewDock to YES
iphone # restart

5. and 6. See numeric signal strength values Two iPhone preferences, SBShowGSMRSSI and SBShowRSSI allow you to view your cell and WiFi signal strengths as numbers instead of pictures. This is a great geek mod that’s absolutely useless.

iphone # plutil -s SBShowRSSI -v YES
Setting property SBShowRSSI to YES
iphone # restart