Tính năng của ứng dụng dành cho doanh nghiệp trên Android 9

Trang này cung cấp thông tin tổng quan về API cho doanh nghiệp, các tính năng và hành vi các thay đổi có trong Android 9.

Giao diện người dùng của hồ sơ công việc

Android 9 (API cấp 28) bao gồm các thay đổi về giao diện người dùng trong mặc định trình chạy để giúp người dùng tách riêng ứng dụng cá nhân và ứng dụng công việc. Nhà sản xuất thiết bị Việc hỗ trợ điều này có thể hiển thị cho người dùng chia sẻ ứng dụng trong các thẻ công việc và thẻ cá nhân riêng biệt. Chúng tôi cũng giúp người dùng thiết bị dễ dàng bật và tắt hồ sơ công việc bằng cách bao gồm cả một nút chuyển trong thẻ công việc của trình chạy.

Hình 1. Thẻ cá nhân và thẻ công việc của trình chạy mặc định bằng tính năng chuyển đổi hồ sơ công việc

Khi cấp phép hồ sơ công việc và thiết bị được quản lý, Android 9 bao gồm hình minh hoạ động để giúp người dùng thiết bị hiểu các tính năng này.

Chuyển đổi ứng dụng giữa các hồ sơ

Android 9 có các API để khởi chạy một thực thể khác của ứng dụng trong một phiên bản khác để giúp người dùng chuyển đổi giữa các tài khoản. Ví dụ: một ứng dụng email có thể cung cấp một giao diện người dùng cho phép người dùng chuyển đổi giữa hồ sơ cá nhân và công việc để truy cập hai tài khoản email. Tất cả ứng dụng đều có thể gọi các API này để khởi chạy hoạt động chính của cùng một ứng dụng nếu ứng dụng đó đã được cài đặt trong hồ sơ khác. Người nhận thêm tài khoản chuyển đổi giữa nhiều hồ sơ sang ứng dụng của bạn, hãy làm theo các bước bên dưới để gọi của Lớp CrossProfileApps:

  1. Gọi getTargetUserProfiles() để nhận danh sách các cấu hình khác mà bạn có thể khởi chạy một phiên bản khác của ứng dụng. Phương thức này kiểm tra ứng dụng đó được cài đặt trong hồ sơ.
  2. Gọi getProfileSwitchingIconDrawable() để nhận biểu tượng mà bạn có thể dùng để đại diện cho hồ sơ khác.
  3. Gọi getProfileSwitchingLabel() để nhận văn bản đã bản địa hoá nhắc người dùng chuyển đổi hồ sơ.
  4. Gọi startMainActivity() để khởi chạy một thực thể của ứng dụng của bạn trong một hồ sơ khác.

Kiểm tra để đảm bảo hoạt động chính bạn muốn chạy đã được khai báo trong ứng dụng tệp kê khai, với thao tác theo ý định ACTION_MAIN và bao gồm một danh mục ý định CATEGORY_LAUNCHER.

Bật hoặc tắt hồ sơ công việc theo phương thức lập trình

Trình chạy mặc định (hoặc các ứng dụng có quyền MANAGE_USERS hoặc MODIFY_QUIET_MODE) có thể bật hoặc tắt hồ sơ công việc bằng cách gọi UserManager.requestQuietModeEnabled(). Bạn có thể hãy kiểm tra giá trị trả về để biết liệu người dùng có cần xác nhận thông tin xác thực trước khi trạng thái thay đổi. Vì có thể thay đổi này sẽ không xảy ra ngay lập tức, hãy nghe ACTION_MANAGED_PROFILE_AVAILABLE hoặc ACTION_MANAGED_PROFILE_UNAVAILABLE truyền tin để biết thời điểm cập nhật giao diện người dùng.

Ứng dụng của bạn có thể kiểm tra trạng thái của hồ sơ công việc bằng cách gọi UserManager.isQuietModeEnabled().

Khoá bất kỳ ứng dụng nào với một thiết bị

