Android 10 為企業提供的新功能

本頁概要說明全新的企業 API、功能,以及 Android 10 導入的行為變更

公司擁有裝置的工作資料夾

Android 10 推出了全新的佈建和認證功能, 只需使用工作資料夾,就能佈建公司擁有的裝置。

更強大的工作資料夾佈建工具

對於搭載 Android 10 以上版本的裝置,您可以透過以下方式佈建工作資料夾: QR code 或「零接觸」。 在佈建公司裝置時,新意圖額外允許 裝置政策控制器應用程式 (DPC) 可啟動工作資料夾「或」全代管 設定。建立工作資料夾或建立完全管理服務後,DPC 必須啟動政策遵循畫面,以強制執行任何初始政策。

在 DPC 的資訊清單檔案中,宣告以下項目的新意圖篩選器: GET_PROVISIONING_MODE敬上 並且新增 BIND_DEVICE_ADMIN 權限,以避免任意應用程式啟動活動。例如:

<activity
    android:name=".GetProvisioningModeActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action
            android:name="android.app.action.GET_PROVISIONING_MODE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

在佈建期間,系統會啟動與 意圖篩選器此活動的目的是指定管理模式 (工作資料夾或全代管)。

建議您先擷取佈建額外項目,再判斷 適當的管理模式活動可以呼叫 擷取 getIntent() 以擷取 包括:

DPC 也可以建立新的結果意圖,並為其加入下列額外項目:

如要在裝置上設定管理模式,請撥打 putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode), 其中 desiredProvisioningMode 為:

  • 工作資料夾:PROVISIONING_MODE_MANAGED_PROFILE
  • 全代管:PROVISIONING_MODE_FULLY_MANAGED_DEVICE

傳送佈建作業,完成工作資料夾或全代管佈建 透過 setResult(RESULT_OK, Intent) 返回設定程序的詳細資料 並關閉所有使用中畫面 finish()

佈建完成後,DPC 可以啟用新的意圖 並強制執行初始政策設定。位於工作資料夾 裝置及法規遵循畫面都顯示在工作資料夾中。裝置政策控制器 (DPC) 必須 確保即使使用者逸出了郵件,仍能看到法規遵循畫面 設定流程

在 DPC 的資訊清單檔案中,宣告以下項目的新意圖篩選器: ADMIN_POLICY_COMPLIANCE敬上 並且新增 BIND_DEVICE_ADMIN 權限,以避免任意應用程式啟動活動。例如:

<activity
    android:name=".PolicyComplianceActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

您的裝置政策控制器 (DPC) 必須使用這個新意圖,而不是監聽 ACTION_PROFILE_PROVISIONING_COMPLETE敬上 廣播。

與意圖篩選器相關聯的活動可以呼叫 擷取 getIntent() 以擷取 這個 EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE。 執行政策後,ADMIN_POLICY_COMPLIANCE 必須傳回 setResult(RESULT_OK, Intent),並關閉所有符合以下條件的使用中畫面: finish()

完全受管理的裝置會讓使用者返回主畫面。工作資料夾裝置 提示使用者新增個人帳戶,然後再返回住家 。

工作資料夾裝置 ID 認證

已將 DPC 設為透過零接觸註冊機制佈建的工作資料夾管理員 可取得安全硬體認證的裝置 ID,例如 IMEI 或製造商的 序號。裝置必須包含安全硬體 (例如受信任的硬體) 執行環境 (TEE) 或安全元件 (SE),並支援裝置 ID 認證和零接觸註冊機制

工作資料夾的管理員元件可以呼叫 DevicePolicyManager.generateKeyPair(),為 idAttestationFlags 引數傳遞一或多個 ID_TYPE_SERIALID_TYPE_IMEIID_TYPE_MEID

如要進一步瞭解如何擷取及驗證裝置 ID,請參閱「使用金鑰認證功能驗證硬體支援的金鑰組」。

改善工作資料夾

