APN 和 CarrierConfig

运营商可以在 Android 开源项目 (AOSP) 中更新其接入点名称 (APN) 信息和特定于运营商的配置设置 (CarrierConfig)。

使用您的企业邮箱地址的 Google 帐号

要更新 APN 信息或 CarrierConfig,您需要使用具有有效企业邮箱地址的 Google 帐号提交请求(例如,来自 Acme 公司的 APN 更新请求应来自诸如 foobar@acme.com 之类的电子邮件地址)。

如果您没有与您的企业邮箱地址关联的 Google 帐号,请从浏览器中退出所有 Gmail 帐号(我们建议使用隐私浏览功能,例如无痕窗口,以避免与您的其他帐号混淆),然后使用您的企业邮箱地址创建一个 Google 帐号

准备本地开发环境

如果您以前从未向 AOSP 提交过代码,则需要初始化您的构建环境,熟悉这些工具,并了解如何提交补丁

此外,我们强烈建议您使用 Google Issue Tracker 来跟踪更改。

提交错误

  1. 转到 issuetracker.google.com 并使用您的企业邮箱地址登录(请参阅使用您的企业邮箱地址的 Google 帐号)。
  2. 登录后,点击屏幕左侧的创建问题
  3. 组件中,选择Android Public Tracker > Framework
  4. 继续到 APN 更新CarrierConfig 更新(如适用),以输入标题和说明。

APN 错误

按如下方式设置错误属性

标题:为 CarrierXYZ 添加/修改/删除 APN

说明:添加您请求的更改的详细说明,包括 APN 设置本身。

CarrierConfig 错误

按如下方式设置错误属性

标题:CarrierXYZ 的配置更改

说明:添加您请求的更改的详细说明。

提交更改

要进行更改

  1. 确定要更改的文件。
  2. 对文件进行更改。
  3. 按照提交补丁的说明,将更改提交到本地代码库,并注意提交消息准则,包括建议的格式。
  4. 将更改提交到个人历史记录后,使用 repo upload 命令将其上传到 Gerrit。
  5. 成功上传后,repo 会提供 Gerrit 上新页面的网址。使用此网址可以
    • 在审核服务器上查看您的补丁
    • 添加评论
    • 为您的补丁请求特定审核人员

APN 语法

Android 项目名称 - device/sample

文件名 - etc/apns-full-conf.xml (Google Git 主链接)

该文件包含 XML 格式的 APN 设置,并用作示例文件,因此 Android 设备的行为不会发生变化。

典型的 APN 配置如下所示

<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"
/>

测试

  1. 连接您拥有 root 访问权限的任何 Android 设备。
  2. 将设置添加到 /etc/apns-conf.xml。
  3. 重置 APN 设置。
  4. 在 APN 设置中,确认配置文件已正确加载。
  5. 对于每个配置文件,测试数据连接、Wi-Fi 热点和 MMS,以确保它们工作正常。

提交消息

[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

示例 CL

请参阅示例 BICS APN,了解 CL 示例。

CarrierConfig 语法

项目名称 - platform/packages/apps/CarrierConfig

文件名 - assets/carrier_config_.xml (Google Git 主链接)

通过相关的 MCC/MNC 元组,在 assets 文件夹中识别相关的 XML 文件。该文件包含 XML 格式的运营商配置对象。属性名称定义为 CarrierConfigManager 下的键,值的类型(int/string/bool)由后缀指示。

典型的 int/string/bool 属性如下所示

<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" />

提交消息

[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]

示例 CL

请参阅更新的运营商配置文件,了解 CL 示例。

请求审核

要请求审核

  • 转到您的更改的 Gerrit URL,并将 android-carrier-config-review@google.com 添加为审核人员。
  • 您还可以将您的 Google 联系人添加到 Gerrit 上的抄送列表。
  • 出于跟踪目的,您可以将问题的受让人更改为 android-carrier-config-review@google.com

在提交通过审核和验证过程后,Gerrit 会自动将更改合并到公共代码库中。其他用户可以运行 repo sync 以将更新拉取到其本地客户端。