Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

OTA dựa trên khối

Bạn có thể bật cập nhật qua mạng (OTA) dựa trên khối cho các thiết bị mới chạy Android 5.0. OTA là cơ chế OEM cập nhật từ xa phân vùng hệ thống của thiết bị:

  • Các phiên bản Android 5.0 trở lên sử dụng các bản cập nhật OTA chặn để đảm bảo rằng mỗi thiết bị sử dụng cùng một phân vùng chính xác. Thay vì so sánh các tệp riêng lẻ và tính toán các bản vá nhị phân, khối OTA xử lý toàn bộ phân vùng dưới dạng một tệp và tính một bản vá nhị phân duy nhất, đảm bảo phân vùng kết quả chứa chính xác các bit dự kiến. Điều này cho phép hình ảnh hệ thống thiết bị đạt được trạng thái tương tự thông qua fastboot hoặc OTA.
  • Android 4.4 và các phiên bản trước đó đã sử dụng các bản cập nhật OTA tệp, điều này đảm bảo các thiết bị chứa nội dung tệp, quyền và chế độ tương tự, nhưng cho phép siêu dữ liệu như dấu thời gian và bố cục của bộ nhớ bên dưới thay đổi giữa các thiết bị dựa trên phương pháp cập nhật.

Vì khối OTA đảm bảo rằng mỗi thiết bị sử dụng cùng một phân vùng, nó cho phép sử dụng dm-verity để ký mật mã vào phân vùng hệ thống. Để biết chi tiết về dm-verity, hãy xem Khởi động đã xác minh .

Lưu ý: Bạn phải có hệ thống OTA khối đang hoạt động trước khi sử dụng dm-verity.

khuyến nghị

Đối với các thiết bị chạy Android 5.0 trở lên, hãy sử dụng cập nhật OTA khối trong ROM gốc. Để tạo OTA dựa trên khối cho các bản cập nhật tiếp theo, hãy chuyển tùy chọn --block cho ota_from_target_files .

Đối với các thiết bị chạy Android 4.4 trở xuống, hãy sử dụng các bản cập nhật OTA tệp. Mặc dù có thể chuyển đổi thiết bị bằng cách gửi OTA khối đầy đủ của Android 5.0 trở lên, nhưng nó yêu cầu gửi một OTA đầy đủ lớn hơn đáng kể so với OTA gia tăng (và do đó không được khuyến khích).

Vì dm-verity yêu cầu hỗ trợ bộ nạp khởi động chỉ được tìm thấy trong các thiết bị mới chạy Android 5.0 trở lên, bạn không thể bật dm-verity cho các thiết bị hiện có.

Các nhà phát triển làm việc trên hệ thống Android OTA (hình ảnh khôi phục và các tập lệnh tạo OTA) có thể cập nhật các thay đổi bằng cách đăng ký vào danh sách gửi thư android-ota@googlegroups.com .

Tệp so với Chặn OTA

Trong OTA dựa trên tệp, Android cố gắng thay đổi nội dung của phân vùng hệ thống ở lớp hệ thống tệp (trên cơ sở từng tệp). Bản cập nhật không được đảm bảo ghi tệp theo thứ tự nhất quán, có thời gian sửa đổi lần cuối nhất quán hoặc siêu khối, hoặc thậm chí đặt các khối ở cùng một vị trí trên thiết bị khối. Vì lý do này, các OTA dựa trên tệp không thành công trên thiết bị hỗ trợ dm-verity; sau khi thử OTA, thiết bị không khởi động được.

Trong OTA dựa trên khối, Android phân phối thiết bị sự khác biệt giữa hai hình ảnh khối (thay vì hai tập hợp tệp). Bản cập nhật kiểm tra bản dựng thiết bị so với máy chủ bản dựng tương ứng ở cấp khối (bên dưới hệ thống tệp) bằng một trong các phương pháp sau:

  • Cập nhật đầy đủ . Việc sao chép toàn bộ hình ảnh hệ thống rất đơn giản và giúp tạo bản vá dễ dàng nhưng cũng tạo ra các hình ảnh lớn có thể khiến việc áp dụng các bản vá trở nên tốn kém.
  • Cập nhật gia tăng . Sử dụng công cụ khác biệt nhị phân tạo ra các hình ảnh nhỏ hơn và giúp ứng dụng bản vá dễ dàng, nhưng tốn nhiều bộ nhớ khi tạo bản vá.

