From ModMyiFone - Wiki
THIS DOES NOT WORK ON 1.1.1 NOR 1.1.2!
The iPhone comes set up with a menu in Settings>Phone>ATT Services where you can have one-click access to ATT services such as Check Bill Balance, View My Minutes, etc. This works great for ATT users, but for those of us with unlocked iPhones, we'd like to have access to such things for our phones as well!
This tutorial will teach you how to set up the services menu to work with your carrier. I will be doing this tutorial to make my iPhone work with T-Mobile USA services.
Here's a before and after shot of what we're going to and from:
All right, lets get started. I am assuming you are already able to SFTP to your iPhone. If you are not, follow this guide and then this one. You will only need to do those once, and then you will always have drag and drop file transfer to your iPhone, unless you restore.
Here we go. Download the carrier settings pack which I have assembled here (mirror). Unzip the file onto your desktop, or wherever. If you are on T-Mobile USA, you can simply transfer these where they go, as I have pre-edited them to work for T-Mobile.
T-Mobile USA Prepaid files are here, and Cingular Prepaid files are here. (Thanks, elise29). O2 Settings files are here. Optus (Australia) Pre-Paid settings are here, Thanks jackrayers
Service.plist and Phone.plist go in /System/Library/PreferenceBundles/MobilePhoneSettings.bundle/, and Services.strings and Phone.strings go in /System/Library/PreferenceBundles/MobilePhoneSettings.bundle/English.lproj/.
Now, if you have a carrier other than T-Mobile USA, let me give you the specifics.
Phone.strings
The only thing you need to change in this file is line 6, the one that says <string>T-Mobile Services</string>. Change the T-Mobile Services to whatever you want it to say on the Settings>Phone page in your iPhone. Stock, the iPhone says ATT Services there, I changed it to T-Mobile Services. You may want to change it to Vodafone Settings, or O2 Settings, or Rogers Settings, etc.
Phone.plist
The only thing you need to change in this is line 201, the one that says <string>T-Mobile Services</string>. Change it to say the same thing you had Phone.strings display. So, if you changed Phone.strings line 6 to say Rogers Settings, make sure line 201 in Phone.plist ALSO says Rogers Settings.
Services.strings
This is the actual text that will show up on your Settings>Phone>T-Mobile (or whatever you have) Settings page. Mine is set up like this:
You can change it to whatever you'd like it to say, or add things by simply copying the
<key>View My Minute Usage</key>
<string>View My Minute Usage</string>
part and writing new ones as you would like them. You will also need to add this to the Services.plist file.
Services.plist
This file controls the info you see on the Settings>Phone>T-Mobile (or whatever you have) Settings page. Inside it, you will notice various bits of code, structured like this:
<dict>
<key>action</key>
<string>dialNumber:</string>
<key>cell</key>
<string>PSTitleValueCell</string>
<key>label</key>
<string>Check Bill Balance</string>
<key>value</key>
<string>#225#</string>
</dict>
dict>
<key>action</key>
<string>dialNumber:</string>
<key>cell</key>
<string>PSTitleValueCell</string>
<key>label</key>
<string>Check Bill Balance</string>
<key>value</key>
<string>#225#</string>
</dict>
To change this to how you'd like it, change the string that says Check Bill Balance to match the text you put in Services.strings, and change the number to what you need it to dial. For instance, if you wanted this to pay your bill, and you normally dial *08 to do that, you'd change the Check Bill Balance string to Pay My Bill and the #225 to *08.
Repeat this for each piece of info. Each button you see on the iPhone screen is controlled by what is within each of those <dict></dict> bits, like I showed above. You can delete or add buttons by copying/deleting the info from this file.
You will see at the end there is a URL for the T-Mobile account login. Change this to whatever URL you would like it to launch to access your account.
When you have everything the way you want it, transfer these where they go using CyberDuck, FuGu, or your favorite FTP application. Again, Service.plist and Phone.plist go in /System/Library/PreferenceBundles/MobilePhoneSettings.bundle/, and Services.strings and Phone.strings go in /System/Library/PreferenceBundles/MobilePhoneSettings.bundle/English.lproj/.
Congratulations!
You're all set! Restart your iPhone by holding down the Sleep button for a few seconds, sliding to power off, and the pressing the Sleep button again to power back on!