Kể từ Android 9, chủ sở hữu thiết bị và chủ sở hữu hồ sơ (của người dùng phụ) có thể khoá bất kỳ ứng dụng nào trên màn hình của thiết bị bằng cách đặt ứng dụng đó ở chế độ khoá tác vụ. Trước đây, nhà phát triển ứng dụng phải thêm tính năng hỗ trợ cho tác vụ khoá trong ứng dụng của họ. Android 9 cũng mở rộng tác vụ khoá Các API để lập hồ sơ chủ sở hữu của người dùng phụ không liên kết. Hãy làm theo các bước dưới đây để khoá một ứng dụng vào màn hình:

  1. Gọi DevicePolicyManager.setLockTaskPackages() tới cho phép các ứng dụng bật chế độ khoá tác vụ.
  2. Gọi ActivityOptions.setLockTaskEnabled() để chạy một ứng dụng trong danh sách cho phép ở chế độ khoá tác vụ.

Để dừng một ứng dụng ở chế độ khoá tác vụ, hãy xoá ứng dụng đó khỏi chế độ khoá tác vụ danh sách cho phép đang sử dụng DevicePolicyManager.setLockTaskPackages().

Bật các tính năng giao diện người dùng hệ thống

Khi chế độ khoá tác vụ được bật, chủ sở hữu thiết bị và chủ sở hữu hồ sơ có thể bật một số tính năng giao diện người dùng hệ thống trên thiết bị bằng cách gọi DevicePolicyManager.setLockTaskFeatures() và truyền một trường bit của các cờ tính năng sau:

Bạn có thể gọi DevicePolicyManager.getLockTaskFeatures() để xem danh sách các tính năng có trên thiết bị khi chế độ khoá tác vụ là bật. Khi thoát khỏi chế độ khoá tác vụ, thiết bị sẽ trở về trạng thái do các chính sách thiết bị khác.

Loại bỏ hộp thoại lỗi

Trong một số môi trường, chẳng hạn như các khu trưng bày bán lẻ hoặc thông tin công khai bạn không nên cho người dùng thấy hộp thoại lỗi. Chính sách thiết bị bộ điều khiển (DPC) có thể chặn hộp thoại lỗi hệ thống đối với sự cố hoặc không phản hồi bằng cách thêm DISALLOW_SYSTEM_ERROR_DIALOGS người dùng . Quy định hạn chế này ảnh hưởng đến tất cả các hộp thoại khi chủ sở hữu thiết bị áp dụng nhưng chỉ các hộp thoại lỗi hiển thị ở người dùng chính hoặc phụ mới bị chặn khi chủ sở hữu trang doanh nghiệp áp dụng quy định hạn chế. Quy định hạn chế này không ảnh hưởng đến hồ sơ công việc.

Trong Android 9, các ứng dụng chạy ở chế độ toàn màn hình chìm chế độ không hiển thị bong bóng lời nhắc khi ở trong chế độ khoá tác vụ. Bong bóng lời nhắc là một bảng điều khiển mà người dùng nhìn thấy (trong lần khởi chạy đầu tiên) giải thích cách thoát khỏi chế độ hiển thị tối đa.

Hỗ trợ nhiều người dùng trên các thiết bị chuyên dụng

Android 9 ra mắt khái niệm người dùng tạm thời dành cho thiết bị (trước đây gọi là thiết bị cosU). Người dùng tạm thời người dùng ngắn hạn dành cho trường hợp nhiều người dùng sử dụng chung một trang thiết bị chuyên dụng. Dữ liệu này bao gồm các phiên công khai của người dùng trên các thiết bị như thư viện hoặc các quầy đăng ký nhận phòng của khách sạn cũng như các phiên liên tục giữa nhóm người dùng trên thiết bị, ví dụ: shift worker.

Bạn phải tạo người dùng tạm thời trong nền. Chúng được tạo dưới dạng người dùng phụ trên thiết bị và sẽ bị xoá (cùng với các ứng dụng và dữ liệu) khi chúng bị dừng, chuyển đổi hoặc thiết bị khởi động lại. Để tạo một người dùng tạm thời, chủ sở hữu thiết bị có thể:

  1. Đặt cờ MAKE_USER_EPHEMERAL khi gọi DevicePolicyManager.createAndManageUser().
  2. Gọi DevicePolicyManager.startUserInBackground() để khởi động người dùng tạm thời trong nền.

Lưu ý: Các ứng dụng nhắm đến Android 9 sẽ nắm bắt UserManager.UserOperationException khi gọi createAndManageUser(). Gọi các ngoại lệ getUserOperationResult() để tìm hiểu lý do không được tạo.

Nhận thông báo sự kiện

DeviceAdminReceiver nhận thông báo về các sự kiện sau:

Hiện thông báo sự kiện cho người dùng

