APN and CarrierConfig

Carriers can update their Access Point Name (APN) information and their carrier-specific configuration settings (CarrierConfig) in the Android Open Source Project (AOSP).

Google Account with your corporate email address

To update APN information or your CarrierConfig, you need to submit the request using a Google Account with an active corporate email address (e.g., An APN update request from Acme Company should come from an email address such as foobar@acme.com).

If you do not have a Google Account that links to your corporate email address, sign out of all Gmail accounts from your browser (we recommend you use a private browsing feature such as an incognito window to avoid confusion with your other accounts) and then create a Google account with your corporate email address.

Prepare a local development environment

If you've never submitted code to AOSP before, you will need to initialize your build environment, become familiar with the tools, and understand how to submit patches:

In addition, we strongly recommend that you use the Google Issue Tracker to track changes.

File a bug

  1. Go to issuetracker.google.com and sign in using your corporate email address (see Google Account with your corporate email address).
  2. After logging in, click Create issue on the left side of the screen.
  3. In Component, select Android Public Tracker > Framework
  4. Continue to APN update or CarrierConfig update, as appropriate, to enter the Title and Description.

APN bug

Set the bug attributes as follows:

Title: Add/Modify/Remove APNs for CarrierXYZ

Description: Add a detailed description of the changes you're requesting, including the APN settings themselves.

CarrierConfig bug

Set the bug attributes as follows:

Title: Config changes for CarrierXYZ

Description: Add a detailed description of the changes you're requesting.

Submit changes

When you're ready to make changes, follow these steps:

  1. Identify which file to change.
  2. Make changes to the file.
  3. Commit the changes to your local repository by following the instructions for submitting patches, paying attention to the commit message guidelines, including recommended format.
  4. After you commit your change to your personal history, upload it to Gerrit using the repo upload command.
  5. Following a successful upload, repo provides the URL of a new page on Gerrit. Use this URL to:
    • View your patch on the review server
    • Add comments
    • Request specific reviewers for your patch

APN syntax

Android project name - device/sample

File name(s) - etc/apns-full-conf.xml (Google Git master link)

The file contains APN settings in XML format and serves as a sample file so there is no change in the behavior of Android devices.

A typical APN config looks like this:

<apn carrier="CarrierXYZ"
      mcc="123"
      mnc="123"
      apn="carrierxyz"
      type="default,supl,mms,ims,cbs"
      mmsc="http://mms.carrierxyz.com"
      mmsproxy="0.0.0.0"
      mmsport="80"
      bearer_bitmask="4|5|6|7|8|12"
/>

Testing

  1. Connect any Android device for which you have root access.
  2. Add settings to /etc/apns-conf.xml.
  3. Reset APN settings.
  4. In APN settings, confirm that profiles are loaded correctly.
  5. For each profile, test data connectivity, Wi-Fi hotspot, and MMS to make sure they work correctly.

Commit message

[Example - "Add CarrierXYZ apns to sample apns"]
Bug: [Issue ID from Google Issue Tracker]
Test: No change to behavior as this is only a sample file

Sample CL

See Sample BICS APNs for an example CL.

CarrierConfig syntax

Project name - platform/packages/apps/CarrierConfig

File name(s) - assets/carrier_config_.xml (Google Git master link)

Identify the relevant XML file(s) in the assets folder by the relevant MCC/MNC tuple(s). The file contains the carrier config object in XML format. The attribute names are defined as keys under the CarrierConfigManager, and the type of value (int/string/bool) is indicated by the suffixes.

Typical int/string/bool attributes look like this:

<int name="vvm_port_number_int" value="5499" />
<string name="vvm_type_string">vvm_type_omtp</string >
<boolean name="vvm_cellular_data_required_bool" value="true" />

Commit message

[Example - "Add VVM settings for CarrierXYZ"]

[Example - "Updated <mccmnc> carrier config file to include VVM settings
as defined by CarrierXYZ."]

Bug: [Issue ID from Google Issue Tracker]
Test: [Testing notes]

Sample CL

See an updated carrier config file for an example CL.

Request a review

To request a review:

  • Go to the Gerrit URL of your change and add android-carrier-config-review@google.com as a reviewer.
  • You can also add your Google contact to the CC list on Gerrit.
  • For tracking purposes, you can change the assignee of the issue to android-carrier-config-review@google.com.

After a submission makes it through the review and verification process, Gerrit automatically merges the change into the public repository. Other users can run repo sync to pull the update into their local client.