Nhật ký minh bạch của Mô-đun Mainline Android sử dụng 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 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 phần 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 Mô-đun Android Mainline được triển khai bằng Tessera và tuân thủ quy cách của tlog-tiles với chiều cao của ô là 8 (mỗi ô hoặc gói chứa tối đa 28 = 256 mục).
Gốc của nội dung nhật ký được phân phát tại:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/
Gốc của nội dung thẻ thông tin được phân phát tại:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/
Xin lưu ý rằng những URL này không phải là trang web chuẩn. Thay vào đó, bạn nên truy cập vào các mục nhập nhật ký trong thư mục con của nó theo phương thức lập trình bằng các công cụ như Tessera hoặc thư viện Tlog của Golang SumDB.
- Mảnh cây: Hàm băm nút lá và nút bên trong 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 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 với nhau.
Hãy tham khảo phần Nội dung nhật ký để biết nội dung mô tả của từng mục.
Hàm băm gốc cây Merkle của nhật ký, có trong điểm kiểm tra, được phân phát tại https://www.gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint ở định dạng điểm kiểm tra.
Điểm kiểm tra gốc là android.transparency.goog/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 định nghĩa trong golang.org/x/mod/sumdb/note)
hoặc định dạng PEM chuẩn:
- Định dạng của người xác minh ghi chú (
<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/mainline/modules/2026/1+1a8e4064+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ý hoạt động theo cách triển khai V1 trước đó bằ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 nhập trước đây:
- Điểm kiểm tra: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt
- Lá dữ liệu: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- Gốc của thẻ thông tin:
https://www.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 tại đây. Bạn có thể sử dụng các phương thức trong đó để xác minh thông báo xác nhận quyền sở hữu được đưa ra trong Mô hình bên xác nhận quyền sở hữu.