5G 網路切片

搭載 Android 12 以上版本的裝置:Android 支援 5G 網路切片、使用網路虛擬化 將單一網路連線分成多個不同的虛擬連線 可為不同類型的流量提供不同資源5G 網路分段可讓網路業者利用網路運算子 為特定客群提供特定功能 Android 12 導入了 網路操作者將依循 5G 企業網路切片功能 可以為企業客戶提供下列服務:

適用於全代管裝置的企業裝置授權機制

適用對象: 全代管 公司裝置提供給員工,網路供應商就能提供 或一或多個活躍的企業網路配量,為公司裝置提供流量 路徑。從 Android 12 開始,Android 支援電信業者 透過 URSP 規則提供企業切片,而非設定配量 則透過 APNs 指派 APN

設有工作資料夾的裝置的企業應用程式授權功能

如果企業使用 工作資料夾 解決方案,Android 12 可讓裝置 來自 複製到企業網路配量企業可以啟用這項功能 主要是 裝置政策控制器 (DPC)

工作資料夾解決方案提供自動驗證和 企業所需的存取權控管,可確保只有 工作資料夾中的企業應用程式會轉送至企業網路配量。 工作資料夾中的應用程式不需要修改,就能明確要求將 和企業網路片段

Android 開放原始碼計畫的 5G 網路切片運作方式

Android 12 導入對 5G 網路切片的支援 。 網路共用模組 整合網路切片所需的現有連線 API。

Android 電話平台提供 HAL 和電話 API,以支援 根據核心網路程式碼和 5G 提出的網路要求來劃分 數據機中的切片功能圖 1 說明 5G 的組成元件 網路切片功能

5G 網路切片元件

圖 1. Android 開放原始碼計畫中的 5G 網路切片架構。

電話與連線平台支援下列項目:

  • 將針對配量類別的網路要求轉換為 流量描述元 然後傳送到數據機,以利比對 URSP 流量 選項
  • 在企業網路配量沒有的情況下,改回預設網路 可供使用
  • 將工作資料夾中所有應用程式的流量轉送至 對應的連線
  • 支援企業區隔功能

    • 偵測裝置上是否有工作資料夾
    • 檢查 企業 IT 管理員使用的 DPC

核心網路服務包含下列網路共用異動 模組:

  • 將大多數 android.net.* 公開或系統 API 類別新增至網路共用功能 模組
  • 擴大網路共用模組的範圍,包括:

    • f/b/core/java/android/net/…
    • f/b/services/net/…
    • f/b/services/core/java/com/android/server/connectivity/…
    • f/b/services/core/java/com/android/server/ConnectivityService.java
    • f/b/services/core/java/com/android/server/TestNetworkService.java
  • 將 VPN 程式碼移出網路共用模組

