Trạng thái thiết bị cho biết mức độ thoải mái của phần mềm có thể được cài đặt ROM cho một thiết bị và
liệu quy trình xác minh có được thực thi hay không. Trạng thái thiết bị là LOCKED
và
UNLOCKED
LOCKED
thiết bị ngăn bạn cài đặt ROM
phần mềm vào thiết bị, trong khi UNLOCKED
thiết bị cho phép
nội dung sửa đổi.
Khi một thiết bị bật nguồn, trước tiên, trình tải khởi động sẽ kiểm tra xem thiết bị có
LOCKED
hoặc UNLOCKED
. Nếu một thiết bị là
UNLOCKED
, trình tải khởi động sẽ hiển thị cảnh báo cho người dùng rồi tiếp tục
để khởi động ngay cả khi hệ điều hành đã tải không được ký hiệu bởi gốc tin cậy.
Nếu thiết bị là LOCKED
, trình tải khởi động sẽ thực hiện các bước trong
Xác minh quy trình khởi động để xác minh
phần mềm của thiết bị. Thiết bị LOCKED
chỉ khởi động nếu
hệ điều hành đã tải được ký đúng cách bởi gốc tin cậy. Để biết thêm thông tin, hãy xem
Quy trình khởi động.
Thay đổi trạng thái thiết bị
Để thay đổi trạng thái của thiết bị, hãy sử dụng
lệnh fastboot flashing [unlock | lock]
. Để bảo vệ người dùng
dữ liệu, tất cả các chuyển đổi trạng thái sẽ xoá sạch các phân vùng dữ liệu và yêu cầu người dùng
xác nhận trước khi dữ liệu bị xoá.
Quá trình chuyển đổi UNLOCKED
sang LOCKED
dự kiến khi
người dùng mua thiết bị phát triển đã qua sử dụng. Do việc khoá thiết bị,
người dùng phải yên tâm rằng thiết bị đang ở trạng thái do thiết bị tạo ra
nhà sản xuất, miễn là không có cảnh báo. LOCKED
đến
Quá trình chuyển đổi UNLOCKED
dự kiến diễn ra khi nhà phát triển muốn tắt
trên thiết bị cho mục đích phát triển.
Nguồn gốc của niềm tin
Gốc tin cậy là khoá mã hoá dùng để ký bản sao của Android được lưu trữ trên thiết bị. Phần riêng tư của nguồn gốc tin cậy chỉ được và được dùng để ký mọi phiên bản Android dành cho phạm vi phân phối. Phần công khai của niềm tin được nhúng trong thiết bị và được lưu trữ ở một nơi để không thể bị can thiệp (thường ở chế độ chỉ đọc bộ nhớ).
Khi tải Android, trình tải khởi động sẽ sử dụng gốc tin cậy để xác minh chân thực. Để biết thêm chi tiết về quy trình này, hãy xem Xác minh quy trình khởi động. Các thiết bị có thể có nhiều trình tải khởi động và cũng như nhiều khoá mã hoá như vậy có thể đang hoạt động.
Nguồn gốc tin cậy mà người dùng có thể thiết lập
Thiết bị có thể tuỳ ý cho phép người dùng định cấu hình gốc của tin cậy (cho ví dụ: khoá công khai). Các thiết bị có thể sử dụng gốc tin cậy mà người dùng có thể thiết lập này cho Xác minh quy trình khởi động thay vì gốc tích hợp sẵn của tính năng tin cậy. Điều này cho phép người dùng cài đặt và sử dụng các phiên bản Android tuỳ chỉnh mà không làm giảm tính bảo mật những điểm cải tiến của tính năng Xác minh quy trình khởi động.
Nếu triển khai gốc tin cậy mà người dùng có thể thiết lập, thì phải thực hiện theo cách rằng:
- Cần có xác nhận vật lý để thiết lập/xoá gốc mà người dùng có thể đặt của tin cậy.
- Chỉ người dùng cuối mới có thể đặt gốc tin cậy có thể thiết lập được cho người dùng. Không được phép được đặt tại trạng thái ban đầu hoặc tại bất kỳ điểm trung gian nào trước khi người dùng cuối nhận được thiết bị.
- Gốc tin cậy mà người dùng có thể thiết lập được lưu trữ trong bộ nhớ phát hiện giả mạo. Bằng chứng giả mạo có nghĩa là có thể phát hiện xem Android có bị can thiệp vào dữ liệu, ví dụ: nếu dữ liệu đã bị ghi đè hoặc thay đổi.
- Nếu bạn đặt gốc tin cậy có thể cài đặt cho người dùng, thiết bị phải cho phép một phiên bản của Android được ký bằng gốc tin cậy tích hợp sẵn hoặc tập dữ liệu người dùng có thể cài đặt gốc tin cậy để khởi động.
- Mỗi lần thiết bị khởi động bằng gốc tin cậy mà người dùng có thể thiết lập,
sẽ được thông báo rằng thiết bị đang tải phiên bản Android tuỳ chỉnh. Cho
ví dụ: màn hình cảnh báo, xem
LOCKED
có bộ khoá tuỳ chỉnh.
Một cách để triển khai gốc tin cậy mà người dùng có thể thiết lập là đặt
phân vùng chỉ có thể được cài đặt ROM hoặc xoá khi thiết bị đang ở
Trạng thái UNLOCKED
. Thiết bị Google Pixel 2 áp dụng phương pháp này và
phân vùng ảo được gọi là avb_custom_key
. Định dạng của
dữ liệu trong phân vùng này là dữ liệu đầu ra của
Lệnh avbtool extract_public_key
. Sau đây là ví dụ về cách đặt
gốc mà người dùng có thể thiết lập:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
Bạn có thể xoá gốc tin cậy có thể cài đặt của người dùng bằng cách cấp:
fastboot erase avb_custom_key