Chủ sở hữu thiết bị có thể định cấu hình các thông báo mà người dùng nhìn thấy khi họ bắt đầu và kết thúc phiên của họ:

Đăng xuất và ngăn người dùng

Chủ sở hữu thiết bị có thể sử dụng DevicePolicyManager.setLogoutEnabled() để chỉ định xem tính năng đăng xuất được bật đối với người dùng phụ. Để kiểm tra xem tính năng đăng xuất đã được bật hay chưa, hãy gọi DevicePolicyManager.isLogoutEnabled().

Chủ sở hữu hồ sơ của người dùng phụ có thể gọi DevicePolicyManager.logoutUser() để ngăn người dùng phụ và chuyển về người dùng chính.

Chủ sở hữu thiết bị có thể sử dụng DevicePolicyManager.stopUser() để dừng người dùng phụ đã chỉ định.

Lưu gói vào bộ nhớ đệm

Để đơn giản hoá việc cấp phép người dùng trên các thiết bị dùng chung với một nhóm người dùng cố định, chẳng hạn như thiết bị cho shift worker có thể lưu vào bộ nhớ đệm các gói cần thiết cho phiên nhiều người dùng:

  1. Gọi điện DevicePolicyManager.setKeepUninstalledPackages() để chỉ định danh sách các gói được giữ lại dưới dạng APK. Để truy xuất danh sách các lựa chọn này gói hàng, gọi DevicePolicyManager.getKeepUninstalledPackages().

  2. Gọi DevicePolicyManager.installExistingPackage() để cài đặt một gói đã được lưu giữ sau khi xoá qua setKeepUninstalledPackages().

Phương thức và hằng số bổ sung

Android 9 cũng bao gồm các phương thức và hằng số sau để hỗ trợ thêm phiên hoạt động của người dùng trên các thiết bị dùng chung:

Xoá dữ liệu gói và loại bỏ tài khoản

Chủ sở hữu thiết bị và chủ sở hữu hồ sơ có thể gọi clearApplicationUserData() để xoá dữ liệu người dùng cho một gói cụ thể. Để xoá tài khoản khỏi AccountManager, chủ sở hữu thiết bị và hồ sơ có thể gọi removeAccount().

Các hạn chế đối với người dùng và tăng cường quyền kiểm soát đối với chế độ cài đặt

Android 9 đưa ra một bộ hạn chế người dùng đối với DPC cũng như khả năng định cấu hình APN, thời gian và múi giờ cũng như các chế độ cài đặt hệ thống trên thiết bị.

Định cấu hình APN

Chủ sở hữu thiết bị có thể sử dụng các phương thức sau trong Lớp DevicePolicyManager để định cấu hình APN trên thiết bị:

Định cấu hình thời gian và múi giờ

Chủ sở hữu thiết bị có thể sử dụng các phương thức sau trong Lớp DevicePolicyManager để đặt giờ và múi giờ trên một thiết bị:

Thực thi các hạn chế đối với người dùng đối với các chế độ cài đặt quan trọng

Android 9 bổ sung một số hạn chế đối với người dùng để tắt các tính năng và chế độ cài đặt của hệ thống. Người nhận thêm một hạn chế, gọi DevicePolicyManager.addUserRestriction() bằng một trong hằng số UserManager sau đây:

Nếu DISALLOW_CONFIG_BRIGHTNESSDISALLOW_CONFIG_SCREEN_TIMEOUT được thực thi trên một thiết bị, chủ sở hữu thiết bị vẫn có thể đặt màn hình độ sáng, độ sáng màn hình chế độthời gian chờ khoá màn hình trên thiết bị bằng API DevicePolicyManager.setSystemSetting().

Dữ liệu có đo lượng dữ liệu

Chủ sở hữu thiết bị và chủ sở hữu hồ sơ có thể ngăn các ứng dụng dùng mạng dữ liệu có đo lượng dữ liệu. Mạng được coi là có đo lượng dữ liệu khi người dùng nhạy cảm với việc sử dụng nhiều dữ liệu do chi phí, giới hạn dữ liệu hoặc pin và các vấn đề về hiệu suất. Để ngăn các ứng dụng sử dụng mạng có đo lượng dữ liệu, hãy gọi DevicePolicyManager.setMeteredDataDisabledPackages() truyền danh sách tên gói. Để truy xuất các ứng dụng hiện bị hạn chế, hãy gọi DevicePolicyManager.getMeteredDataDisabledPackages().

