Carrier.plist

From The iPhone Wiki
Jump to: navigation, search

This PLIST file is the core element of a carrier bundle, defining various settings.

Structure

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
ELEMENTS GO HERE
</dict>
</plist>

Carrier Definition

<key>CarrierName</key>
<string>O2</string>

Sets the carrier name.

<key>SupportedSIMs</key>
<array>
 <string>23410</string>
</array>

Specifies a list of carriers for which the carrier bundle applies. AAA is an MCC, BB is the MNC.

May contain other values to tell apart MVNOs. Example: 23410_GID1-67FFFF

APN editability

<key>APNEditabilityTypemask</key>
<integer>X</integer>

Restricts the following parameter to certain type masks.

<key>AllowEDGEEditing</key>
<true/>

Enables the Settings>General>Network>Cellular Data Network menu.

Wi-Fi hotspot preconfiguration

<key>CaptiveSettingsBySSID</key>
<dict>
 <key>BTOpenzone</key>
 <dict>
  <key>Bypass</key>
  <true/>
 </dict>
</dict>

"BTOpenzone" is the name of an hotspot. Unknown usage and results.

<key>WISPrAccounts</key>
<dict>
 <key>phone@attmobility.com</key>
 <dict>
  <key>AuthenticationRealm</key>
  <string>attmobilityiphone.com</string>
  <key>MatchingSSIDs</key>
  <dict>
   <key>attwifi</key>
   <array>
    <string>.att.com</string>
    <string>.att.net</string>
    <string>.sbc.com</string>
    <string>.wayport.net</string>
   </array>
  </dict>
  DICT CAN REPEAT
  <key>PasswordType</key>
  <string>AT&T</string>
  <key>SharedSecret</key>
  <string>a446649326d41d87dbb8caec8caf736a</string>
 </dict>

Data Roaming

<key>IntlDataRoamingSwitch</key>
<true/>

Enables the Settings>General>Network>Data Roaming menu.

<key>IntlDataRoamingExceptions</key>
<array>
 <string>AAABB</string>
 <string>AAABB</string>
</array>

Specifies a list of carriers for which data roaming is toggled via the above mentioned switch even if they have the same MCC. AAA is an MCC, BB is the MNC.

<key>Show3GSwitch</key>
<false/>

Hides 3G switch and forces UMTS to be enabled (for carriers with no 2G network, e.g. Hutchison (3) UK, SoftBank JP).

MMS settings

<key>ASCIIFileNameRequired</key>
<true/>
<key>MMS</key>
<dict>
 <key>AllowReturnReports</key>
 <true/>
 <key>GroupModeAllowUserOverride</key>
 <true/>
 <key>GroupModeEnabled</key>
 <false/>
 <key>MMSC</key>
 <string>URL</string>
 <key>MaxMessageSize</key>
 <integer>FILESIZE (B)</integer>
 <key>MaxRecipients</key>
 <integer>NUMBER</integer>
 <key>OnWhileRoaming</key>
 <false/>
 <key>Proxy</key>
 <string>HOSTNAME-OR-IP:PORT</string>
 <key>ShowMMSEmailAddress</key>
 <true/>
 <key>Version</key>
 <string>1.2</string>
 <key>vCard21ExportModeEnabled</key>
 <true/>
</dict>

ASCIIFileNameRequired

Not part of the MMS settings, but clearly has to do with attachments.

AllowReturnReports

???

GroupModeAllowUserOverride

Enables the setting of GroupModeEnabled from the UI (Settings > Messages)

GroupModeEnabled

Defines whether all group messages will be sent as MMS regardless of the presence of attachments.

MMSC

URL to the MMSC.

MaxMessageSize

Maximum MMS size in bytes. Recommended: 300K or 100K

MaxRecipients

???

OnWhileRoaming

If enabled, the Data Roaming switch doesn't apply to MMS.

Proxy

Proxy server used for the MMS data connection.

ShowMMSEmailAddress

Enables a Settings>Messages>Email Address field.

Tethering

Tethering itself is enabled by the type-mask attribute of APN settings.

