One of my favourite things about the iPhone is that it’s fairly painless to throw another SIM card into your iPhone, and have all of your carriers settings just work (internet, MMS, voicemail, and tethering if your carrier allows it). The way this magic works is that Apple actually has the settings for all of the official iPhone carriers preloaded into iOS. If you throw in a SIM from a supported carrier, the settings are simply loaded and away you go. These are referred to as carrier bundles (or, carrier settings according to Apple).
Carrier settings updates are small files (about 10 kb) that are installed on your iPhone or iPad (Wi-Fi + Cellular models). Carrier settings include updates to Access Point Names (APNs), MMS settings, features such as tethering, and default apps such as Stocks, Maps, and Weather.
On your iOS device, they live at
/var/mobile/Library/Carrier Bundles/ – bundles that have been updated with iTunes, or pushed over the air
/System/Library/Carrier Bundles/ – stock bundles that ship with iOS
On your computer side, they can be found at
~/Library/iTunes/iPhone Carrier Support/
If you haven’t ever had iTunes prompt you about a carrier update, this folder probably won’t exist.
Carrier bundles themselves are simply .zip archives, but with a .ipcc extension instead. They’re named after your carrier, and may also say whether they’re for your iPhone or iPad (Telstra_au_iPhone.ipcc)
Have you ever looked at your carrier name in the status bar of your iPhone? Chances are you have. If you’ve ever wondered where this actually comes from – this is really just an image contained in the carrier’s bundle of settings.
This makes it much easier for this to be customised or changed. Carriers can (naturally) and do change how their network appears – Optus changed from ‘OPTUS’ in firmwares lower than 4.x to ‘YES OPTUS’ in iOS 5. Telstra choose to display ‘3TELSTRA’ as ‘Telstra’, (and likewise for 3 – choosing to appear as ‘3’ instead of 3TELSTRA)
This is also handy for users – carrier bundles are easily edited and tweaked by users and can be deployed semi-officially – the same way carriers can deploy themselves on the side.
While in iOS 5 many of the actual carrier configuration data is signed and will refuse to work if the signature is broken – the images are free rein. You can do whatever you want here.