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.

Triển khai USB HAL

Android 8.0 ra mắt di chuyển xử lý của USB lệnh ra khỏi init script và vào một daemon USB mẹ đẻ cho cấu hình tốt hơn và độ tin cậy mã. Đối với cấu hình chức năng Gadget, init script (trigger tài sản) được sử dụng để thực hiện các hoạt động tiện ích thiết bị cụ thể.

Trong phiên bản trước, các cấu hình thiết bị cụ thể đã đạt được thông qua điện thoại cụ thể init script (sử dụng trigger tài sản). 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 gọn gàng 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 hạt nhân có thể không thành công nhưng không được truyền trở lại mã khung công tác đặt kích hoạt thuộc tính. Kết quả là, các khuôn khổ 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. init script có một số giới hạn các hoạt động có thể được thực thi.

Bản phát hành Android 12 bổ sung hỗ trợ USB Gadget HAL cho Mô hình điều khiển mạng (NCM) và lệnh gọi API trả về cả số phiên bản HAL và tốc độ USB. Để biết thêm thông tin về API gọi có sẵn thông qua HAL USB, xem các android.hardware.usb tóm tắt gói .

HAL và Treble

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

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

Việc triển khai HAL mặc định sẽ xử lý tất cả các thiết bị chạy trước 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ị chạy trước 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ẽ quan tâm đến các thiết bị chạy trước Android 8.0. Việc thực hiện mặc định là đủ nếu thiết bị sử dụng dual_role_usb lớp để tình trạng báo cáo cổng type-c. Các 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.