Google cam kết thúc đẩy công bằng chủng tộc cho các cộng đồng Đen. Xem thế nào.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Triển khai USB HAL

Bản phát hành Android 8.0 chuyển việc xử lý các lệnh USB ra khỏi tập lệnh init và vào trình nền USB gốc để có cấu hình và độ tin cậy mã tốt hơn. Đối với cấu hình chức năng Tiện ích, tập lệnh init (kích hoạt thuộc tính) được sử dụng để thực hiện các hoạt động tiện ích dành riêng cho thiết bị.

Trong các bản phát hành trước, các cấu hình dành riêng cho thiết bị này đã đạt được thông qua các tập lệnh init dành riêng cho thiết bị (sử dụng kích hoạt thuộc tính). Chuyển sang thiết kế Lớp trừu tượng phần cứng (HAL) dẫn đến việc triển khai sạch hơn nhiều để giải quyết các vấn đề sau:

  1. Các hoạt động như ghi vào các nút sysfs kernel có thể thất bại nhưng không được truyền trở lại mã khung làm việc kích hoạt thuộc tính. Kết quả là, các khung công tác giả định không chính xác các hoạt động đã thành công mặc dù chúng đã âm thầm thất bại.
  2. tập lệnh init có số lượng thao tác giới hạn có thể được thực thi.

HAL và Treble

Các tập lệnh init dành riêng cho thiết bị đã được sử dụng thay thế cho các lớp HAL để thực hiện các hoạt động USB dành riêng cho thiết bị. USB (thông qua ADB) là giao diện chính để gỡ lỗi các sự cố hệ thống. Việc có một trình nền riêng để thực hiện cấu hình USB sẽ loại bỏ sự phụ thuộc vào mã khung, do đó ngay cả khi khung bị hỏng, USB vẫn phải chạy.

Theo mô hình Treble cũng được giới thiệu trong Android 8.0, tất cả các HAL đều được cách ly khỏi các dịch vụ Hệ thống và được yêu cầu chạy trong trình nền riêng của chúng. Điều này loại bỏ yêu cầu phải có một daemon USB độc quyền vì lớp HAL nhân đôi một cách độc đáo như một daemon USB.

Việc triển khai HAL mặc định sẽ chăm sóc tất cả các thiết bị tiền Android 8.0. Do đó, sẽ không có bất kỳ công việc dành riêng cho thiết bị nào dành cho các thiết bị tiền Android 8.0. Android 8.0 sử dụng giao diện HAL để truy vấn trạng thái của các cổng USB và để thực hiện hoán đổi vai trò dữ liệu và vai trò nguồn.

Thực hiện

Giao diện USB HAL mới cần được triển khai trên mọi thiết bị khởi chạy trên Android 8.0. Việc triển khai mặc định sẽ chăm sóc các thiết bị tiền Android 8.0. Việc triển khai mặc định là đủ nếu thiết bị sử dụng lớp dual_role_usb để báo cáo trạng thái cổng loại-c. Những thay đổi nhỏ có thể được yêu cầu trong các tập lệnh USB dành riêng cho thiết bị để chuyển quyền sở hữu các nút typc-c sang hệ thống.