新的 API 可支援跨設定檔的日曆顯示設定和 禁止裝置從不明來源安裝應用程式

工作資料夾,裝置層級不明來源

從 Google Play (或其他可信任的應用程式) 以外的來源下載的應用程式 商店) 所呼叫的應用程式,是來自不明來源的應用程式。在 Android 10 中,工作管理員 設定檔可能會禁止任何使用者或設定檔安裝不明應用程式 新增使用者限制,決定裝置的任何位置 DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY。 新增這項限制後,裝置的使用者仍可 使用 ADB 安裝應用程式。

為避免使用者誤安裝來源不明的應用程式, 建議新增這項使用者限制不必透過 Google Play 操作 還可用於安裝其他 Google 服務如要支援舊版 Android,可以 調整 Google Play 的受管理設定值

限制允許輸入工作資料夾的輸入裝置

當工作資料夾管理員呼叫 DevicePolicyManager.setPermittedInputMethods() 時,使用者只能使用工作中許可的輸入法 而非整個裝置,讓使用者能完全掌控輸入來源 方法。

靜音清除工作資料夾

已新增「WIPE_SILENTLY」 標記至 DevicePolicyManager.wipeData()。 如果設定這個標記,工作資料夾抹除後,使用者就不會收到通知 使用 wipeData()

全代管裝置的新功能

Android 10 為全代管裝置推出了新功能和 API。 包括手動系統更新、將 QR code 和 NFC 佈建延伸至 包含 EAP Wi-Fi 網路的憑證,以及透過傳輸層安全標準 (TLS) 執行的 DNS。

手動安裝系統更新

在 Android 10 中,全代管裝置的管理員可透過以下方式安裝系統更新: 系統更新檔手動系統更新可讓 IT 管理員執行下列操作:

  • 先在少數裝置上測試更新,再廣泛安裝。
  • 避免在使用頻寬受限的網路時重複下載。
  • 僅供安裝或更新裝置,只在裝置未使用時進行更新。

首先,IT 管理員會設定延遲系統更新政策 視需要延遲自動安裝作業。接下來,裝置的裝置政策控制器 (DPC) 會呼叫 installSystemUpdate() 該檔案包含裝置製造商系統更新檔案的路徑。傳遞 InstallSystemUpdateCallback 系統可用於回報裝置前發生的錯誤的物件 就會重新啟動。若發生問題,系統會呼叫 onInstallUpdateError() 傳回。

裝置重新啟動後,DPC 必須確認成功安裝 使用版本 API Build.FINGERPRINT。如果更新 失敗,請向 IT 管理員回報失敗。

EAP Wi-Fi 佈建

在 Android 10 中,用於佈建裝置的 QR code 和 NFC 資料可能包括 EAP 設定和憑證 (包括憑證)。有人掃描 QR code 時 或輕觸 NFC 標記,裝置就會自動驗證本機 Wi-Fi 並使用 EAP 啟動佈建程序 手動輸入。

如要使用 EAP 驗證 Wi-Fi,請新增 EXTRA_PROVISIONING_WIFI_SECURITY_TYPE敬上 具有 "EAP" 值。如要指定 EAP 驗證,請將 為您的意圖佈建額外資源:

私人 DNS 支援

機構可以使用傳輸層安全標準 (TLS) (在 Android 裝置上稱為私人 DNS),避免 DNS 查詢外洩; 包括內部主機名稱的 IP 位址全代管裝置的管理元件 可以控管裝置的私人 DNS 設定。如要設定私人 DNS 模式, 請撥打:

當 DPC 呼叫上述任一方法時,若發生以下情況,系統會傳回 PRIVATE_DNS_SET_NO_ERROR 表示通話成功否則會傳回錯誤。

如要擷取裝置上的私人 DNS 模式和主機設定,請呼叫 getGlobalPrivateDnsMode()getGlobalPrivateDnsHost()。 如要禁止使用者變更私人 DNS 設定,請在網域結尾加上 DISALLOW_CONFIG_PRIVATE_DNS敬上 使用者限制

