Nhật ký minh bạch của các mô-đun Mainline trên Android sử dụng các cấu trúc dữ liệu có thể xác minh để đảm bảo tính toàn vẹn của các mô-đun Mainline.
Tính hữu ích của nhật ký minh bạch đã được chứng minh qua các dự án như Tính minh bạch của tệp nhị phân Pixel và Tính minh bạch của chứng chỉ.
Nhật ký minh bạch được xây dựng dựa trên cây Merkle. Trang này giả định rằng bạn có kiến thức chung về cây Merkle và tính minh bạch nhị phân. Hãy xem Cấu trúc dữ liệu có thể xác minh để biết thông tin tổng quan về cây Merkle và trang chính để biết thông tin tổng quan về các nỗ lực minh bạch nhị phân trong Android.
Triển khai nhật ký
Nhật ký minh bạch của các mô-đun Mainline Android được triển khai bằng Tessera và tuân thủ quy cách tlog-tiles với chiều cao ô là 8 (mỗi ô hoặc gói chứa tối đa 28 = 256 mục).
Thư mục gốc của nội dung nhật ký được phân phát tại:
https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/
Thư mục gốc của nội dung thẻ thông tin được phân phát tại:
https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/
Xin lưu ý rằng những URL này không phải là các trang web tiêu chuẩn. Thay vào đó, bạn nên truy cập vào các mục nhật ký trong thư mục con của thư viện này theo phương thức lập trình bằng cách sử dụng các công cụ như Tessera hoặc thư viện Tlog Golang SumDB.
- Tree Tiles: Băm nút lá và nút bên trong của cây Merkle được phân phát trong
tile/<level>/<path>(ví dụ:tile/0/000,tile/1/000). - Gói mục nhập: Tải trọng của nút lá nhật ký được sắp xếp thành các gói mục nhập trong
tile/entries/<path>(ví dụ:tile/entries/000,tile/entries/001), trong đó mỗi gói chứa tối đa 256 mục nhập được nối.
Hãy tham khảo phần Nội dung nhật ký để biết nội dung của từng mục.
Băm gốc của cây Merkle trong nhật ký, có trong chốt kiểm tra, được phân phát tại https://gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint ở định dạng chốt kiểm tra.
Nguồn gốc của điểm kiểm tra là gstatic.com/android/binary_transparency/mainline/modules/2026/1.
Chữ ký điểm kiểm tra được tạo bằng thuật toán chữ ký Ed25519.
Bạn có thể xác minh chữ ký của điểm kiểm tra bằng khoá công khai sau đây ở định dạng trình xác minh ghi chú (như được xác định trong golang.org/x/mod/sumdb/note) hoặc định dạng PEM tiêu chuẩn:
- Định dạng trình xác minh ghi chú (
<name>+<key_hash>+<public_key_bytes>):
MainlineModulesLogV2+e490c9dd+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
- Định dạng PEM (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----
Nhật ký lưu trữ (Phiên bản 1)
Trước bản cập nhật quý 3 năm 2026, nhật ký này hoạt động theo một quy trình triển khai V1 trước đó bằng cách sử dụng chữ ký ECDSA (NIST P-256 với SHA-256). Nhật ký V1 được lưu trữ và ở chế độ chỉ đọc, nhưng vẫn có thể truy cập công khai để xác minh các mục trong quá khứ:
- Checkpoint: https://gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt
- Data Leaves: https://gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- Thư mục gốc của ô:
https://gstatic.com/android/binary_transparency/mainline/2026/01/tile/ - Khoá công khai (định dạng PEM, ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----
Vì các mô-đun Mainline tương tự như APK, nên các phương thức xác minh được mô tả trên trang xác minh APK của Google cũng áp dụng ở đây. Bạn có thể sử dụng các phương thức ở đó để xác minh thông tin xác nhận quyền sở hữu trong Mô hình người xác nhận quyền sở hữu.