Bản cập nhật OTA dành cho doanh nghiệp

Phần mềm có thể cập nhật (Compatibility Definition Document – CDD) cho Android yêu cầu các thiết bị phải triển khai lớp SystemUpdatePolicy. SystemUpdatePolicy cho phép ứng dụng của chủ sở hữu thiết bị (DO) kiểm soát việc cài đặt bản cập nhật hệ thống (nếu có).

Thông báo cho chủ sở hữu thiết bị

Ứng dụng qua mạng không dây (OTA) phải thông báo cho các ứng dụng của chủ sở hữu thiết bị về các bản cập nhật OTA sắp tới bằng API hệ thống. Ứng dụng OTA cũng phải bao gồm bản ghi dấu thời gian khi bản cập nhật OTA lần đầu ra mắt. Ứng dụng OTA có thể gọi DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) để thông báo cho các ứng dụng của chủ sở hữu thiết bị. Nếu ứng dụng OTA không biết bản cập nhật có phải là bản vá bảo mật hay không, thì ứng dụng OTA có thể quay lại sử dụng DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime).

Nếu hiện không có bản cập nhật, ứng dụng OTA sẽ báo cáo việc này bằng cách đặt đối số updateReceivedTime thành -1. Bạn nên gửi thông báo bất cứ khi nào ứng dụng OTA thăm dò máy chủ OTA, hoặc khi một OTA được đẩy đến ứng dụng khách. Bạn cũng có thể gửi thông báo thường xuyên hơn.

Chính sách cập nhật hệ thống

Android 9 giúp chủ sở hữu thiết bị kiểm soát bản cập nhật bằng cách cho phép họ hoãn bản cập nhật OTA lên đến 90 ngày. Tập trung vào các giải pháp dành riêng cho thiết bị (trước đây gọi là COSU), tính năng này cho phép chủ sở hữu tạm dừng phiên bản hệ điều hành chạy trên thiết bị trong những khoảng thời gian quan trọng, chẳng hạn như ngày lễ.

Để tuân thủ CDD, ứng dụng OTA phải triển khai các chính sách về hành vi. DO có thể đặt các chính sách sau đây mà các hệ thống con cập nhật hệ thống thiết bị phải tuân thủ:

Chủ sở hữu thiết bị cũng có thể thiết lập khoảng thời gian đóng băng (trên Android 9 trở lên) để khiến phiên bản hệ điều hành bị treo trong những khoảng thời gian quan trọng, chẳng hạn như ngày lễ hoặc thời gian bận rộn khác. Hệ thống không cài đặt bản cập nhật OTA trong khoảng thời gian đóng băng. Bạn nên sử dụng SystemUpdatePolicy.InstallationOption (xem phần sau), tuy nhiên ứng dụng OTA cũng có thể gọi SystemUpdatePolicy.getFreezePeriods() để kiểm tra xem thiết bị có đang trong thời gian đóng băng hay không.

Triển khai các tuỳ chọn cài đặt

Android 9 giới thiệu @SystemApi, SystemUpdatePolicy.InstallationOption, được thiết kế cho các ứng dụng cập nhật hệ thống. SystemUpdatePolicy.InstallationOption đóng vai trò là lớp trình bao bọc cho các chính sách và khoảng thời gian cố định. Tuỳ chọn cài đặt cho ứng dụng biết cách xử lý các bản cập nhật hệ thống sắp tới và thời lượng của hành động đó, dựa trên chính sách cập nhật hệ thống hiện tại hoặc bất kỳ khoảng thời gian đóng băng nào có thể được đặt. Tuỳ chọn cài đặt có thể là một trong những tuỳ chọn sau:

  • TYPE_INSTALL_AUTOMATIC – Các bản cập nhật hệ thống đến sẽ được cài đặt ngay lập tức và người dùng không cần can thiệp ngay khi có. Thiết bị tự động khởi động lại.
  • TYPE_POSTPONE – Bạn có thể trì hoãn các bản cập nhật hệ thống sắp tới trong tối đa 30 ngày. Người dùng không thể cài đặt bản cập nhật theo cách thủ công. Nhà sản xuất thiết bị có thể chọn chặn hoặc không chặn bản vá bảo mật.
  • TYPE_PAUSE – Các bản cập nhật hệ thống đến có thể bị trì hoãn vô thời hạn cho đến khi có thông báo mới. Người dùng không thể cài đặt bản cập nhật theo cách thủ công. TYPE_PAUSE trì hoãn tất cả bản cập nhật, bao gồm cả bản vá bảo mật.

Ứng dụng cập nhật hệ thống có thể truy vấn SystemUpdatePolicy.InstallationOption bằng SystemUpdatePolicy.getInstallationOptionAt(long when), trong đó when thể hiện thời gian truy vấn tuỳ chọn cài đặt tính bằng số mili giây kể từ thời gian bắt đầu của hệ thống. Khi sử dụng phương thức SystemUpdatePolicy.getInstallationOptionAt(long when), ứng dụng cập nhật hệ thống có thể hành động theo tuỳ chọn được trả về cho đến khi hết thời gian hiệu lực. Sau khi tuỳ chọn được trả về hết hạn, ứng dụng có thể thực hiện một truy vấn khác bằng một dấu thời gian mới cho tuỳ chọn gần đây nhất.

Ứng dụng cập nhật hệ thống phải theo dõi các thông báo truyền tin DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED trong trường hợp toàn bộ chính sách được cập nhật.

Xác thực chính sách TYPE_PAUSE

Bạn có thể xác thực theo cách thủ công để biết tuỳ chọn TYPE_PAUSE có hoạt động trên hệ thống OTA hay không.

Chính sách TYPE_PAUSE đang có hiệu lực

Cách xác thực một chính sách TYPE_PAUSE đang hoạt động:

  1. Đặt một chính sách tự động và chỉ định TYPE_PAUSE.
  2. Khi đồng hồ hệ thống đang trong khoảng thời gian tạm dừng, hãy tiến hành cập nhật qua mạng không dây.
  3. Xác minh rằng thiết bị không nhận bản cập nhật OTA và người dùng không thể cài đặt bản cập nhật theo cách thủ công.
  4. Nếu thiết bị là thiết bị A/B, hãy khởi động lại thiết bị và xác minh rằng việc khởi động lại không kích hoạt tính năng tự động cài đặt bản cập nhật.

Chính sách TYPE_PAUSE đã hết hạn

Cách xác thực một chính sách TYPE_PAUSE đã hết hạn đang hoạt động:

  1. Đặt chính sách tự động và chỉ định TYPE_PAUSE.
  2. Trong khi đồng hồ hệ thống đang ở giai đoạn tạm dừng, hãy đẩy bản cập nhật OTA.
  3. Chờ khoảng thời gian tạm dừng kết thúc.
  4. Kiểm tra để đảm bảo rằng thiết bị tự động khởi động lại và bản cập nhật OTA được thực hiện sau khi khởi động lại.