<key>MaxBluetoothModemConnections</key>
<integer>X/integer>

Number of maximum simultaneous connected devices. Apple-recommended value: 3

<key>TetheringURL</key>
<string>http://www.o2.co.uk/iphonehelp/modem</string>

Link for the "Set Up Internet Tethering" button

Service links

It is possible to create a submenu of Settings>Phone titled "CARRIER NAME Services" which can contain up to 5 phone numbers and an URL.

<key>MyAccountURL</key>
<string>AAAAA</string>
<key>MyAccountURLTitle</key>
<string>AAAAA</string>

Website URL and link caption.

<key>Services</key>
<array>
 <dict>
  <key>ServiceCode</key>
  <string>*225#</string>
  <key>ServiceName</key>
  <string>Check Bill Balance</string>
 </dict>
REPEAT AS NEEDED
</array>
<key>ShowServiceCodes</key>
<false/>

Hides the numbers from the links created with the above structure.

<key>CustomerServicePhoneNumber</key>
<string>611</string>

FaceTime

<key>PhoneNumberRegistrationGatewayAddress</key>
<string>AAAAA</string>

Phone number of the activation server. Defaults: 28818773 for U.S. & Canada, +447786205094 elsewhere.

<key>RegistrationOptInRequired</key>
<true/>

Ask before sending registration SMS

Call forwarding popups

<key>ShowCallForwarded</key>
<false/>
<key>ShowCallForwarding</key>
<false/>

TTY

<key>ShowTTY</key>
<true/>

Enables software-side support (Settings>Phone>TTY) for a TTY cable.

International Assist (USA only)

<key>ShowDialAssist</key>
<true/>

Enable carrier selection

<key>OverrideCarrierMenuTo</key>
<true/>

Enables Settings>Carrier even if the SIM disabled it

Carrier Logos

<key>StatusBarImages</key>
<array>
 <dict>
  <key>AllowPrefixMatching</key>
  <false/>
  <key>CarrierName</key>
  <string>AAAA</string>
  <key>DefaultImage</key>
  <string>Default_CARRIER_carriername.png</string>
  <key>FullScreenOpaqueImage</key>
  <string>FSO_CARRIER_carriername.png</string>
  <key>StatusBarCarrierName</key>
  <string>O2-UK</string>
 </dict>
PLACE MORE DICTs AS NEEDED
</array>

AllowPrefixMatching

If enabled, an * wildcard is applied to the end of the CarrierName property.

CarrierName

AAAA is the alpha tag returned by the baseband corresponding to the current MCC and MNC that will be replaced with the specified logos.

DefaultImage

Logo for the grey status bar.

FullScreenOpaqueImage

Logo for the black status bar.

StatusBarCarrierName

Used if the logos are not available/specified?

Stocks.app integration

<key>StockSymboli</key>
<array>
 <dict>
  <key>symbol</key>
  <string>^FTSE</string>
 </dict>
 <dict>
  <key>symbol</key>
  <string>^FTAS</string>
 </dict>
</array>

^FTSE and ^FTAS are stocks that will be automatically added to the app.

Network time sync

<key>SupportsNITZ</key>
<true/>

Enables time updates through the NITZ protocol.

Voicemail

<key>VoicemailPilotNumber</key>
<string>PHONE NUMBER</string>

Number to call when in home country.

<key>RoamingVoicemailPilotNumber</key>
<string>PHONE NUMBER</string>

Number to call when not in home country.

<key>VMSMFilterNumber</key>
<string>PHONE NUMBER</string>

Text messages from this number will have the sender displayed as a localized "Voicemail".

<key>VMSMFilterMessage</key>
<string>TEXT</string>

???

<key>VoicemailPasswordResetPhoneNumber</key>
<string>PHONE NUMBER</string>

Not tested, but should be self explanatory.

APN settings