Để tìm hiểu thêm về dữ liệu có đo lượng dữ liệu trong Android, hãy đọc bài viết Tối ưu hoá dữ liệu mạng Mức sử dụng.

Di chuyển DPC

Trình kiểm soát chính sách thiết bị (DPC) có thể chuyển quyền sở hữu của họ đối với một thiết bị hoặc hồ sơ công việc sang DPC khác. Bạn có thể chuyển quyền sở hữu để di chuyển một số đối tượng vào ứng dụng Quản lý Android API để di chuyển thiết bị từ DPC cũ hoặc giúp quản trị viên CNTT di chuyển sang EMM của bạn. Vì bạn chỉ khi thay đổi quyền sở hữu DPC, bạn không thể sử dụng tính năng này để thay đổi loại quản lý, ví dụ: di chuyển từ một thiết bị được quản lý sang một hồ sơ công việc hoặc ngược lại.

Bạn có thể sử dụng tài nguyên XML chính sách quản trị thiết bị để cho biết rằng phiên bản DPC này của bạn có hỗ trợ di chuyển. DPC mục tiêu cho biết phần tử có thể nhận quyền sở hữu bằng cách bao gồm một phần tử có tên <support-transfer-ownership>. Ví dụ bên dưới cho thấy cách bạn có thể thực hiện điều này trong tệp XML quản trị thiết bị của DPC:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

DPC muốn di chuyển quyền sở hữu sang ứng dụng DPC mới có thể kiểm tra xem phiên bản hỗ trợ di chuyển bằng cách gọi phương thức DeviceAdminInfo supportsTransferOwnership(). Trước khi chuyển quyền sở hữu, bạn chịu trách nhiệm của DPC nguồn trong việc xác minh DPC mục tiêu bằng so sánh chữ ký ứng dụng. Lớp PackageManager bao gồm để hoạt động với chữ ký ký mã.

Android duy trì hệ thống và chính sách người dùng của DPC nguồn thông qua quyền sở hữu chuyển giao—DPC không cần phải di chuyển các trình xử lý này. DPC nguồn có thể truyền dữ liệu tuỳ chỉnh đến DPC mục tiêu bằng cách sử dụng các cặp khoá-giá trị trong PersistableBundle. Sau một chuyển thành công, DPC mục tiêu có thể truy xuất dữ liệu này bằng cách gọi DevicePolicyManager.getTransferOwnershipBundle().

Các bước để chuyển quyền sở hữu một thiết bị được quản lý hoặc hồ sơ công việc là: tương tự:

  1. DPC nguồn kiểm tra để đảm bảo rằng phiên bản của DPC mục tiêu hỗ trợ di chuyển và xác nhận rằng chữ ký ứng dụng của DPC mục tiêu khớp với giá trị dự kiến.
  2. DPC nguồn gọi transferOwnership() để bắt đầu chuyển.
  3. Hệ thống đặt DPC mục tiêu làm quản trị viên đang hoạt động và đặt thiết bị đó với tư cách là chủ sở hữu của thiết bị hoặc hồ sơ công việc được quản lý.
  4. DPC mục tiêu nhận lệnh gọi lại onTransferOwnershipComplete() và có thể định cấu hình bằng cách sử dụng các giá trị từ đối số bundle.
  5. Nếu có vấn đề trong quá trình chuyển, hệ thống sẽ chuyển quyền sở hữu về DPC nguồn. Nếu DPC nguồn của bạn cần xác nhận rằng việc chuyển quyền sở hữu đã thành công, hãy gọi isAdminActive() để kiểm tra nhằm đảm bảo rằng DPC nguồn không còn là quản trị viên đang hoạt động.

Tất cả ứng dụng chạy trong hồ sơ công việc đều nhận được ACTION_PROFILE_OWNER_CHANGED phát đi khi chủ sở hữu trang doanh nghiệp thay đổi. Ứng dụng chạy trên thiết bị được quản lý sẽ nhận được ACTION_DEVICE_OWNER_CHANGED phát đi khi chủ sở hữu thiết bị thay đổi.

Hồ sơ công việc trên các thiết bị được quản lý đầy đủ

