What methods can be used to find hidden options in OSX softwares?

I was wondering what methods can be used to find hidden options in OSX software.

I regularly stumble upon hidden options that can be added in the .plist preferences files (using defaults write), but do other methods exist to identify options? Perhaps there is a way to get an App to display it's options other than manual digging around?


Solution 1:

It involves a lot of trial and a lot of error, but you can be helped along in the process by running the strings command against the binary for application, directing the results to a file, and then reading that output looking for hyphenated or InnerCapitalizedWords that might suggest a candidate for a hidden preference.

Rob Griffeths wrote an article at MacWorld that gives some helpful suggestions for finding hidden preferences.

Solution 2:

I often use GDB to attempt to find hidden preferences.

Put simply, you run the app using GDB which logs the app's request/setting of preferences as you use it, then you use the app's specific features as you usually would that you hope there's a hidden preference for. Once done, you can use a command on the log file which sorts and filters the log to find the references to preferences, which you can then go through and see if there's any that look 'hidden' — it takes some time but you can find some really interesting things.

There's a full guide as to how to do this available here:

  • http://home.comcast.net/~arcticmac/tutorials/gdbFindingPrefs.html