Filed under: iPod Family, Cool tools, Hacks, How-tos, iPhone
A half dozen fun 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/com.apple.springboard.plist. 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 com.apple.springboard.plist 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 com.apple.springboard.plist
Setting property SBFakeTime to YES
iphone # plutil -s SBFakeTimeString -v "TUAW Rocks" com.apple.springboard.plist
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" com.apple.springboard.plist
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 com.apple.springboard.plist
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 com.apple.springboard.plist
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 com.apple.springboard.plist
Setting property SBShowRSSI to YES
iphone # restart



![TUAW [Cafepress]](http://www.blogsmithmedia.com/www.tuaw.com/media/tuaw-cafepress-promo.png)


Reader Comments (Page 1 of 4)
moo083 said 3:04PM on 11-27-2007
Erica, that last one is very interesting to me. What is the range of numbers? is it 0-100 or something strange? For the iPod, I got that working and then found out it wasnt a percentage but the power left in the battery. Just wanted to know if its a similar story here.
Reply
Brian said 3:06PM on 11-27-2007
You tease...and the other 6 please !!!
Reply
Shannin said 3:15PM on 11-27-2007
she said half dozen
and how did you learn cocoa? did you use books or a video tut service like lynda.com?
i would like to know because im getting a mbp soon (waiting to see if theres going to be updates) and would like to create programs for the mac and my iphone.
Reply
Daniel said 3:21PM on 11-27-2007
Is there a way to copy the plist to the iPhone without jailbreaking
it first as I'm just interested in the new dock background? I'm
running 1.1.2.
Reply
Kevin said 3:36PM on 11-27-2007
plutil wouldn't work for the Dock setting; my com.apple.springboard.plist didn't have a SBUseNewDock entry, but adding it with Property List editor as a Boolean set to true did change my dock.
Reply
Erica Sadun said 3:36PM on 11-27-2007
Kevin: plutil on the Mac doesn't have a set option. I added one to plusutil, link in the post.
Reply
Bill Fold said 4:43PM on 11-27-2007
SBEnableAppReveal was just for Jobs' keynote introducing the iPod touch, right?
Reply
Naren Hazareesingh said 4:45PM on 11-27-2007
I'm begging you: Please post a pic of iPhone with NewDock. I'm dying to see how it looks (on the iPhone, not the touch).
Reply
Mike said 4:51PM on 11-27-2007
I'm really interested in changing the dock (so it'll match my leopard system). Do I need to jailbreak my phone to use this trick? I'd really rather not.
Reply
anima said 5:13PM on 11-27-2007
Yeah! This's great Erica! The remaining half dozen or so, please, if only for complete learning & curiosity.
Thanks again,
anima.
BTW the long code lines (above) got truncated, at least when viewed in Safari on my iPod-touch.
Reply
Robert said 5:18PM on 11-27-2007
I had to do something like this, since my paths were not all set.
/private/var/root/bin/plutil -v YES -s SBUseNewDock /private/var/root/Library/Preferences/com.apple.springboard.plist
For me, this changed the height of the dock and added reflections. Using SummerBoard, on the Touch theme, the white line disappeared. Using the default theme, it looks a little odd. It isn't the dark gradient like on the iPod Touch. It's still the "drilled metal" looking dock, just shorter. So, this doesn't change the dock image, just makes it shorter with reflections. Whatever image is set, it continues to use (on SummberBoard, anyway).
However, the reflections are actually rendered from the icon, not from some pre-defined icon set like they are in the Touch theme for SummerBoard, which is nice to know.
Reply
Benoit Cerrina said 5:30PM on 11-27-2007
for those who want to do this without jailbreaking, you should be able to as the preference file is not in the jail. I think that with iPhuc you should be able to get the file then you will need to change it and put it back. To change it you will need a Mac though, I haven't found a good way to edit the plist from a pc
Reply
m00z said 5:56PM on 11-27-2007
Anyone seen this Permission Denied using plutil?
# /private/var/root/bin/plutil
zsh: permission denied: /private/var/root/bin/plutil
# ls -l /private/var/root/bin/plutil
-rwxr-xr-x 1 root wheel 19296 Nov 14 16:26 /private/var/root/bin/plutil
Reply
Michael said 5:57PM on 11-27-2007
Is it possible to display the battery level as a number, and not a graph?
Reply
anima said 6:00PM on 11-27-2007
plists can be edited easily on Windoze if they're first converted to xml, if necessary from the binary form, using the plutil convert option; - edit the xml as a txt file or in you fav. editor, then if necessary convert it back to binary form. xml can also be nicely viewed-only in Winblows Internet Explorer. Some plists are kept in xml form eg. Services.plist - i don't know why -Erica?
anima.
Reply
Ben said 6:06PM on 11-27-2007
you are right, rssi is worthless. SNR would be useful though.
Reply
Ian Donaldson said 6:17PM on 11-27-2007
"Hide certain apps for your keynote"
When this is enabled the icons are hidden but when you double tap them they reappear. Also when they are visible you can hide them by doing the same thing.
Just thought that this was really cool and it would be cool if you could do this for all of the applications on the springboard.
Reply
MILE said 6:17PM on 11-27-2007
Thanks for the "MIM" tool...! This is by far the easiest way of customizing the provider string, very cool...! :)
Reply
designed said 6:24PM on 11-27-2007
Hmm... I keep running into a "bus error" when setting the property with the plutil in the iPhone shell.
Reply
Daniel said 6:25PM on 11-27-2007
Benoit, thanks for the suggestion but iPHUC just has access to the following (1.1.2/iTunes 7.5/latest iPHUC)
(iPHUC) /: ls
.
..
DCIM
Downloads
My Files
Photos
com.apple.itunes.lock_sync
iTunes_Control
Reply