Chuyển hai phiên bản của DPC đang chạy với tư cách là chủ sở hữu thiết bị và chủ sở hữu hồ sơ diễn ra theo hai giai đoạn. Khi hồ sơ cá nhân và hồ sơ công việc được được liên kết, hãy hoàn tất quá trình chuyển theo thứ tự sau:

  1. Trước tiên, hãy chuyển quyền sở hữu hồ sơ công việc.
  2. Chờ lệnh gọi lại DeviceAdminReceiver onTransferAffiliatedProfileOwnershipComplete() để xác nhận rằng hồ sơ công việc đã được chuyển sang DPC mục tiêu.
  3. Cuối cùng, chuyển quyền sở hữu thiết bị được quản lý sang DPC mục tiêu.

Trì hoãn bản cập nhật qua mạng không dây (OTA)

Chủ sở hữu thiết bị có thể trì hoãn việc cập nhật hệ thống qua mạng không dây cho thiết bị trong tối đa 90 ngày để cố định phiên bản hệ điều hành chạy trên các thiết bị này trong khoảng thời gian quan trọng (chẳng hạn như ngày lễ). Hệ thống thực thi vùng đệm 60 ngày bắt buộc sau bất kỳ vùng đệm nào được xác định thời gian treo để tránh làm treo thiết bị vô thời hạn.

Trong thời gian bị treo:

  • Thiết bị không nhận được thông báo nào về các bản cập nhật OTA đang chờ xử lý.
  • Thiết bị không cài đặt bản cập nhật OTA cho hệ điều hành.
  • Người dùng thiết bị không thể tự kiểm tra bản cập nhật OTA trong phần Cài đặt.

Để đặt khoảng thời gian cố định, hãy gọi SystemUpdatePolicy.setFreezePeriods(). Do thời tiết đóng băng chu kỳ lặp lại hàng năm, ngày bắt đầu và ngày kết thúc của kỳ được biểu thị theo số nguyên đếm số ngày kể từ đầu năm. Ngày bắt đầu phải bắt đầu ít nhất 60 ngày sau khi kết thúc khoảng thời gian tạm ngưng trước đó. Thiết bị chủ sở hữu có thể gọi SystemUpdatePolicy.getFreezePeriods() để lấy danh sách khoảng thời gian đóng băng đã đặt trước đó trên đối tượng chính sách cập nhật hệ thống. DevicePolicyManager.getSystemUpdatePolicy() đã được để trả về khoảng thời gian đóng băng bất kỳ do chủ sở hữu thiết bị đặt.

Hạn chế chia sẻ trong hồ sơ công việc