VPN 鎖定模式豁免

VPN 鎖定模式可讓 DPC 封鎖任何網路 不使用 以及 VPN 閘道管理員 受管理的裝置和工作資料夾可讓應用程式不受鎖定模式限制。 豁免的應用程式預設會使用 VPN,但會自動連線至其他應用程式 網路。排除的明確應用程式 拒絕存取 VPN 只能使用其他網路。

如要避免應用程式遭到鎖定模式,請呼叫 DevicePolicyManager 方法 setAlwaysOnVpnPackage()。 ,接受豁免的應用程式套件清單。DPC 新增的任何應用程式套件 必須在呼叫此方法時安裝在裝置上。如果應用程式 解除安裝後再重新安裝,必須再次豁免該應用程式。取得應用程式 先前豁免的鎖定模式,呼叫 getAlwaysOnVpnLockdownWhitelist()

為全代管裝置和工作資料夾的管理員啟用鎖定模式 Android 10 加入了 isAlwaysOnVpnLockdownEnabled()敬上 方法。

新增委派範圍

Android 10 擴充了 DPC 可委派給其他的功能清單 專門用來管理Android 會將工作所需的 API 方法歸為一組 範圍。如要委派範圍,請呼叫 setDelegatedScopes()敬上 並傳遞以下一或多個範圍:

Android 10 導入了新類別 DelegatedAdminReceiver敬上 委派應用程式系統會使用這個廣播接收器傳送類 DPC 形式的廣播接收器 委派應用程式的回呼。已委派網路活動的應用程式 記錄和憑證選取項目應會實作這個類別。如何新增 附加元件,請按照下列步驟操作:

  1. 新增 DelegatedAdminReceiver 的子類別 委派給委派應用程式
  2. 請在 <receiver> 的 應用程式資訊清單,為每個回呼新增意圖篩選器動作。例如: ACTION_NETWORK_LOGS_AVAILABLE敬上 或 ACTION_CHOOSE_PRIVATE_KEY_ALIAS
  3. 使用 BIND_DEVICE_ADMIN 保護廣播接收器 權限。

以下程式碼片段顯示單一委派應用程式的應用程式資訊清單 會處理網路記錄和憑證選取作業:

<receiver android:name=".app.DelegatedAdminReceiver"
        android:permission="android.permission.BIND_DELEGATED_ADMIN">
    <intent-filter>
        <action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
        <action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
    </intent-filter>
    </receiver>

網路活動記錄功能

為了協助組織偵測和追蹤惡意軟體,DPC 可以記錄 TCP 連線 以及 DNS 查詢在 Android 10 中, 全代管的管理員 裝置可以將網路記錄委派給特定應用程式。

需要系統之後擷取網路記錄 發出批次,委派應用程式應優先建立子類別 DelegatedAdminReceiver敬上 (如前所述)。在子類別中,實作 onNetworkLogsAvailable()敬上 回呼方法按照「擷取記錄」中的指示進行。

委派的應用程式可以呼叫下列內容: DevicePolicyManager 方法 (針對 admin 引數傳遞 null):

為避免遺失記錄,DPC 不應啟用網路記錄功能 是否打算委派給其他應用程式委派應用程式應啟用並 收集網路記錄檔在 DPC 委派網路記錄後,將無法接收 任何其他 onNetworkLogsAvailable() 回呼函式。

如要瞭解如何回報委派應用程式的網路活動記錄,請參閱 開發人員指南:網路活動記錄記錄

選取憑證

在 Android 10 中,管理員 全代管裝置、工作資料夾和次要使用者皆可委派 新增至特殊應用程式

如要選取憑證別名,委派應用程式應先建立子類別 DelegatedAdminReceiver敬上 (如前所述)。在子類別中,實作 onChoosePrivateKeyAlias() 回呼,並傳回偏好的別名 或傳回 null 來提示使用者選取憑證。

