A while back (before I smashed up my iPhone), I had the idea that I wanted to change the stock “Answer/Decline” and “End Call” messages on my phone to something more creative. While there may be utils out there that enable this, but I figured, hey, it’s UNIX, those strings must be in files, and I can edit files.
iPhone ‘nix doesn’t have find built-in, but it does have grep -r, which allowed me to find out the two files I was looking for:
- Most of the strings for the phone application are in /System/Library/Frameworks/TelephonyUI.framework/English.lproj/General.strings
- In-call text strings are in /private/var/Applications/MobilePhone.app/English.lproj/InCall.strings
iPhone strings files are stored on the device in a binary format known as “plist“. (Luckily the binary format retains enough text to allow you to grep for what you’re looking for). You can’t edit the plist format directly; there are two ways to deal with that.
- Copy the strings file to your PC and then use this online tool to convert the binary plist to ASCII text. Edit the resulting text file, and then copy the text file back onto the iPhone in the same place as the original binary file of the same name — the iPhone will read the text version of the file just fine.
- Install EricaUtilities (download the zip file to your PC, unzip, and then copy the contents of the bin directory to /usr/local/bin or your iPhone), and and then use plutil to edit the strings files on the iPhone itself. Note that the command line arguments in plutil seem to be sort of reversed; to set a key I had to do plutil -s KEY -v VALUE instead of -s VALUE -v KEY, but whatever. There is also an older EricaUtility called plist2txt that simply converts the binary plist file to text, right on the iPhone. You can then edit the resulting text file right there, with, say, vi. There’s an even older version of this utility as well, but you’ll need perl to run it.
In any case, once you’ve edited the strings file(s), restart the phone, and you should see the new strings.
One final neat little trick is that if a friend of yours has a jailbroken iPhone with the default root password, and you’re both on the same WiFi network, and you know his IP address, you can ssh to his phone and change his strings to whatever you like, all while you sit there at Cafe Ritual, sipping your coffee. You can even restart his phone remotely - just use the unix restart command.
Other blogs commenting on this post – Comments (2)






