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 (e.g. ANSWER, DECLINE) are in /System/Library/PrivateFrameworks/TelephonyUI.framework/English.lproj/General.strings (pre 2.x this was /System/Library/Frameworks/TelephonyUI.framework/English.lproj/General.strings)
- In-call text strings (e.g. END_CALL) are in /Applications/MobilePhone.app/English.lproj/InCall.strings (pre 2.x this was /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 (just search in Cydia), and and then use plutil to edit the strings files on the iPhone itself. Try stuff like this:
# plutil -s DECLINE -v "Zero" /System/Library/PrivateFrameworks/TelephonyUI.framework/English.lproj/General.strings Setting property DECLINE to Zero # plutil -s ANSWER -v "Hero" /System/Library/PrivateFrameworks/TelephonyUI.framework/English.lproj/General.strings Setting property ANSWER to Hero # plutil -s END_CALL -v "Terminate" /Applications/MobilePhone.app/English.lproj/InCall.strings Setting property END_CALL to Terminate # plutil -s END_CALL_BIG_TITLE -v "Terminate" /Applications/MobilePhone.app/English.lproj/InCall.strings Setting property END_CALL_BIG_TITLE to Terminate #
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.






July 9th, 2008 at 9:52 am
Allow / Deny
Pass / Fail
1 / 0
Hot / Not
Ho / Bro
etc…
July 9th, 2008 at 10:06 am
Buying / Selling