Lưu ý: adb fastboot đặt các bit giống hệt nhau trên thiết bị dưới dạng OTA đầy đủ, vì vậy việc nhấp nháy tương thích với OTA khối.

Cập nhật hệ thống chưa sửa đổi

Đối với các thiết bị có phân vùng hệ thống chưa sửa đổi chạy Android 5.0, quá trình tải xuống và cài đặt OTA khối vẫn giống như đối với OTA tệp. Tuy nhiên, bản cập nhật OTA có thể bao gồm một hoặc nhiều điểm khác biệt sau:

  • Kích thước tải xuống . Các bản cập nhật OTA toàn khối có kích thước xấp xỉ bằng các bản cập nhật OTA toàn tệp và các bản cập nhật tăng dần có thể lớn hơn chỉ vài megabyte.

    so sánh các kích thước OTA

    Hình 1. So sánh kích thước OTA của Nexus 6 giữa các bản phát hành Android 5.0 và Android 5.1 (các thay đổi về bản dựng mục tiêu khác nhau)

    Nói chung, các bản cập nhật OTA theo khối gia tăng lớn hơn các bản cập nhật OTA cho tệp gia tăng do:

    • Bảo quản dữ liệu . OTA dựa trên khối bảo tồn nhiều dữ liệu hơn (siêu dữ liệu tệp, dữ liệu dm-verity, bố cục ext4, v.v.) so với OTA dựa trên tệp.
    • Sự khác biệt về thuật toán tính toán . Trong bản cập nhật OTA tệp, nếu đường dẫn tệp giống nhau trong cả hai bản dựng, thì gói OTA không chứa dữ liệu cho tệp đó. Trong cập nhật OTA khối, việc xác định ít hoặc không thay đổi trong tệp phụ thuộc vào chất lượng của thuật toán tính toán bản vá và bố cục của dữ liệu tệp trong cả hệ thống nguồn và hệ thống đích.
  • Độ nhạy với đèn flash và RAM bị lỗi . Nếu một tệp bị hỏng, OTA tệp sẽ thành công miễn là nó không chạm vào tệp bị hỏng, nhưng OTA khối sẽ không thành công nếu phát hiện bất kỳ lỗi nào trên phân vùng hệ thống.

Cập nhật hệ thống đã sửa đổi

Đối với các thiết bị có phân vùng hệ thống đã sửa đổi chạy Android 5.0:

  • Cập nhật OTA khối tăng dần không thành công . Một phân vùng hệ thống có thể được sửa đổi trong quá trình truy adb remount hoặc do phần mềm độc hại. Tệp OTA chấp nhận một số thay đổi đối với phân vùng, chẳng hạn như việc bổ sung các tệp không phải là một phần của bản dựng nguồn hoặc đích. Tuy nhiên, block OTA không cho phép bổ sung vào phân vùng, vì vậy người dùng sẽ cần phải cài đặt OTA đầy đủ ghi đè lên bất kỳ sửa đổi phân vùng hệ thống nào) hoặc flash một hình ảnh hệ thống mới để kích hoạt các OTA trong tương lai.
  • Nỗ lực thay đổi các tệp đã sửa đổi gây ra lỗi cập nhật . Đối với cả cập nhật tệp và chặn OTA, nếu OTA cố gắng thay đổi tệp đã được sửa đổi, thì cập nhật OTA không thành công.
  • Nỗ lực truy cập các tệp đã sửa đổi sẽ tạo ra lỗi (chỉ dành cho dm-verity) . Đối với cả cập nhật tệp và chặn OTA, nếu dm-verity được bật và OTA cố gắng truy cập các phần đã sửa đổi của hệ thống tệp hệ thống, OTA sẽ tạo ra lỗi.