Lớp phủ cây thiết bị

Cây thiết bị (DT) là một cấu trúc dữ liệu gồm các thuộc tính và nút được đặt tên, mô tả phần cứng không thể phát hiện. Các nhân, chẳng hạn như nhân Linux được dùng trong Android, sử dụng DT để hỗ trợ nhiều cấu hình phần cứng mà các thiết bị chạy Android sử dụng. Các nhà cung cấp phần cứng cung cấp tệp nguồn cây thiết bị (DTS) của riêng họ. Các tệp này được biên dịch thành tệp blob cây thiết bị (DTB) bằng trình biên dịch cây thiết bị. Sau đó, trình tải khởi động sẽ dùng các tệp này. Tệp DTB chứa cây thiết bị được làm phẳng có định dạng nhị phân.

Lớp phủ cây thiết bị (DTO) cho phép lớp phủ DTB trung tâm trên DT (một blob cây thiết bị để lớp phủ (DTBO)). Trình tải khởi động sử dụng DTO có thể duy trì DT hệ thống trên chip (SoC) và tự động phủ DT dành riêng cho thiết bị, thêm các nút vào cây và thay đổi các thuộc tính trong cây hiện có.

Các điểm mới trong bản phát hành Android 9

Trong Android 9, trình tải khởi động không được sửa đổi các thuộc tính được xác định trong DTO trước khi truyền DTB hợp nhất đến nhân.

Tải DT

Việc tải DT trong trình tải khởi động bao gồm xây dựng, phân vùng và chạy.

Hình 1. Cách triển khai thông thường để tải cây thiết bị trong trình tải khởi động.

  1. Cách tạo và nạp DTB:

    1a. Sử dụng DTC (dtc) để biên dịch DTS (.dts) thành DTB (.dtb). DTB được định dạng dưới dạng DT được làm phẳng. 1b. Nạp tệp .dtb vào một vị trí mà thời gian chạy của trình tải khởi động có thể truy cập (chi tiết bên dưới).

  2. Để phân vùng, hãy xác định một vị trí đáng tin cậy và có thể truy cập trong thời gian chạy của trình tải khởi động trong bộ nhớ flash để đặt .dtb. Các vị trí mẫu:

    Hình 2. Đặt .dtb vào một phân vùng khởi động bằng cách
    nối vào image.gz và truyền dưới dạng
    "kernel" đến mkbootimg.

    Hình 3. Đặt .dtb vào một phân vùng duy nhất
    (ví dụ: phân vùng dtb).

  3. Cách tải DTB và khởi động nhân:

    • Tải .dtb từ bộ nhớ vào bộ nhớ.
    • Khởi động nhân bằng địa chỉ bộ nhớ của DT đã tải.

Tiếp theo là gì?

Trang này trình bày chi tiết quy trình khởi động điển hình của trình tải khởi động để tải DT và cung cấp danh sách các thuật ngữ DT phổ biến. Các trang khác trong phần này mô tả cách triển khai tính năng hỗ trợ trình tải khởi động, cách biên dịch, xác minh và tối ưu hoá DTO, cũng như cách sử dụng nhiều DT. Bạn cũng có thể xem thông tin chi tiết về cú pháp DTOđịnh dạng phân vùng DTO và DTBO bắt buộc.