Android के मेनलाइन मॉड्यूल के ऐक्सेस ट्रांसपेरंसी (पारदर्शिता) लॉग

Android Mainline Modules Transparency Log, पुष्टि किए जा सकने वाले डेटा स्ट्रक्चर का इस्तेमाल करता है. इससे यह पक्का किया जा सकता है कि Mainline मॉड्यूल में कोई बदलाव नहीं किया गया है.

Pixel Binary Transparency और प्रमाणपत्र पारदर्शिता जैसे प्रोजेक्ट से, पारदर्शिता लॉग की उपयोगिता साबित हुई है.

पारदर्शिता लॉग, मर्कल ट्री पर आधारित होते हैं. इस पेज पर, यह मानकर जानकारी दी गई है कि आपको Merkle ट्री और बाइनरी पारदर्शिता के बारे में सामान्य जानकारी है. मर्कल ट्री के बारे में खास जानकारी पाने के लिए, पुष्टि की जा सकने वाली डेटा स्ट्रक्चर देखें. साथ ही, Android में बाइनरी ट्रांसपैरेंसी से जुड़ी कोशिशों के बारे में खास जानकारी पाने के लिए, मुख्य पेज देखें.

लॉग लागू करने की प्रोसेस

Android Mainline Modules Transparency Log को Tessera का इस्तेमाल करके लागू किया जाता है. साथ ही, यह tlog-tiles specification का पालन करता है. इसमें टाइल की ऊंचाई 8 होती है. हर टाइल या बंडल में ज़्यादा से ज़्यादा 28 = 256 आइटम होते हैं.

लॉग के कॉन्टेंट का रूट यहां पर दिखाया जाता है: https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/

टाइलों के कॉन्टेंट का रूट यहां पर दिखाया जाता है: https://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 एंट्री तक होती हैं.

हर एंट्री में क्या-क्या शामिल है, इसके बारे में जानने के लिए लॉग कॉन्टेंट देखें.

लॉग का Merkle ट्री रूट हैश, चेकपॉइंट में मौजूद होता है. इसे https://gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint पर चेकपॉइंट फ़ॉर्मैट में उपलब्ध कराया जाता है. चेकपॉइंट की शुरुआत gstatic.com/android/binary_transparency/mainline/modules/2026/1 से हुई है.

चेकपॉइंट के सिग्नेचर, Ed25519 सिग्नेचर एल्गोरिदम का इस्तेमाल करके जनरेट किए जाते हैं. चेकपॉइंट के हस्ताक्षर की पुष्टि, यहां दिए गए सार्वजनिक पासकोड से की जा सकती है. यह पासकोड, नोट वेरिफ़ायर फ़ॉर्मैट (golang.org/x/mod/sumdb/note में बताया गया है) या स्टैंडर्ड पीईएम फ़ॉर्मैट में होना चाहिए:

  • नोट की पुष्टि करने वाले का फ़ॉर्मैट (<name>+<key_hash>+<public_key_bytes>):
MainlineModulesLogV2+e490c9dd+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
  • PEM फ़ॉर्मैट (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----

संग्रहित किया गया लॉग (V1)

साल 2026 की तीसरी तिमाही के अपडेट से पहले, लॉग को V1 के पुराने वर्शन के तहत लागू किया गया था. इसमें ECDSA (NIST P-256 with SHA-256) सिग्नेचर का इस्तेमाल किया गया था. V1 लॉग को संग्रहित किया जाता है और इसे सिर्फ़ पढ़ा जा सकता है. हालांकि, यह सार्वजनिक तौर पर उपलब्ध रहता है, ताकि पुराने लॉग की पुष्टि की जा सके:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----

Mainline मॉड्यूल, APK की तरह ही होते हैं. इसलिए, Google APK की पुष्टि करने वाले पेज पर बताए गए पुष्टि करने के तरीके यहां भी लागू होते हैं. दावा करने वाले व्यक्ति के मॉडल में किए गए दावों की पुष्टि करने के लिए, वहां दिए गए तरीकों का इस्तेमाल किया जा सकता है.