Android 12 移動了具有下列功能的程式碼 加入「網路共用」單元

  • 接收來自應用程式的網路連線要求
  • 接收系統發出的要求 (例如「將這些應用程式放在 Enterprise Slice";推出應用程式)。
  • 從系統傳送要求至電話代碼, 使用 HAL API 和數據機來設定網路或配量
  • 為各應用程式引導流量的淨化方式 (在 Android 12)
  • 透過以下方式告知應用程式網路流量目前情況 ConnectivityManager API,例如 NetworkCallbackgetActiveNetwork getNetworkCapabilities

實作

如要在裝置上支援 5G 切片功能,裝置必須採用支援 5G 的數據機 IRadio 1.6 HAL, setupDataCall_1_6 也能使用 Google Cloud CLI 或 Compute Engine API這個 API 設定數據連線,並包含以下參數 支援 5G 切片:

  • trafficDescriptor:指定傳送至數據機的流量描述元
  • sliceInfo:指定要用於哪個網路配量的資訊 EPDG 至 5G 的轉移情形
  • matchAllRuleAllowed:指定是否要使用預設的全部比對 URSP 就表示您允許規則電話通訊對於預設網路會將此值設為 true 但片段不會用於切片預設套用所有符合規則 更是如此當應用程式要求存取 可用的特定片段,則會回報為無法使用。適用對象 企業應用程式,電話通訊架構可以改回預設應用程式 網路。

數據機也必須將 getSlicingConfig 除非該用戶端回報為不支援 getHalDeviceCapabilities 也能使用 Google Cloud CLI 或 Compute Engine API

企業需求

以下說明企業使用 5G 網路切片的需求條件 。

  • 確認已設定工作資料夾的全代管裝置或員工裝置 支援 5G SA,並搭配支援 setupDataCall_1_6 也能使用 Google Cloud CLI 或 Compute Engine API
  • 與電信業者合作夥伴一起設定切片、效能或服務水準協議

在設有工作資料夾的裝置上啟用 5G 配量功能

對於設有工作資料夾的裝置,5G 網路分段設定會關閉: 。如要啟用網路劃分功能,企業 IT 管理員可啟用 , 適用於每位員工的 EMM DPC,這個系統 setPreferentialNetworkServiceEnabled 方法中的 DevicePolicyManager (DPM) API (已於 Android 12 推出)。

如果 EMM 供應商有自訂裝置政策控制器 (DPC),就必須整合 DevicePolicyManager API 同時也是為企業客戶提供支援

URSP 規則

本節提供用於設定 URSP 規則的電信業者資訊 包括企業、CBS、低延遲 以及高頻寬流量設定 URSP 規則時 不同的區塊類別,電信業者必須使用下列 Android 專屬 輕鬆分配獎金

ID 說明
OS ID 97a498e3-fc92-5c94-8986-0333d06e4e47 Android 的 OSId 是由命名空間 ISO 產生的 5 UUID 版本 OID 和「Android」這個名稱。

電信業者必須為各種流量流量設定 URSP 規則 「OS Id + OS 應用程式 ID 類型」做為描述元元件。例如「ENTERPRISE」 配量的值必須是 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345。 這個值是 OSId 的串連,也就是 OSAppId 的長度 (0x0A), 和 OSAppId 如要進一步瞭解流量描述元元件類型,請參閱 3GPP TS 24.526 表 5.2.1

下表說明不同配量類別的 OSAppId 值。

配量類別 OSApp ID 說明
Enterprise 0x454E5445525052495345 OSAppId 是「ENTERPRISE」字串的位元組陣列表示
Enterprise 0x454E544552505249534532 OSAppId 是「ENTERPRISE2」字串的位元組陣列表示
Enterprise 0x454E544552505249534533 OSAppId 是「ENTERPRISE3」字串的位元組陣列表示
Enterprise 0x454E544552505249534534 OSAppId 是「ENTERPRISE4」字串的位元組陣列表示
Enterprise 0x454E544552505249534535 OSAppId 是「ENTERPRISE5」字串的位元組陣列表示
CBS 0x434253 OSAppId 是「CBS」字串的位元組陣列表示法
PRIORITIZE_LATENCY 0x5052494f524954495a455f4c4154454e4359 OSAppId 是「PRIORITIZE_LATENCY」字串的位元組陣列表示
PRIORITIZE_BANDWIDTH 0x5052494f524954495a455f42414e445749445448 OSAppId 是「PRIORITIZE_BANDWIDTH」字串的位元組陣列表示

URSP 規則示例

下表為企業適用的 URSP 規則示例 CBS、低延遲、高頻寬和預設流量。

企業 1

企業 1 支援 Android 12 以上版本。 以下是 ENTERPRISE1 流量的 URSP 規則範例:

URSP 規則 #1 (enterprise1)
優先順序 1 (0x01)
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN Enterprise
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN Enterprise

企業 2

企業 2 支援 Android 13 以上版本。 以下是 ENTERPRISE2 流量的 URSP 規則範例:

URSP 規則 #2 (enterprise2)
優先順序 2 (0x02)
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN 企業 2
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN 企業 2

企業 3

企業 3 支援 Android 13 以上版本。 以下是 ENTERPRISE3 流量的 URSP 規則範例:

URSP 規則 #3 (enterprise3)
優先順序 3 (0x03)
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN 企業 3
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN 企業 3

企業 4

Android 13 以上版本提供 Enterprise 4 相關支援。 以下是 ENTERPRISE4 流量的 URSP 規則範例:

URSP 規則 #4 (enterprise4)
優先順序 4 x 04
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN Enterprise4
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN Enterprise4

企業 5

機構必須搭載 Android 13 以上版本,才能支援 Enterprise 5。 以下是 ENTERPRISE5 流量的 URSP 規則範例:

URSP 規則 #5 (enterprise5)
優先順序 5 x 05
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN 企業 5
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN 企業 5

CBS

CBS 支援 Android 13 以上版本。 以下是 CBS 流量的 URSP 規則範例:

URSP 規則 #6 (CBS)
優先順序 6 x 06
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E4703434253
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN cbs
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN cbs

低延遲

Android 13 以上版本支援低延遲。 以下是 LOW_LATENCY 流量的 URSP 規則範例:

URSP 規則 #7 (低延遲)
優先順序 7 (0x07)
流量描述元 #1
OS ID + OS 應用程式 ID 類型 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN 延遲
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN 延遲

高頻寬

Android 13 以上版本才可支援高頻寬。 以下是 HIGH_BANDWIDTH 流量的 URSP 規則範例:

URSP 規則 #8 (高頻寬)
優先順序 8 號 (0 x 08)
流量描述元 #1
OS ID + OS 應用程式 ID 類型 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY
元件 #2:DNN 頻寬
路徑選取描述元 #2
優先順序 2 (0x02)
元件 #1:DNN 頻寬

預設

URSP 規則 #9 (預設)
優先順序 9 (0x09)
流量描述元 #1
全部相符
路徑選取描述元 #1
優先順序 1 (0x01)
元件 #1:S-NSSAI SST:XX SD:YYYYYY

測試

如要測試 5G 網路切片,請使用下列手動測試。

如要設定測試裝置,請按照下列步驟操作:

  1. 確保 URSP 政策設有 符合企業類別,以及對應的路徑選擇 描述元將企業類別對應至企業類別;和 預設規則,將流量導向預設網際網路配量。

  2. 確保裝置上已設定工作資料夾。

  3. 選擇透過 DPC 使用網路切片

如要測試 5G 網路切片行為,請按照下列步驟操作:

  1. 確認已建立 PDU 工作階段,並已和企業配量建立 ( 以及工作資料夾中的應用程式 這個 PDU 工作階段
  2. 確認已使用預設網際網路建立單獨的 PDU 工作階段 而且個人資料夾中的應用程式會使用 PDU 工作階段。

5G 切片向上銷售

5G 配量向上銷售功能,適用於 Android 14-QPR1 可讓電信業者提供更完善的網路 以及提供延遲時間與頻寬

5G 切片向上銷售功能會使用電信業者提供的 TS.43 回應 授權伺服器推動購買流程。電信業者可以使用回應 指定電信業者購買 WebView 的網址,並將其他資料傳送至 WebView,並指出該片段是否已佈建且可供 以及電信業者網路

電信業者可以使用 電信業者設定,而用來控管是否可提出購買要求 以及應用程式要求付費功能的時機 電話架構會等待使用者或網路的回應。

5G 的切割功能提供一個介面,稱為 DataBoostWebServiceFlow, 來允許 Android 和電信業者的 WebView 進行通訊。

圖 2 顯示 5G 配量向上銷售購買流程:

5G 配量追加銷售購買流程

圖 2. 5G 配量追加銷售購買流程。

TS.43 授權流程

當使用者提出進階網路功能要求時,「電話」 架構會要求所要求服務授權設定 進階功能如果 TS.43 回應有效,電話架構會使用 來自 HTTP 回應的欄位,藉此引發購買要求。

Slice 購買欄位

TS.43 授權設定包括下列切片購買交易 欄位:

權限狀態

鍵:EntitlementStatus

類型:int

支援的值:0 (已停用)、1 (已啟用)、2 (不相容)、3 (佈建)、4 (已含)

佈建狀態

鍵:ProvStatus

類型:int

支援的值:0 (尚未佈建)、1 (已佈建)、2 (不適用)、 3 (進行中)

電話架構會結合授權狀態和 ,藉此判斷目前的配量購買狀態。成果 可以是下列其中一項:

如果授權狀態為「1」(已啟用),佈建狀態為「0」 (未佈建),電話通訊架構會顯示向上銷售通知 使用者透過電信業者的 WebView 購買點數下表 說明瞭電話通訊架構的不同 佈建和授權狀態值。

佈建狀態
未佈建 (0) 已佈建 (1) 個) 無法使用 (2) 進行中 (3)
授權狀態 已停用 (0 個) 失敗 失敗 失敗 失敗
已啟用 (1) 顯示 WebView 已購買廣告產品 已購買廣告產品 處理中
不相容 (2) 失敗 失敗 失敗 失敗
佈建中 (3) 電信業者發生錯誤 電信業者發生錯誤 處理中 處理中
已包含 (4) 電信業者發生錯誤 已購買廣告產品 已購買廣告產品 電信業者發生錯誤

服務流程欄位

TS.43 回應會指定要自訂的網址、使用者資料和內容類型 電信業者購買 WebView 行為如果未指定內容類型, 網址是以 GET 要求載入。如果使用者資料已存在,系統會將這些資料附加至 網址做為查詢參數 (例如 https://www.android.com?encodedValue=Base64EncodedUserData);如果不是 ,系統會直接採用網址,例如:https://www.android.com
如果內容類型是以 JSON 或 XML 格式指定,則網址會載入為 POST 要求,而使用者資料 (如果是以 Base 64 編碼,則為已解碼) 將以 POST 要求的資料。

網址

鍵:ServiceFlow_URL

類型:String

範例:"https://www.android.com"

使用者資料

鍵:ServiceFlow_UserData

類型:String

範例:"encodedValue=Base64EncodedUserData"

內容類型

鍵:ServiceFlow_ContentsType

類型:String

支援的值:0 (未指定)、1 (JSON)、2 (XML)

電信業者設定

以下是可用來自訂 以及 5G 切片向上銷售功能的行為

KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY

支援的進階功能清單。這是 TelephonyManager.PremiumCapability。 這些進階功能的價值和 NetworkCapabilities.NetCapability 類別如果要求的是付費功能,但這個功能不包含在這項服務中 設定,購買要求就會失敗,並傳回 CARRIER_DISABLED 結果。

在 Android 14 中,只有 PREMIUM_CAPABILITY_PRIORITIZE_LATENCY

KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT

顯示購買追加銷售通知的每日上限 使用者。如果達到每日上限,系統就不會顯示向上銷售通知, 系統會限制購買要求 (包括授權伺服器要求),直到 第二天的午夜。每日購買上限後提出的購買要求為 否則就會發生錯誤 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 結果。

KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT

購買向上銷售通知的每月次數上限 以便傳達給使用者如果達到每月上限,系統就不會顯示向上銷售通知 和購買要求 (包括授權伺服器要求) 都會受到限制 直到下個月的第一天。此日期後提出的購買要求 達到每月上限時 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 結果。

KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING

使用者點擊 追加銷售通知如果 TS.43 回應中找不到購買網址 授權伺服器傳送,則會改用這個值。如果來自 TS.43 回應或電信業者設定有效,則購買要求 失敗,並顯示 PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED 結果。

KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL

是否允許在裝置處於連線狀態時購買付費功能 。如果true,購買要求可設為 同時透過 LTE 和 New Radio (NR) 作品製作。如果 false,您只能透過 NR 提出購買要求,而透過 LTE 提出的要求會失敗 使用 PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE 結果。

KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG

向使用者顯示購買追加銷售通知的時間 就會自動取消取消通知後 導致要求數量受到限制,並因要求失敗而失敗 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 結果。

KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

對後續購買要求設下限制的時間長度, 因逾時或使用者取消而失敗如果使用者沒有點選 在 KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG 如果使用者取消或關閉通知,系統就會啟動輪詢計時器雖然 計時器處於啟用狀態,購買要求就會失敗, PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 結果。

KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG

對後續購買要求設下限制的時間長度, 因電信業者或網路而失敗。如果授權檢查失敗,網址 無法使用,或是電信業者購買網址顯示失敗、退費作業 計時器會開始倒數當這個計時器啟用時,購買要求就會失敗, 這個 PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED 結果。

KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG

網路必須設置切片設定的時間長度 購買付費功能這段期間內後續購買 封鎖要求,並傳回 PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP 結果。如果網路無法及時配置切片設定,應用程式可以 要求再次購買付費功能。電話服務不會考量 直到相應的配量設定傳送為止。 無論使用者是否付費給電信業者。

JavaScript 介面

當使用者按一下網路增強通知時,WebView 物件會有 向使用者顯示的貨運公司購買網址。電信業者可以使用 API 提供的 DataBoostWebServiceFlow 購買網站上的 JavaScript 介面,以便與配銷商通訊 購買應用程式

貨運公司網站可透過方法取得要求的付費功能 getRequestedCapability()

如果購買成功,貨運公司網站必須通知該片段 透過 notifyPurchaseSuccessful() 購買應用程式,或 notifyPurchaseSuccessful(duration),其中 duration 是選用參數 指出片段的預定時間長度。

如果無法成功購買,電信業者的網站必須通知該配量 透過 notifyPurchaseFailed(code, reason) 方法購買應用程式,其中 code 是指出失敗原因的失敗代碼,reason 則是 一般可理解的失敗原因。

如果未呼叫上述任一回應方法,就無法完成交易 而購買要求最終逾時。

以下是電信業者網站可傳回的有效失敗代碼 購買失敗時:

購買完成後,貨運公司必須更新 URSP 規則 並將 PRIORITIZE_LATENCY 片段傳遞至使用者的裝置