Android के बाइनरी ट्रांसपेरंसी के बारे में सामान्य जानकारी, मुख्य बाइनरी ट्रांसपेरंसी पेज पर उपलब्ध है.
इस पेज पर, अलग-अलग tile/
डायरेक्ट्री में मौजूद फ़ाइलों के फ़ॉर्मैट के बारे में ज़्यादा जानकारी दी गई है.
इन फ़ाइलों में, Merkle Tree के नोड के हैश शामिल होते हैं. ये नोड, Pixel फ़ैक्ट्री इमेज के लिए, बाइनरी ट्रांसपेरेंसी लॉग को दिखाते हैं. इसके अलावा, इन हैश को टाइल में पैकेज किया जाता है. ट्री व्यू को टाइल में बांटने के तरीके के बारे में जानने के लिए, लॉग को टाइल में बांटना लेख पढ़ें.
इस लॉग में, SHA256 का इस्तेमाल करके नोड हैश किए गए हैं. हम टाइल लिखने के लिए, tlog लाइब्रेरी का इस्तेमाल करते हैं. खास तौर पर, टाइल की ऊंचाई 1 होने पर ऐसा किया जाता है. इसका मतलब है कि हर टाइल में ज़्यादा से ज़्यादा 2^height = 2 हैश होते हैं. हर हैश 32 बाइट का होता है.
टाइल पाथ बनाने के बारे में जानकारी, tlog टाइल दस्तावेज़ में मिल सकती है.
हर लॉग के लिए टाइल का रूट यहां दिखता है:
- Pixel का पारदर्शिता लॉग
https://developers.google.com/android/binary_transparency/tile
- Google सिस्टम के APK के लिए पारदर्शिता वाला लॉग
https://developers.google.com/android/binary_transparency/google1p/tile/
टाइल की मदद से कैलकुलेट करने का उदाहरण
टाइल के काम करने के तरीके को बेहतर तरीके से समझने के लिए, हम Pixel के ट्रांसपेरेंसी लॉग का इस्तेमाल करके एक उदाहरण देते हैं.
मान लें कि आपके पास आठ लेवल का ट्री है. अगर आपको इंडेक्स 3 पर मौजूद एंट्री देखनी है, तो वह टाइल t(0, 1)
में पहला हैश होगा. टाइल के पाथ इस फ़ॉर्मैट में होते हैं
tile/H/L/NNN[.p/W]
. इसलिए, टाइल t(0, 1)
का पाथ,
https://developers.google.com/android/binary_transparency/tile/1/0/001 होगा.
ट्री रूट, टाइल t(3, 0)/1
में होगा. इसका पाथ,
https://developers.google.com/android/binary_transparency/tile/1/3/000.p/1 है.