IPhone Under the Hood: Carrier Settings

Carrier settings are the data stored on an iPhone that are specific to a particular phone carrier (AT&T in the U.S.). When any of these settings need to be modified from the defaults of an iPhone OS installation/activation, Apple issues a carrier settings update. You download and install these update files via iTunes, in much the same way as iPhone OS updates.

Here in the U.S, the most recent carrier settings update was the one required to enable MMS (picture/video) messaging. When AT&T gets around to turning on Internet Tethering, expect yet another carrier settings update.

Carrier settings also include the access name for their Internet data networks as well as dialing codes for items such as Check Bill Balance and Directory Assistance (such as listed in Settings -> Phone -> AT&T Services). According to an Apple support article, carrier settings additionally include "default settings for Stocks, Maps, Weather, and other items."

From your iPhone, you can find out the version of your currently installed carrier settings by navigating to Settings -> General -> About -> Carrier. On my iPhone 3GS, running iPhone OS 3.1 with the MMS update, the listed version is: AT&T 5.5.

As it turns out, there's more you can do with carrier settings than just download and install the latest update. In particular, you can custom reinstall, directly view and even modify your carrier settings. How to do all of this, and why you might want to do it, is the subject of this article.

Reinstall a carrier settings update

Suppose you have symptoms that suggest possible trouble with your carrier settings (such as a continuing and otherwise inexplicable inability to access your carrier's data networks). Or maybe you modified the carrier settings in some way and want to return to the defaults. If so, a sure solution is to reinstall Apple's latest carrier settings update:

1. Connect your iPhone to iTunes. From the phone's Summary screen in iTunes, hold down the Option key and click the Check for Update button. (Note: In my testing, I got the same end result here if I clicked Restore instead of Check for Update.)

2. From the Open dialog that appears, navigate to the ~/Library/iTunes/iPhone Carrier Support folder. Here you should find a file named ATT_US.ipcc. That's the carrier settings update file. Select to install it.

3. Restart your iPhone. This is not always required, but worth doing, just in case.

If the ATT_US.ipcc file is grayed out in the Open dialog, quit iTunes. Open Terminal and type:

defaults write com.apple.iTunes carrier-testing -bool TRUE

Press Return. Quit Terminal and relaunch iTunes; try the update reinstall again. It should now work.

If you can't find any Carrier Support folder, it means you've never downloaded and installed a separate carrier settings update. Assuming no update is available from Apple for your phone, you'll need some other solution, possibly restoring the iPhone OS.

Why you might want to view or edit carrier settings

Beyond simply reinstalling the default update file, you can modify the file's contents and reinstall the edited file. There are several reasons you might want to do this. Unfortunately, Apple has blocked the most popular one.

When iPhone OS 3.0 came out, with its support for MMS and Internet tethering, many U.S. users were disappointed to learn that they would have to wait months before AT&T enabled these two features. In the interim, enterprising iPhone users found that they could enable the options by a simple hack of their carrier settings. With iPhone OS 3.1, Apple plugged this quasi-legal hole. The hacks no longer work. While this doesn't matter for MMS (which is officially available in 3.1), it means you can't enable tethering anymore (although new hacks are supposedly in the works).

Still, there are carrier settings edits you can usefully make. I am going to focus on just one: disabling data services. By this, I mean turning off all non-Wi-Fi Internet access, both EDGE and 3G. Why might you want to do this? Because, if you are in a foreign country, your carrier typically charges exorbitant rates for data network access (although buying a discount package in advance can help keep these costs down). To make sure you don't inadvertently accrue any of these charges, you'd like to turn off all data services for the duration of your trip, but still retain the ability to use your phone for calls and messages. Enabling Airplane Mode won't do the trick, because that turns off both the phone service and the data networks. Keeping Data Roaming off (in Settings -> General -> Network) should be sufficient, but you are worried that you may inadvertently enable this. What else can you do? You can make a carrier settings change that is guaranteed to block all data network access, even when you are not in a roaming area. And, at the end of your trip, it's easy to undo.

All you need to do is edit the carrier settings' cellular data Access Point Name (APN).

View and edit carrier settings from the iPhone

Wouldn't it be great if you could do all the necessary work directly on the iPhone? Yup. And it's possible. But only if your carrier permits it. Unfortunately, AT&T doesn't permit it.

Where permission is granted, you'll find the relevant options at Settings -> General -> Network -> Cellular Data Network. From here, you can make changes to Cellular Data, MMS and Visual Voicemail settings (as shown in an Apple article). To revert to the defaults, tap Reset Settings.

While I have seen carrier settings hacks that enable the Cellular Data Network feature on AT&T phones, most (all?) of these hacks no longer work in iPhone OS 3.1. In any case, I'm going to assume you don't have this option. Let's move on.

View and edit carrier settings from the Mac

Even if you're unable to access carrier settings from your iPhone, you can access them from your Mac. To do so, you crack open the carrier settings (.ipcc) file and view its contents:

1. Go to ~/Library/iTunes/iPhone Carrier Support/ and make a copy of the ATT_US.ipcc file. Work only with this copy.

2. In the Finder, add a .zip extension to the name of the file.

3. Double-click the .zip file. This unarchives the file, creating a folder named Payload.

4. Inside Payload is a file called ATT_US.bundle. Select Show Package Contents from the file's contextual menu. You're in.

Here you'll find the complete contents of the carrier settings file. Most of what you'll find are localizations for different languages. Ignore them. The file of most interest is carrier.plist.

5. Via a utility such as Property List Editor (included as part of Apple's Developer software, optionally installable from your Mac OS X Install DVD), open the carrier.plist file. Here you will see the actual settings.

Settings include APNs (e.g., wap.cingular is the name for the data network APN, as seen in Item 2 of apns), the numbers to dial for various carrier services (e.g., *225# is the number to check your bill balance, as seen in Item 0 for Services) and the new MMS properties.

Can you do more than view data here? Can you modify the settings? Yes. Here's how:

1. Make your desired change(s) to the .plist file and save.

2. Reverse your previous steps, compressing the Payload folder and renaming it ATT_US.ippc. To be certain you deleted the .zip extension, check the Name & Extension section of item's Info window.

3. Install the modified .ippc file, using the reinstall method already described.

If you later want to revert back to the original settings, just reinstall the unmodified file that you presumably saved.

While I can confirm that this works, the approach is a bit risky and I'm reluctant to recommend it--unless you feel confident working at this level. That's why I didn't go into the details as to what changes to make. Instead, at least for the goal of disabling data networks, I recommend using Configuration Profiles, as I describe in complete detail in the tutorial that follows.

Create and install an iPhone Configuration Profile

A configuration profile contains custom instructions for iPhone settings. When a configuration profile is installed, the iPhone's settings are changed to match those of the profile. If you later uninstall the profile, settings revert to their prior state.

The main purpose of configuration profiles is to provide a convenient way to distribute custom settings to a group of users. For example, suppose a company gives iPhones to all its employees but wants the phones to have the camera disabled. This can be easily accomplished by distributing a required configuration profile to the employees. For a quick overview on how all this is done, see Apple's introduction to device configurations.

For our purposes, we can take advantage of the availability of configuration profiles, creating and installing one that modifies the carrier settings so as to disable data services.

The first task is to create the needed configuration profile:

1. Launch iPhone Configuration Utility (iCU). This is a free utility available from Apple. While this utility offers several functions, we are only going to use its ability to create and install configuration profiles.

2. From the Library sidebar list on the left, tap Configuration Profiles.

3. From the Toolbar at the top, tap: New. A profile is automatically created and saved, typically with a .mobileconfig extension, and stored in ~/Library/MobileDevice/Configuration Profiles.

4. From the General item for the newly created profile, give the file a name (such as Disable Data Services). Add an identifier (the specific name doesn't matter; it could be com.phony.profile). The remaining fields in this section are optional and can be ignored.

5. Scroll down the item list until you see Advanced. Select it.

6. Click the Configure button. Next, in the Access Point Name (APN) field, enter a phony APN name, such as wap.PHONY.com (as shown in the screenshot below).

That's the only change needed to disable data services on your iPhone. All that remains is to install the configuration profile:

1. With iCU open, connect your iPhone to your Mac via its USB-Dock cable. iCU should automatically detect the phone and the iPhone name should appear in its Devices list on the left.

2. Select the iPhone's name from the Devices section of the column on the left. (Note: Do not instead start by selecting Devices from the Library section.)

3. Select the iPhone's Configuration Profiles tab (from the row of tabs that begins with Summary). You should now see a list of all available configuration profiles. Depending upon whether a profile is currently installed or not, the button to the right of each profile will say either Install or Remove.

4. Locate the profile you created; click its Install button (as shown below).

5. Now go to your iPhone. You should see a screen asking you to confirm your intention by tapping the Install button. (See the screen on the right.) Continue following the prompts until done.

That's it. Once a profile is installed, its changes should take effect immediately. Typically, it is not even required that you restart your iPhone.

After this particular profile has been installed, you can use the Phone and Messages apps. You can connect to the Internet over Wi-Fi. However, if you try to connect to the Internet via 3G or EDGE, you will get a "Could not activate cellular data network" error.

What makes the configuration profile technique especially attractive is how easy it is to undo. All you need to do is remove the Profile:

1. On your iPhone, go to Settings -> General -> Profiles -> name of Profile.

2. From here, tap the Remove button. Your settings should now revert to their prior state.

If you later install an iPhone OS or carrier settings update, it may undo the effect of the configuration profile. If that happens, remove the configuration profile and reinstall it. That should get things working again.

[Senior Contributor Ted Landau has recently updated his book, Take Control of Your iPhone (TidBits Publishing, 2009).]

For comprehensive coverage of the Android ecosystem, visit Greenbot.com.

Subscribe to the Smartphone News Newsletter