Phát triển thiết bị tùy chỉnh

Trang này giải thích một số tác vụ bạn có thể cần thực hiện nếu bạn đang thiết lập bản dựng cho thiết bị của riêng mình.

Tạo cấu hình flash tùy chỉnh

Hướng dẫn Fastboot được xác định trong một tạo phẩm có tên fastboot-info.txt . Nếu bạn xây dựng nhiều mục tiêu, bạn sẽ có nhiều tệp fastboot-info.txt trong $OUT_DIR . Và $ANDROID_PRODUCT_OUT trỏ tới mục tiêu mới nhất mà bạn đã xây dựng. Trang này liệt kê các tác vụ để fastboot thực thi và có thể được tạo lại bằng m fastboot_info . Bạn có thể giới thiệu logic nhấp nháy tùy chỉnh bằng cách sửa đổi tệp fastboot-info.txt .

Tệp fastboot-info.txt hỗ trợ các lệnh sau:

  • flash %s : Flash một phân vùng nhất định. Các đối số tùy chọn bao gồm --slot-other, filename_path , and --apply-vbmeta`.
  • update-super : Cập nhật siêu phân vùng.
  • if-wipe : Chạy có điều kiện một số thành phần khác nếu thao tác xóa được chỉ định.
  • erase %s : Xóa một phân vùng nhất định (chỉ có thể sử dụng kết hợp với if-wipe -> ví dụ: if-wipe erase cache ).

Xác định trạng thái khóa flash

Nếu bạn đang xây dựng một daemon flashboot tùy chỉnh (flashbootd) cho một thiết bị, bạn cần có khả năng lấy được trạng thái khóa bootloader và bootloader. getFlashLockState() @SystemApi truyền trạng thái bộ nạp khởi động và API hệ thống PersistentDataBlockManager.getFlashLockState() trả về trạng thái khóa của bộ nạp khởi động trên các thiết bị tuân thủ.

Giá trị trả về Điều kiện
FLASH_LOCK_UNKNOWN Chỉ được trả về bởi các thiết bị nâng cấp lên Android 7.x trở lên mà trước đây không hỗ trợ các thay đổi bộ nạp khởi động cần thiết để có trạng thái khóa flash nếu chúng hỗ trợ khả năng khóa/mở khóa nhấp nháy.
  • Các thiết bị mới chạy Android 7.x trở lên phải ở trạng thái FLASH_LOCK_LOCKED hoặc FLASH_LOCK_UNLOCKED .
  • Các thiết bị nâng cấp lên Android 7.x trở lên không hỗ trợ khả năng mở khóa/khóa nhấp nháy sẽ trả về trạng thái FLASH_LOCK_LOCKED .
FLASH_LOCK_LOCKED Trả về bởi bất kỳ thiết bị nào không hỗ trợ khóa/mở khóa nhấp nháy (tức là thiết bị luôn bị khóa) hoặc bất kỳ thiết bị nào hỗ trợ khóa/mở khóa nhấp nháy và đang ở trạng thái khóa.
FLASH_LOCK_UNLOCKED Được trả về bởi bất kỳ thiết bị nào hỗ trợ khóa/mở khóa nhấp nháy và đang ở trạng thái mở khóa.

Các nhà sản xuất nên kiểm tra các giá trị được trả về bởi các thiết bị có bộ nạp khởi động bị khóa và mở khóa. Ví dụ: AOSP chứa triển khai tham chiếu trả về giá trị dựa trên thuộc tính khởi động ro.boot.flash.locked . Mã ví dụ nằm trong các thư mục sau:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java