Android Mainline मॉड्यूल का पारदर्शिता लॉग, पुष्टि किए जा सकने वाले डेटा स्ट्रक्चर का इस्तेमाल करता है. इससे Mainline मॉड्यूल की सुरक्षा को पक्का किया जाता है.
पारदर्शिता लॉग की उपयोगिता, Pixel बाइनरी ट्रांसपेरंसी और प्रमाणपत्र पारदर्शिता जैसे प्रोजेक्ट से साबित हो चुकी है.
पारदर्शिता लॉग, मर्कल ट्री पर आधारित होते हैं. इस पेज पर यह मानकर जानकारी दी गई है कि आपको मर्कल ट्री और बाइनरी ट्रांसपेरेंसी के बारे में सामान्य जानकारी है. मर्कल ट्री के बारे में खास जानकारी पाने के लिए, पुष्टि किए जा सकने वाले डेटा स्ट्रक्चर देखें. साथ ही, Android में बाइनरी ट्रांसपेरेंसी से जुड़ी कोशिशों के बारे में खास जानकारी पाने के लिए, मुख्य पेज देखें.
लॉग लागू करना
Android Mainline मॉड्यूल के पारदर्शिता लॉग को Tessera का इस्तेमाल करके लागू किया जाता है. साथ ही, यह tlog-tiles की खास बातों का पालन करता है. इसमें टाइल की ऊंचाई आठ होती है. हर टाइल या बंडल में ज़्यादा से ज़्यादा 28 = 256 आइटम होते हैं.
लॉग के कॉन्टेंट का रूट यहां उपलब्ध है:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/
टाइल के कॉन्टेंट का रूट यहां उपलब्ध कराया जाता है:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/
ध्यान दें कि ये यूआरएल, स्टैंडर्ड वेब पेज नहीं हैं. इसके बजाय, इसकी सबडायरेक्ट्री में मौजूद लॉग एंट्री को प्रोग्राम के हिसाब से ऐक्सेस किया जाना चाहिए. इसके लिए, Tessera या Golang SumDB Tlog लाइब्रेरी जैसे टूल इस्तेमाल किए जाने चाहिए.
- ट्री टाइल: मर्कल ट्री के अंदरूनी और लीफ़ नोड हैश,
tile/<level>/<path>के तहत दिखाए जाते हैं. उदाहरण के लिए,tile/0/000,tile/1/000. - एंट्री बंडल: लॉग लीफ़ पेलोड को
tile/entries/<path>(जैसे,tile/entries/000,tile/entries/001) के तहत एंट्री बंडल में व्यवस्थित किया जाता है. हर बंडल में, एक साथ जोड़ी गई 256 एंट्री होती हैं.
हर एंट्री में क्या शामिल है, इसकी जानकारी के लिए लॉग कॉन्टेंट देखें.
लॉग का मर्कल ट्री रूट हैश, चेकपॉइंट में मौजूद होता है. इसे https://www.gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint पर चेकपॉइंट फ़ॉर्मैट में उपलब्ध कराया जाता है.
चेकपॉइंट का ऑरिजिन
android.transparency.goog/mainline/modules/2026/1 है.
चेकपॉइंट सिग्नेचर, Ed25519 सिग्नेचर एल्गोरिदम का इस्तेमाल करके जनरेट किए जाते हैं.
चेकपॉइंट के हस्ताक्षर की पुष्टि, इस सार्वजनिक पासकोड से की जा सकती है.
यह पुष्टि, नोट की पुष्टि करने वाले फ़ॉर्मैट (जैसा कि golang.org/x/mod/sumdb/note में बताया गया है)
या स्टैंडर्ड पीईएम फ़ॉर्मैट में की जा सकती है:
- Note verifier format (
<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/mainline/modules/2026/1+1a8e4064+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
- PEM फ़ॉर्मैट (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----
संग्रहित लॉग (V1)
साल 2026 की तीसरी तिमाही में हुए अपडेट से पहले, लॉग को ECDSA (SHA-256 के साथ NIST P-256) सिग्नेचर का इस्तेमाल करके, पुराने V1 वर्शन के तहत लागू किया गया था. V1 लॉग को संग्रहित कर दिया गया है और इसे सिर्फ़ पढ़ा जा सकता है. हालांकि, पुरानी एंट्री की पुष्टि करने के लिए, इसे सार्वजनिक तौर पर ऐक्सेस किया जा सकता है:
- चेकपॉइंट: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt
- डेटा लीव्स: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- टाइल रूट:
https://www.gstatic.com/android/binary_transparency/mainline/2026/01/tile/ - सार्वजनिक पासकोड (PEM फ़ॉर्मैट, ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----
Mainline मॉड्यूल, APKs की तरह ही होते हैं. इसलिए, Google APKs की पुष्टि करने वाले पेज पर बताए गए तरीके, यहां भी लागू होते हैं. Claimant Model में किए गए दावों की पुष्टि करने के लिए, वहां दिए गए तरीकों का इस्तेमाल किया जा सकता है.