Chủ sở hữu hồ sơ có thể ngăn người dùng chia sẻ dữ liệu cá nhân vào hồ sơ công việc trên thiết bị này bằng cách thêm giới hạn người dùng DISALLOW_SHARE_INTO_MANAGED_PROFILE. Quy định hạn chế này ngăn cản việc xử lý và chia sẻ ý định sau đây:

  • Ứng dụng hồ sơ cá nhân chia sẻ dữ liệu và tệp với ứng dụng hồ sơ công việc.
  • Ứng dụng hồ sơ công việc chọn các mục trong hồ sơ cá nhân (ví dụ: ảnh hoặc tệp.

Sau khi đặt hạn chế này, DPC của bạn vẫn có thể cho phép Hoạt động trên nhiều hồ sơ ý định bằng cách gọi addCrossProfileIntentFilter().

Khoá được bảo mật phần cứng và chứng chỉ máy

Android 9 thêm các API để giúp bạn làm việc với các khoá và chứng chỉ mà bạn có thể kết hợp để nhận dạng các thiết bị một cách an toàn. DPC đang chạy trong thiết bị hoặc chủ sở hữu hồ sơ chế độ chủ sở hữu hoặc trình cài đặt chứng chỉ được uỷ quyền có thể hoàn thành các nhiệm vụ sau:

  • Tạo khoá và chứng chỉ trong 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) của thiết bị Android. Chiến lược phát hành đĩa đơn các khoá đã tạo không bao giờ rời khỏi phần cứng bảo mật và có thể được dùng trong gói Android KeyChain. Gọi điện DevicePolicyManager.generateKeyPair() cung cấp thuật toán (xem KeyPairGenerator) và mọi mã phần cứng mà bạn muốn chứng thực, chẳng hạn như số sê-ri hoặc IMEI. Để tìm hiểu thêm về các tính năng bảo mật các thay đổi về phần cứng, hãy xem phần Bảo mật của Android 9 các tính năng nâng cao.
  • Liên kết chứng chỉ với một khoá hiện có do thiết bị tạo. Gọi điện DevicePolicyManager.setKeyPairCertificate() cung cấp bí danh của khoá hiện có và chuỗi chứng chỉ – bắt đầu bằng lá và bao gồm chuỗi tin cậy theo thứ tự.
  • Trước khi sử dụng, hãy kiểm tra để đảm bảo phần cứng bảo mật đã bảo vệ khoá. Để kiểm tra cơ chế bảo vệ khoá, hãy làm theo các bước trong phần Khoá Chứng thực.
  • Chủ sở hữu thiết bị và trình cài đặt chứng chỉ được uỷ quyền có thể nhận được bảng sao kê của các thiết bị ID phần cứng với các phiên bản hệ thống Android. Gọi điện DevicePolicyManager.generateKeyPair() truyền một hoặc nhiều trong tổng số ID_TYPE_BASE_INFO, ID_TYPE_SERIAL, ID_TYPE_IMEI hoặc ID_TYPE_MEID trong idAttestationFlags đối số. Chứng chỉ được trả về bao gồm phần cứng Mã nhận dạng trong bản ghi chứng thực. Nếu bạn không muốn thêm mã phần cứng, hãy truyền 0. Chủ sở hữu hồ sơ chỉ có thể nhận được thông tin về nhà sản xuất (bằng cách chuyển ID_TYPE_BASE_INFO). Để kiểm tra xem thiết bị có thể chứng thực mã nhận dạng hay không, hãy gọi isDeviceIdAttestationSupported().
  • Ngăn người dùng thiết bị sử dụng khoá doanh nghiệp sai mục đích (trong các tác vụ không phải của doanh nghiệp) bằng cách bỏ chọn các chứng chỉ chính. Hệ thống này không bao gồm các chứng chỉ không thể bỏ chọn trong bảng điều khiển bộ chọn. Trong DeviceAdminReceiver.onChoosePrivateKeyAlias() hãy trả về bí danh cho khoá doanh nghiệp của bạn để hệ thống tự động chọn chứng chỉ thay mặt cho người dùng. Để tạo một khoá không thể bỏ chọn, hãy gọi các phương thức DevicePolicyManager sau:

Bằng cách kết hợp các API này, doanh nghiệp có thể xác định thiết bị và xác nhận một cách an toàn tính toàn vẹn của mình trước khi cấp quyền truy cập:

  1. Thiết bị Android tạo một khoá riêng tư mới trong phần cứng bảo mật. Vì khoá riêng tư không bao giờ rời khỏi phần cứng bảo mật, nên khoá vẫn sẽ ở chế độ bí mật.
  2. Thiết bị sử dụng khoá này để tạo và gửi yêu cầu ký chứng chỉ (CSR) đến máy chủ. CSR bao gồm bản ghi chứng thực chứa mã thiết bị.
  3. Máy chủ xác thực chuỗi chứng chỉ (được can thiệp vào hệ thống theo một chứng chỉ của Google) và trích xuất siêu dữ liệu của thiết bị từ bản ghi chứng thực.
  4. Máy chủ xác nhận rằng phần cứng bảo mật bảo vệ khoá riêng tư và để đảm bảo mã thiết bị khớp với bản ghi của doanh nghiệp. Máy chủ cũng có thể kiểm tra hệ thống và các phiên bản bản vá của Android đáp ứng mọi yêu cầu.
  5. Máy chủ tạo một chứng chỉ từ CSR và gửi chứng chỉ đến thiết bị.
  6. Thiết bị ghép nối chứng chỉ với khoá riêng tư (chứng chỉ vẫn còn trong phần cứng bảo mật) cho phép các ứng dụng kết nối với các dịch vụ dành cho doanh nghiệp.

Các thay đổi, tính năng và API bảo mật khác

Mã nhận dạng của nhật ký bảo mật và nhật ký mạng

Android 9 có mã nhận dạng trong nhật ký bảo mật và nhật ký hoạt động mạng. Mã nhận dạng dạng số tăng đơn điệu cho mỗi sự kiện, giúp quản trị viên CNTT dễ dàng phát hiện lỗ hổng trong nhật ký của họ. Vì nhật ký bảo mật và nhật ký mạng tách biệt với nhau tập hợp, hệ thống sẽ duy trì các giá trị mã nhận dạng riêng biệt.