<key>apns</key>
 <array>
 <dict>
  <key>apn</key>
  <string>APN</string>
  <key>password</key>
  <string>PASSWORD</string>
  <key>signature</key>
  
  GeaLtsvOnXvW3kkgR1u9ZReIxNPSIi0U8VykiqShszVUkAdkGAhB
  7V/fIvaaa5qAf1hpvSfsDRuzaVRUOkRMa0LiUqXh/1Cmor2LPFax
  RGO3UFinhsbprKNDMR45MJoT3wpFIRp2UPcRZz0fdq1+/WNAn1io
  7ge1hjHQMAukpOM=
  
  <key>type-mask</key>
  <integer>VARIABLE</integer>
  <key>username</key>
  <string>USERNAME</string>
 </dict>

REPEAT FOR OTHER APN SETTINGS AS NEEDED

</array>

It should be self-explanatory. Signature check is there since iPhone OS 3.1; patches to disable it are available.

Visual VoiceMail

<key>VisualVoicemailServiceName</key>
<string>none or IMAP or ACDS</string>
<key>VVMIgnoresIntlDataRoaming</key>
<true/>
<key>VVMNotificationFallbackTimeout</key>
<integer>420</integer>
<key>VVMRetryIntervals</key>
<array>
 <integer>60</integer>
 <integer>60</integer>
 <integer>120</integer>
 <integer>120</integer>
 <integer>120</integer>
 <integer>300</integer>
 <integer>600</integer>
 <integer>600</integer>
 <integer>1800</integer>
 <integer>3600</integer>
 <integer>7200</integer>
</array>
<key>VisualVoicemailServiceName</key>
<string>none or IMAP or ACDS</string>
<key>com.apple.voicemail.imap</key>
<dict>
 <key>AuthenticationScheme</key>
 <string>DIGEST-MD5</string>
 <key>BeaconAddress</key>
 <string>9011</string>
 <key>ClientManagesTrash</key>
 <false/>
 <key>DeliverLegacyNotificationsBeforeSetup</key>
 <true/>
 <key>GreetingNotification</key>
 <true/>
 <key>IdleConnectionTimeout</key>
 <integer>2</integer>
 <key>MaxGreetingDuration</key>
 <integer>60</integer>
 <key>MaxPINLength</key>
 <integer>10</integer>
 <key>MinPINLength</key>
 <integer>4</integer>
 <key>UsesMWI</key>
 <true/>
 <key>UsesSSL</key>
 <false/>
</dict>

VVMIgnoresIntlDataRoaming

If enabled, the Data Roaming switch doesn't apply to VVM.

Whitelisted phone numbers

<key>e_only_whitelist</key>
<array>
 <string>PHONE NUMBER</string>
 STRINGs MAY BE REPEATED
</array>

This is actually pretty cool, since it enables you to call certain numbers without entering a passcode.

IPCC signature

<key>signature</key>

dGZZA/uEGcfYuh99kHmgJHzrrGnOdzNbuAyFcM+ftaridECmtaInuEN6AtkHKle3/JFR
yw466AFSMNZXqzrM6/elUZKu41DF0ZnIb6dHB3yiYZq39eAmch8Au+cAe3mtE52Lg4cU
V7AbmAGHlg73N9GvGdRt7PE/gIuyRaM6+OU=

Always goes last. Only present in iOS 4.0 and above. Patches to bypass this check exist.

Unknown / Engineering

<key>DormancyInactivity</key>
<integer>0</integer>

???

<key>ShowClass0SMSFromField</key>
<true/>

A class 0 SMS is a "flash message" which isn't saved to SIM or disk.

<key>SupportsUserBusyCauseCode</key>
<true/>

???

<key>SuspendFastDormancyAllowed</key>
<true/>

???

<key>AllowEditingTestModeUI</key>
<true/>

May be related to Field Test

<key>CheckSMSonSIM</key>
<true/>

Load SMS from SIM card?

<key>RedialOnRadioResourceRelease2G</key>
<false/>

???

<key>SyncSIMPhonebook</key>
<true/>

Load Contacts from SIM card?

<key>RemoteDiagnosticsWWANAllowed</key>
<true/>

Enabled on AT&T USA. Allows iOS Diagnositics to be run from Safari.