淘汰裝置管理員政策

Android 10 禁止應用程式和裝置政策控制器 (DPC) 套用舊版裝置 管理員政策。推薦客戶 和合作夥伴會轉換至全代管裝置或工作資料夾。下列 政策會擲回 SecurityException 指定 Android 10 的裝置管理員叫用時:

,瞭解如何調查及移除這項存取權。

部分應用程式使用裝置管理員來進行消費者裝置管理。適用對象 例如鎖定遺失的裝置,以及抹除其中的資料。如要啟用這項功能,請按照下列步驟操作: 政策仍可使用:

如要進一步瞭解上述異動,請參閱「裝置管理員」 已淘汰

應用程式的新功能

指定 Android 10 為目標的應用程式可以查詢裝置上設定的螢幕鎖定複雜度 才能顯示機密資料或啟動重要功能應用程式通話 KeyChain API 的優勢 行為改善,同時 VPN 應用程式也支援新功能。

螢幕鎖定品質檢查

自 Android 10 起,應用程式提供需要螢幕鎖定的重要功能 可以查詢裝置或工作資料夾的螢幕鎖定複雜度。需要 更安全的螢幕鎖定方式會將使用者導向系統螢幕鎖定設定, 以便更新安全性設定

如何檢查螢幕鎖定品質:

如要啟動系統螢幕鎖定設定,請使用 ACTION_SET_NEW_PASSWORD敬上 包含額外 EXTRA_PASSWORD_COMPLEXITY (不支援的選項) 符合意圖額外項目中指定的複雜度以灰色顯示。使用者可以 選擇可用的螢幕鎖定選項或離開畫面。

最佳做法:在啟動系統前,在應用程式中顯示訊息 螢幕鎖定頁面應用程式重新啟用後,請呼叫 DevicePolicyManager.getPasswordComplexity()敬上 可以選取「重新建立」,再次生成新的提示如果仍需提高螢幕鎖定的強度,請限制存取權,而非 不斷提示使用者更新安全性設定。

VPN 應用程式的 HTTP Proxy 支援功能

在 Android 10 中,VPN 應用程式可以設定 HTTP Proxy 以及供 VPN 連線使用如要新增 HTTP Proxy,VPN 應用程式必須設定 含有主機和通訊埠的 ProxyInfo 執行個體, 致電前 VpnService.Builder.setHttpProxy()。 系統和許多網路程式庫都採用這項 Proxy 設定,但系統 不會強制應用程式透過 Proxy 處理 HTTP 要求。

如需瞭解如何設定 HTTP Proxy 的程式碼範例,請參閱 ToyVPN 範例應用程式。

VPN 服務模式

VPN 應用程式可以發現服務是否處於執行中狀態,因為一律啟用 VPN鎖定時 模式。新方法 新增的功能,有助於調整使用者介面。舉例來說, 可能會在永久連線的 VPN 控制生命週期時,停用中斷連線按鈕 以及 SLI

VPN 應用程式可以呼叫下列 VpnService 方法連線至服務 並建立本機介面:

服務執行期間,「持續待機」狀態不會改變, 鎖定模式狀態可能會變更。

改善鑰匙圈

Android 10 推出了幾項與 KeyChain API。

當應用程式呼叫 KeyChain.choosePrivateKeyAlias()、Android 10 以上版本時 裝置會根據 的核發者和金鑰演算法。

舉例來說,TLS 伺服器傳送憑證要求時 訊息或瀏覽器呼叫 KeyChain.choosePrivateKeyAlias(),只有憑證選取提示 包含與 Issues 參數相符的選項。如果沒有相符的選項 或是裝置未安裝任何憑證,那麼 選取提示不會向使用者顯示

此外,KeyChain 已不再 要求裝置先設定螢幕鎖定,才能成功執行金鑰或 CA 憑證 已匯入。