Gọi SecurityEvent.getId(), DnsEvent.getId() hoặc ConnectEvent.getId() để nhận giá trị mã nhận dạng. Hệ thống đặt lại mã nhận dạng này mỗi khi DPC bật tính năng ghi nhật ký hoặc khi thiết bị khởi động lại. Nhật ký bảo mật được tìm nạp bằng cách gọi DevicePolicyManager.retrievePreRebootSecurityLogs() không bao gồm các mã này.

Ghi nhật ký bảo mật

Tính năng ghi nhật ký bảo mật sẽ chỉ định một cấp độ nhật ký cho mỗi SecurityEvent. Để biết cấp độ nhật ký, gọi getLogLevel(). Phương thức này trả về một giá trị cấp độ nhật ký có thể là một trong các trạng thái sau: LEVEL_INFO, LEVEL_WARNING hoặc LEVEL_ERROR.

Android 9 ghi lại các sự kiện được liệt kê trong bảng dưới đây vào chế độ bảo mật nhật ký. Để kiểm tra thẻ của một sự kiện, hãy gọi getTag(). Người nhận truy xuất dữ liệu sự kiện, hãy gọi getData().

Thẻ Nội dung mô tả sự kiện
TAG_CERT_AUTHORITY_INSTALLED Cố gắng cài đặt chứng chỉ gốc mới vào bộ nhớ thông tin xác thực của hệ thống.
TAG_CERT_AUTHORITY_REMOVED Thao tác xoá chứng chỉ gốc khỏi bộ nhớ thông tin xác thực của hệ thống.
TAG_CERT_VALIDATION_FAILURE Chứng chỉ Wi-Fi không vượt qua được quy trình kiểm tra xác thực trong khi kết nối.
TAG_CRYPTO_SELF_TEST_COMPLETED Hệ thống đã hoàn tất quá trình tự kiểm tra mật mã.
TAG_KEYGUARD_DISABLED_FEATURES_SET Một ứng dụng quản trị đã tắt các tính năng của màn hình khoá của thiết bị hoặc hồ sơ công việc.
TAG_KEY_DESTRUCTION Hành động xoá một khoá mã hoá.
TAG_KEY_GENERATED Cố gắng tạo một khoá mã hoá mới.
TAG_KEY_IMPORT Nỗ lực nhập một khoá mã hoá mới.
TAG_KEY_INTEGRITY_VIOLATION Android phát hiện thấy một khoá mã hoá hoặc xác thực bị hỏng.
TAG_LOGGING_STARTED Tính năng ghi nhật ký bảo mật đã bắt đầu ghi.
TAG_LOGGING_STOPPED Tính năng ghi nhật ký bảo mật đã dừng ghi.
TAG_LOG_BUFFER_SIZE_CRITICAL Vùng đệm nhật ký bảo mật đã đạt 90% dung lượng.
TAG_MAX_PASSWORD_ATTEMPTS_SET Một ứng dụng quản trị đặt số lần nhập sai mật khẩu được phép.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET Ứng dụng quản trị đặt thời gian chờ khoá màn hình tối đa.
TAG_MEDIA_MOUNT Thiết bị đã gắn phương tiện lưu trữ di động.
TAG_MEDIA_UNMOUNT Thiết bị đã tháo phương tiện bộ nhớ di động.
TAG_OS_SHUTDOWN Tắt hệ thống Android.
TAG_OS_STARTUP Hệ thống Android đã khởi động.
TAG_PASSWORD_COMPLEXITY_SET Các yêu cầu về độ phức tạp của chế độ cài đặt mật khẩu trong ứng dụng quản trị.
TAG_PASSWORD_EXPIRATION_SET Một ứng dụng quản trị đặt khoảng thời gian hết hạn mật khẩu.
TAG_PASSWORD_HISTORY_LENGTH_SET Ứng dụng quản trị viên đặt độ dài cho nhật ký mật khẩu để ngăn người dùng sử dụng lại mật khẩu cũ.
TAG_REMOTE_LOCK Ứng dụng quản trị đã khoá thiết bị hoặc hồ sơ công việc.
TAG_USER_RESTRICTION_ADDED Một ứng dụng quản trị đã thiết lập giới hạn đối với người dùng.
TAG_USER_RESTRICTION_REMOVED Ứng dụng quản trị đã xoá một chế độ hạn chế người dùng.
TAG_WIPE_FAILURE Không xoá được thiết bị hoặc hồ sơ công việc.

