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 (for example, 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 using 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:
- Establishing a build environment
- Getting familiar with Git and Repo
- Downloading the source
- Submitting patches
In addition, we strongly recommend that you use the Google Issue Tracker to track changes.
File a bug
- Go to issuetracker.google.com and sign in using your corporate email address (see Google Account with your corporate email address).
- After logging in, click Create issue on the left side of the screen.
- In Component, select Android Public Tracker > Framework
- 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
To make changes:
- Identify which file to change.
- Make changes to the file.
- Commit the changes to your local repository by following the instructions for submitting patches, paying attention to the commit message guidelines, including recommended format.
- After you commit your change to your personal history, upload it to Gerrit
using the
repo upload
command. - 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 main 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
- Connect any Android device for which you have root access.
- Add settings to /etc/apns-conf.xml.
- Reset APN settings.
- In APN settings, confirm that profiles are loaded correctly.
- 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_
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.