Trang này cung cấp thông tin tổng quan về các tính năng, API mới và các thay đổi về hành vi được giới thiệu trong Android 10.
Hồ sơ công việc cho thiết bị thuộc sở hữu của công ty
Android 10 giới thiệu các tính năng cấp phép và chứng thực mới cho thiết bị thuộc sở hữu của công ty chỉ yêu cầu hồ sơ công việc.
Cải thiện công cụ cấp phép cho hồ sơ công việc
Bạn có thể cung cấp hồ sơ công việc trên các thiết bị chạy Android 10 trở lên được đăng ký bằng Mã QR hoặc tự động đăng ký. Trong quá trình cung cấp một thiết bị thuộc sở hữu của công ty, ý định bổ sung mới sẽ cho phép ứng dụng trình kiểm soát chính sách thiết bị (DPC) để bắt đầu hồ sơ công việc hoặc được quản lý hoàn toàn thiết lập. Sau khi tạo hồ sơ công việc hoặc thiết lập toàn bộ quyền quản lý, DPC phải khởi chạy màn hình tuân thủ chính sách để thực thi mọi chính sách ban đầu.
Trong tệp kê khai của DPC, hãy khai báo bộ lọc ý định mới cho
GET_PROVISIONING_MODE
trong một hoạt động và thêm BIND_DEVICE_ADMIN
để ngăn các ứng dụng tuỳ ý bắt đầu hoạt động. Ví dụ:
<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>
Trong quá trình cấp phép, hệ thống sẽ khởi chạy hoạt động liên kết với bộ lọc ý định. Mục đích của hoạt động này là chỉ định một chế độ quản lý (hồ sơ công việc hoặc được quản lý toàn bộ).
Có thể bạn nên truy xuất phần bổ sung cấp phép trước khi xác định
chế độ quản lý thích hợp cho thiết bị. Hoạt động có thể gọi
getIntent()
để truy xuất
như sau:
DPC cũng có thể tạo một ý định kết quả mới và thêm các tiện ích bổ sung sau vào đó:
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: Thêm vào gói hiện có hoặc tạo gói mới. Gói này được gửi dưới dạng ý định bổ sung khi DPC của bạn khởi chạy màn hình tuân thủ chính sách.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
: Chỉ chỉ định một tài khoản để di chuyển nếu thêm một tài khoản công việc trong công việc cấp phép hồ sơ.EXTRA_PROVISIONING_SKIP_EDUCATION_SCREENS
Để đặt chế độ quản lý trên thiết bị, hãy gọi
putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode)
,
trong đó desiredProvisioningMode
là:
- Hồ sơ công việc:
PROVISIONING_MODE_MANAGED_PROFILE
- Được quản lý hoàn toàn:
PROVISIONING_MODE_FULLY_MANAGED_DEVICE
Hoàn tất hồ sơ công việc hoặc cấp phép được quản lý toàn bộ bằng cách gửi cấp phép
quay lại thông tin chi tiết để thiết lập qua setResult(RESULT_OK,
Intent)
và đóng tất cả màn hình đang hoạt động bằng
finish()
.
Sau khi cấp phép xong, DPC sẽ khởi chạy một Ý định mới màn hình tuân thủ và thực thi các chế độ cài đặt chính sách ban đầu. Trên hồ sơ công việc thiết bị, màn hình tuân thủ sẽ được hiển thị trong hồ sơ công việc. DPC của bạn phải đảm bảo rằng người dùng nhìn thấy màn hình tuân thủ của ứng dụng, ngay cả khi người dùng thoát trong quy trình thiết lập.
Trong tệp kê khai của DPC, hãy khai báo bộ lọc ý định mới cho
ADMIN_POLICY_COMPLIANCE
trong một hoạt động và thêm BIND_DEVICE_ADMIN
để ngăn các ứng dụng tuỳ ý bắt đầu hoạt động. Ví dụ:
<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 của bạn phải sử dụng Ý định mới này thay vì lắng nghe
ACTION_PROFILE_PROVISIONING_COMPLETE
truyền tin.
Hoạt động liên kết với bộ lọc ý định có thể gọi
getIntent()
để truy xuất
thời gian
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
.
Sau khi tuân thủ chính sách, ADMIN_POLICY_COMPLIANCE
phải trả về setResult(RESULT_OK,
Intent)
và đóng tất cả màn hình đang hoạt động có
finish()
.
Các thiết bị được quản lý hoàn toàn sẽ đưa người dùng trở lại màn hình chính. Thiết bị có hồ sơ công việc nhắc người dùng thêm tài khoản cá nhân của họ trước khi đưa họ về nhà màn hình.
Chứng thực mã thiết bị cho hồ sơ công việc
DPC được đặt làm quản trị viên của hồ sơ công việc được cấp phép bằng quy trình thiết lập tự động có thể nhận mã thiết bị đã được chứng thực phần cứng bảo mật, chẳng hạn như IMEI hoặc số sê-ri. Thiết bị phải có phần cứng bảo mật (chẳng hạn như môi trường thực thi (TEE) hoặc Phần tử bảo mật (SE) và hỗ trợ mã thiết bị chứng thực và thiết lập tự động.
Thành phần quản trị viên của hồ sơ công việc có thể gọi DevicePolicyManager.generateKeyPair()
, truyền một hoặc nhiều ID_TYPE_SERIAL
, ID_TYPE_IMEI
hoặc ID_TYPE_MEID
cho đối số idAttestationFlags
.
Để tìm hiểu thêm về cách trích xuất và xác thực mã thiết bị, hãy xem phần Xác minh cặp khoá dựa trên phần cứng bằng chứng thực khoá.
Cải thiện hồ sơ công việc
Có các API mới để hỗ trợ khả năng hiển thị lịch trên nhiều hồ sơ và chặn lượt cài đặt ứng dụng không rõ nguồn gốc trên toàn thiết bị.
Hồ sơ công việc, nguồn không xác định trên toàn thiết bị
Ứng dụng được tải xuống từ các nguồn không phải là Google Play (hoặc ứng dụng đáng tin cậy khác
cửa hàng) được gọi là ứng dụng từ các nguồn không xác định. Trên Android 10, quản trị viên công việc
hồ sơ có thể ngăn mọi người dùng hoặc hồ sơ cài đặt ứng dụng không xác định
nguồn bất kỳ ở đâu trên thiết bị bằng cách thêm giới hạn người dùng mới
DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY
.
Tuy nhiên, sau khi thêm hạn chế này, người sử dụng thiết bị vẫn có thể
cài đặt ứng dụng bằng adb.
Để ngăn người dùng cài đặt nhầm ứng dụng không rõ nguồn gốc, chúng tôi đề xuất thêm giới hạn người dùng này vì không cần đến Google Play các dịch vụ được cài đặt. Nếu muốn hỗ trợ những phiên bản Android cũ hơn, bạn có thể đặt giá trị cấu hình được quản lý cho Google Play.
Chỉ cho phép các thiết bị đầu vào được phép sử dụng hồ sơ công việc
Khi quản trị viên của hồ sơ công việc gọi DevicePolicyManager.setPermittedInputMethods()
, người dùng chỉ được dùng các phương thức nhập dữ liệu được cho phép trong công việc của họ
thay vì toàn bộ thiết bị, giúp người dùng kiểm soát toàn bộ dữ liệu đầu vào
trên thiết bị của họ.
Xoá sạch hồ sơ công việc ở chế độ im lặng
Đã thêm WIPE_SILENTLY
gắn cờ DevicePolicyManager.wipeData()
.
Nếu bạn đặt cờ này, người dùng sẽ không được thông báo sau khi xoá hồ sơ công việc của họ
đang sử dụng wipeData()
.
Các tính năng mới dành cho thiết bị được quản lý hoàn toàn
Android 10 giới thiệu các tính năng và API mới dành cho các thiết bị được quản lý hoàn toàn, bao gồm cả việc cập nhật hệ thống theo cách thủ công, mở rộng mã QR và cấp phép NFC cho bao gồm thông tin đăng nhập cho mạng EAP Wi-Fi và hỗ trợ DNS qua TLS.
Cài đặt bản cập nhật hệ thống theo cách thủ công
Trong Android 10, quản trị viên của các thiết bị được quản lý toàn diện có thể cài đặt bản cập nhật hệ thống thông qua tệp cập nhật hệ thống. Các bản cập nhật hệ thống theo cách thủ công cho phép quản trị viên CNTT làm những việc sau:
- Bạn có thể kiểm thử bản cập nhật trên một số ít thiết bị trước khi cài đặt rộng rãi.
- Tránh tải xuống trùng lặp trên các mạng bị giới hạn băng thông.
- Cài đặt xen kẽ hoặc cập nhật thiết bị chỉ khi không sử dụng thiết bị.
Trước tiên, một quản trị viên CNTT đặt một chính sách cập nhật hệ thống bị hoãn
để trì hoãn việc cài đặt tự động (nếu cần). Tiếp theo, DPC của thiết bị sẽ gọi installSystemUpdate()
có đường dẫn đến tệp cập nhật hệ thống của nhà sản xuất thiết bị. Truyền InstallSystemUpdateCallback
mà hệ thống có thể sử dụng để báo cáo lỗi xảy ra trước khi thiết bị
sẽ khởi động lại. Nếu xảy ra lỗi, hệ thống sẽ gọi onInstallUpdateError()
có mã lỗi.
Sau khi thiết bị khởi động lại, DPC của bạn cần xác nhận cài đặt thành công
bằng cách sử dụng API phiên bản, chẳng hạn như
Build.FINGERPRINT
. Nếu việc cập nhật
không thành công, hãy báo cáo lỗi cho quản trị viên CNTT.
Cấp phép EAP Wi-Fi
Trong Android 10, dữ liệu NFC và mã QR dùng để cấp phép thiết bị có thể chứa Cấu hình EAP và thông tin xác thực, bao gồm cả chứng chỉ. Khi một người quét mã QR hoặc nhấn vào một thẻ NFC, thiết bị sẽ tự động xác thực với một mạng Wi-Fi cục bộ bằng EAP và bắt đầu quy trình cấp phép mà không cần thêm đầu vào thủ công.
Để xác thực Wi-Fi bằng EAP, hãy thêm
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
có giá trị "EAP"
. Để chỉ định xác thực EAP, bạn có thể thêm
sau đây là các phần bổ sung cấp phép cho ý định của bạn:
EXTRA_PROVISIONING_WIFI_EAP_METHOD
EXTRA_PROVISIONING_WIFI_IDENTITY
EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY
EXTRA_PROVISIONING_WIFI_DOMAIN
EXTRA_PROVISIONING_WIFI_PHASE2_AUTH
EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE
EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE
Hỗ trợ DNS riêng
Tổ chức có thể sử dụng DNS qua TLS (được gọi là DNS riêng trên thiết bị Android) để tránh rò rỉ truy vấn DNS, kể cả các thông tin của tên máy chủ nội bộ. Thành phần quản trị của thiết bị được quản lý hoàn toàn có thể kiểm soát chế độ cài đặt DNS riêng của thiết bị. Để đặt chế độ DNS riêng, gọi điện:
setGlobalPrivateDnsModeOpportunistic()
để thiết bị sử dụng DNS riêng khi hệ thống có thể phát hiện ra một máy chủ định danh hỗ trợ, hoặcsetGlobalPrivateDnsModeSpecifiedHost()
để chỉ định tên máy chủ của một máy chủ định danh có hỗ trợ RFC7858 trong đối sốprivateDnsHost
.
Khi DPC của bạn gọi một trong hai phương thức này, hệ thống sẽ trả về PRIVATE_DNS_SET_NO_ERROR
nếu
cuộc gọi đã thành công. Nếu không, hàm này sẽ trả về lỗi.
Để truy xuất chế độ DNS riêng và chế độ cài đặt máy chủ lưu trữ trên một thiết bị, hãy gọi getGlobalPrivateDnsMode()
và getGlobalPrivateDnsHost()
.
Bạn có thể ngăn người dùng thay đổi chế độ cài đặt DNS riêng bằng cách thêm
DISALLOW_CONFIG_PRIVATE_DNS
giới hạn người dùng.
Miễn trừ chế độ khoá VPN
Chế độ khoá VPN cho phép DPC chặn bất kỳ mạng nào lưu lượng truy cập không sử dụng VPN. Quản trị viên của toàn bộ thiết bị được quản lý và hồ sơ công việc có thể miễn trừ ứng dụng khỏi chế độ khoá. Các ứng dụng được miễn trừ sử dụng VPN theo mặc định nhưng sẽ tự động kết nối với các ứng dụng khác mạng nếu không có VPN. Các ứng dụng được miễn trừ cũng rõ ràng đã từ chối truy cập vào VPN (mạng riêng ảo) sẽ chỉ sử dụng các mạng khác.
Để miễn trừ một ứng dụng khỏi chế độ khoá, hãy gọi phương thức mới
Phương thức DevicePolicyManager
setAlwaysOnVpnPackage()
chấp nhận danh sách các gói ứng dụng được miễn trừ. Mọi gói ứng dụng mà DPC thêm vào
phải được cài đặt trên thiết bị khi phương thức này được gọi. Nếu một ứng dụng là
bị gỡ cài đặt và cài đặt lại, thì ứng dụng phải được miễn trừ một lần nữa. Để tải các ứng dụng
trước đây đã được miễn trừ khỏi chế độ khoá, hãy gọi
getAlwaysOnVpnLockdownWhitelist()
.
Để giúp quản trị viên của các thiết bị được quản lý hoàn toàn và hồ sơ công việc sử dụng chế độ khoá
trạng thái, Android 10 thêm
isAlwaysOnVpnLockdownEnabled()
.
Phạm vi uỷ quyền mới
Android 10 mở rộng danh sách chức năng mà DPC có thể uỷ quyền cho các chức năng khác
các ứng dụng chuyên biệt. Android nhóm các phương thức API cần thiết cho một tác vụ thành các nhóm
phạm vi. Để uỷ quyền cho một phạm vi, hãy gọi
setDelegatedScopes()
và chuyển một hoặc nhiều phạm vi sau:
DELEGATION_NETWORK_LOGGING
để uỷ quyền ghi nhật ký hoạt động mạngDELEGATION_CERT_SELECTION
để uỷ quyền lựa chọn chứng chỉ
Android 10 ra mắt lớp mới
DelegatedAdminReceiver
cho các ứng dụng được uỷ quyền. Hệ thống sử dụng broadcast receiver này để gửi các phản hồi giống DPC
lệnh gọi lại để uỷ quyền ứng dụng. Ứng dụng đã được ủy quyền hoạt động mạng
tính năng ghi nhật ký và lựa chọn chứng chỉ sẽ triển khai lớp này. Để thêm nội dung này
cho ứng dụng uỷ quyền, hãy làm theo các bước sau:
- Thêm một lớp con của
DelegatedAdminReceiver
cho ứng dụng uỷ quyền. - Khai báo
<receiver>
trong tệp kê khai ứng dụng, thêm một thao tác bộ lọc ý định cho mỗi lệnh gọi lại. Ví dụ:ACTION_NETWORK_LOGS_AVAILABLE
hoặcACTION_CHOOSE_PRIVATE_KEY_ALIAS
. - Bảo vệ broadcast receiver bằng
BIND_DEVICE_ADMIN
quyền.
Đoạn mã sau đây cho thấy tệp kê khai ứng dụng của một ứng dụng uỷ quyền duy nhất xử lý cả việc ghi nhật ký mạng và lựa chọn chứng chỉ:
<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>
Ghi nhật ký hoạt động mạng
Để giúp các tổ chức phát hiện và theo dõi phần mềm độc hại, DPC có thể ghi nhật ký các kết nối TCP và DNS theo hệ thống. Trong Android 10, quản trị viên của thành viên được quản lý toàn bộ có thể uỷ quyền ghi nhật ký mạng cho một ứng dụng chuyên biệt.
Để truy xuất nhật ký mạng sau hệ thống
cung cấp một lô, ứng dụng được uỷ quyền phải phân lớp con trước
DelegatedAdminReceiver
(như mô tả trước đó). Trong lớp con của bạn, hãy triển khai phương thức
onNetworkLogsAvailable()
bằng cách làm theo hướng dẫn trong phần Truy xuất nhật ký.
Các ứng dụng được uỷ quyền có thể gọi những lệnh sau
DevicePolicyManager
phương thức
(truyền null
cho đối số admin
):
Để tránh bị mất nhật ký, DPC không được bật tính năng ghi nhật ký mạng
nếu bạn định uỷ quyền cho một ứng dụng khác. Ứng dụng uỷ quyền phải bật và
thu thập nhật ký mạng. Sau khi DPC uỷ quyền ghi nhật ký mạng, DPC sẽ không nhận được
onNetworkLogsAvailable()
khác
lệnh gọi lại.
Để tìm hiểu cách báo cáo nhật ký hoạt động mạng từ một ứng dụng được uỷ quyền, hãy đọc Ghi nhật ký hoạt động mạng dành cho nhà phát triển.
Lựa chọn chứng chỉ
Trong Android 10, quản trị viên của thiết bị được quản lý toàn bộ, hồ sơ công việc và người dùng phụ có thể uỷ quyền chọn chứng chỉ cho một ứng dụng chuyên biệt.
Để chọn bí danh chứng chỉ, trước tiên, các ứng dụng được uỷ quyền phải là lớp con
DelegatedAdminReceiver
(như mô tả trước đó). Trong lớp con của bạn, hãy triển khai phương thức
Lệnh gọi lại onChoosePrivateKeyAlias()
và trả về một email đại diện cho một miền ưu tiên
chứng chỉ hoặc để nhắc người dùng chọn một chứng chỉ, hãy trả về null
.
Ngừng sử dụng các chính sách dành cho quản trị viên thiết bị
Android 10 ngăn các ứng dụng và DPC áp dụng thiết bị cũ
quản trị viên. Chúng tôi đề xuất khách hàng
và đối tác chuyển sang sử dụng thiết bị hoặc hồ sơ công việc được quản lý toàn bộ. Nội dung sau đây
gửi một SecurityException
khi được gọi bởi quản trị viên thiết bị nhắm đến Android 10:
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
Một số ứng dụng sử dụng tính năng quản trị thiết bị để quản trị thiết bị của người dùng thông thường. Cho ví dụ: khoá và xoá sạch dữ liệu trên thiết bị thất lạc. Để bật chế độ này, tiếp tục có sẵn:
Để biết thêm thông tin về những thay đổi này, hãy đọc bài viết Quản trị viên thiết bị không dùng nữa.
Tính năng mới cho ứng dụng
Ứng dụng nhắm đến Android 10 có thể truy vấn độ phức tạp của phương thức khoá màn hình đã đặt trên một thiết bị
trước khi hiển thị dữ liệu bảo mật hoặc khởi chạy các tính năng quan trọng. Ứng dụng gọi điện
API KeyChain
sẽ được hưởng lợi từ
cải tiến về hành vi, đồng thời cung cấp các tính năng mới cho ứng dụng VPN.
Kiểm tra chất lượng khoá màn hình
Kể từ Android 10, các ứng dụng có tính năng quan trọng đòi hỏi phải có phương thức khoá màn hình có thể truy vấn độ phức tạp của phương thức khoá màn hình của một thiết bị hoặc hồ sơ công việc. Ứng dụng cần có phương thức khoá màn hình mạnh hơn có thể chuyển người dùng đến chế độ cài đặt khoá màn hình của hệ thống. cho phép họ cập nhật chế độ cài đặt bảo mật.
Cách kiểm tra chất lượng phương thức khoá màn hình:
- Thêm quyền
REQUEST_PASSWORD_COMPLEXITY
mới vào tệp kê khai của ứng dụng. - Gọi
DevicePolicyManager.getPasswordComplexity()
. Mức độ phức tạp được chia thành bốn loại:
Để mở phần cài đặt phương thức khoá màn hình của hệ thống, hãy dùng
ACTION_SET_NEW_PASSWORD
với EXTRA_PASSWORD_COMPLEXITY
bổ sung – các tuỳ chọn không
đáp ứng sự phức tạp được chỉ định trong ý định bổ sung sẽ chuyển sang màu xám. Người dùng có thể
chọn trong số các lựa chọn phương thức khoá màn hình có sẵn hoặc thoát khỏi màn hình.
Phương pháp hay nhất: Hiển thị thông báo trong ứng dụng trước khi khởi chạy hệ thống
trang khóa màn hình. Khi ứng dụng của bạn tiếp tục, hãy gọi
DevicePolicyManager.getPasswordComplexity()
một lần nữa. Nếu bạn vẫn cần phải có một phương thức khoá màn hình mạnh hơn, hãy hạn chế quyền truy cập thay vì
liên tục nhắc người dùng cập nhật chế độ cài đặt bảo mật.
Hỗ trợ proxy HTTP trong các ứng dụng VPN
Trong Android 10, các ứng dụng VPN có thể đặt proxy HTTP
để kết nối VPN. Để thêm proxy HTTP, ứng dụng VPN phải định cấu hình
Thực thể ProxyInfo
có máy chủ và cổng,
trước khi gọi
VpnService.Builder.setHttpProxy()
.
Hệ thống và nhiều thư viện mạng sử dụng chế độ cài đặt proxy này nhưng hệ thống
không buộc ứng dụng phải chuyển các yêu cầu HTTP qua proxy.
Để xem mã mẫu cho biết cách đặt proxy HTTP, hãy xem ToyVPN ứng dụng mẫu.
Chế độ dịch vụ VPN
Các ứng dụng VPN có thể biết được dịch vụ có đang chạy hay không nhờ chế độ luôn bật Vpn và nếu chặn đang hoạt động. Phương thức mới vào Android 10 có thể giúp bạn điều chỉnh giao diện người dùng. Ví dụ: bạn có thể tắt nút ngắt kết nối khi VPN luôn bật kiểm soát vòng đời dịch vụ của bạn.
Các ứng dụng VPN có thể gọi những VpnService
sau
sau khi kết nối với dịch vụ
và thiết lập giao diện cục bộ:
isAlwaysOn()
đến tìm hiểu xem hệ thống có khởi động dịch vụ hay không nhờ VPN luôn bậtisLockdownEnabled()
để tìm hiểu xem hệ thống có chặn kết nối không sử dụng VPN
Trạng thái luôn bật sẽ giữ nguyên khi dịch vụ của bạn đang chạy nhưng trạng thái chế độ khoá có thể thay đổi.
Cải tiến chuỗi khoá
Android 10 giới thiệu một số điểm cải tiến liên quan đến
KeyChain
.
Khi một ứng dụng gọi KeyChain.choosePrivateKeyAlias()
, Android 10 trở lên
sẽ lọc danh sách chứng chỉ mà người dùng có thể chọn dựa trên
nhà phát hành và các thuật toán chính được chỉ định trong lệnh gọi.
Ví dụ: khi máy chủ TLS gửi một Yêu cầu chứng chỉ
như một phần của quá trình bắt tay TLS và trình duyệt gọi
KeyChain.choosePrivateKeyAlias()
, chỉ lời nhắc chọn chứng chỉ
có các lựa chọn khớp với thông số của nhà phát hành. Nếu không có tùy chọn phù hợp nào
hoặc không có chứng chỉ nào được cài đặt trên thiết bị, thì
người dùng sẽ không thấy lời nhắc lựa chọn.
Ngoài ra, KeyChain
không còn
yêu cầu thiết bị phải có phương thức khoá màn hình trước khi có thể dùng khoá hoặc chứng chỉ CA
đã nhập.