APN 和 CarrierConfig

電信業者可以在 Android 開放原始碼專案 (AOSP) 中更新存取點名稱 (APN) 資訊,以及電信業者專屬的設定 (CarrierConfig)。

使用公司電子郵件地址登入的 Google 帳戶

如要更新 APN 資訊或 CarrierConfig,您必須使用含有有效公司電子郵件地址的 Google 帳戶提交要求 (例如,Acme Company 的 APN 更新要求應來自 foobar@acme.com 這類電子郵件地址)。

如果您沒有已連結公司電子郵件地址的 Google 帳戶,請在瀏覽器中登出所有 Gmail 帳戶 (建議使用私密瀏覽功能,例如無痕式視窗,以免與其他帳戶混淆),然後使用公司電子郵件地址建立 Google 帳戶

準備本機開發環境

如果您從未將程式碼提交至 AOSP,就需要初始化建構環境、熟悉工具,並瞭解如何提交修補程式:

此外,我們強烈建議您使用 Google Issue Tracker 追蹤變更。

回報錯誤

  1. 前往 issuetracker.google.com,然後使用公司電子郵件地址登入 (請參閱「 使用公司電子郵件地址建立 Google 帳戶」)。
  2. 登入後,按一下畫面左側的「建立問題」
  3. 在「Component」中,依序選取「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 專案名稱 - 裝置/範例

檔案名稱: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. 連結任何你有根目錄存取權的 Android 裝置。
  2. 在 /etc/apns-conf.xml 中新增設定。
  3. 重設 APN 設定。
  4. 在 APN 設定中,確認已正確載入設定檔。
  5. 針對每個設定檔,測試數據連線、Wi-Fi 熱點和多媒體訊息,確保這些功能運作正常。

修訂版本訊息

[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

如需 CL 範例,請參閱「 範例 BICS APN」。

CarrierConfig 語法

專案名稱:platform/packages/apps/CarrierConfig

檔案名稱 - assets/carrier_config_.xml (Google Git 主頁連結)

根據相關的 MCC/MNC 元組,找出素材資源資料夾中的相關 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 ,將更新內容拉至本機用戶端。