Thử thách trên màn hình khoá hồ sơ công việc

Kể từ Android 9, chủ sở hữu hồ sơ có thể yêu cầu người dùng đặt một phương thức khoá riêng thử thách trên màn hình cho hồ sơ công việc của họ bằng cách sử dụng Giới hạn người dùng DISALLOW_UNIFIED_PASSWORD. Người nhận kiểm tra xem người dùng có đặt cùng một thử thách màn hình khoá cho thiết bị của họ hay không và hồ sơ công việc, cuộc gọi DevicePolicyManager.isUsingUnifiedPassword().

Nếu thiết bị có màn hình khoá hồ sơ công việc riêng biệt, DevicePolicyManager.setMaximumTimeToLock() chỉ đặt thay vì hết thời gian chờ khoá màn hình cho hồ sơ công việc thay vì cho toàn bộ thiết bị.

Quyền truy cập vào công cụ dành cho nhà phát triển

Để giúp duy trì dữ liệu công việc trong hồ sơ công việc, công cụ Cầu gỡ lỗi Android (adb) không thể truy cập vào các thư mục và tệp trong hồ sơ công việc.

Hỗ trợ thêm nhiều lựa chọn về sinh trắc học

Android 9 bổ sung khả năng kiểm soát chi tiết đối với phương thức xác thực phần cứng sinh trắc học trong một màn hình khoá của hồ sơ công việc. Gọi phương thức hiện có DevicePolicyManager.setKeyguardDisabledFeatures() bằng KEYGUARD_DISABLE_FACEKEYGUARD_DISABLE_IRIS. Để tắt tất cả các phương thức xác thực bằng sinh trắc học do thiết bị cung cấp, hãy thêm KEYGUARD_DISABLE_BIOMETRICS.

Ngừng sử dụng các chính sách dành cho quản trị viên thiết bị

Android 9 đánh dấu các chính sách được liệt kê dưới đây là không dùng nữa đối với DPC sử dụng thiết bị quản trị viên. Các chính sách này sẽ tiếp tục hoạt động trong Android 9 như họ đã làm trước đây. Kể từ bản phát hành Android 10, chính sách tương tự sẽ gửi ra một SecurityException khi quản trị viên thiết bị gọi.

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. Các chính sách sau đây sẽ tiếp tục hoạt động có sẵn để bật tính năng này:

Để 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.

Đơn giản hoá quy trình đăng ký mã QR

Thư viện mã QR tích hợp sẵn

Android 9 đi kèm với một thư viện QR để đơn giản hoá thiết bị mã QR cấp phép. Quản trị viên CNTT không còn phải nhập thông tin Wi-Fi để thiết lập theo cách thủ công một thiết bị. Thay vào đó, với Android 9, bạn có thể thêm những thông tin chi tiết này về Wi-Fi trong mã QR. Khi quản trị viên CNTT quét mã QR bằng mã của công ty thiết bị sẽ tự động kết nối với Wi-Fi và chuyển vào cấp phép mà không có bất kỳ thông tin đầu vào thủ công nào khác.

Phương thức cấp phép mã QR hỗ trợ các tính năng cấp phép bổ sung sau đây cho chỉ định thông tin chi tiết về Wi-Fi:

Đặt ngày và múi giờ bằng cách sử dụng phần bổ sung cấp phép

Phương thức cấp phép mã QR hỗ trợ cấp phép bổ sung để đặt thời gian và múi giờ trên một thiết bị:

Đang xoá tuỳ chọn dữ liệu

Quản trị viên thiết bị có thể hiện thông báo dành riêng cho người dùng khi xoá một công việc hoặc người dùng phụ. Thông báo này giúp người dùng thiết bị hiểu rằng Quản trị viên CNTT đã xoá hồ sơ công việc hoặc người dùng phụ này. Gọi điện wipeData(int, CharSequence) và cung cấp một nội dung giải thích. Khi người dùng chính hoặc chủ sở hữu thiết bị gọi, hệ thống không hiển thị thông báo và bắt đầu đặt lại thiết bị về trạng thái ban đầu.

Để xoá dữ liệu gói thuê bao khỏi một SIM eUICC được nhúng, hãy gọi wipeData() và thêm WIPE_EUICC vào flags đối số.

Phương thức cho chủ sở hữu hồ sơ được liên kết

Bạn có thể sử dụng các phương thức sau cho trang doanh nghiệp được liên kết chủ sở hữu: