Skip to content

hi BINARIES

github-actions[bot] edited this page Nov 9, 2026 · 5 revisions

Languages: English | العربية | Čeština | Deutsch | Español | فارسی | Français | हिन्दी | Bahasa Indonesia | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Русский | Svenska | ไทย | Türkçe | Tiếng Việt | 中文


बंडल की गई बाइनरी: उद्गम और ऑडिट

VDBackup में गोपनीयता और सुरक्षा वैकल्पिक नहीं हैं। एक बैकअप उपकरण आपके सबसे निजी डेटा पर root के रूप में चलता है, इसलिए आपको ठीक-ठीक देखने में सक्षम होना चाहिए कि उसके भीतर क्या भेजा जाता है। यह पृष्ठ मॉड्यूल द्वारा ले जाई जाने वाली हर पूर्व-निर्मित बाइनरी और लाइब्रेरी, हर एक कहाँ से आती है, और यह कैसे सत्यापित करें कि कुछ भी अपारदर्शी चुपके से नहीं डाला गया, का दस्तावेज़ीकरण करता है।

सिद्धांत

  • कुछ भी अपारदर्शी नहीं। भेजी गई हर बाइनरी और लाइब्रेरी एक पिन की गई संस्करण पर एक नामित, सार्वजनिक upstream तक, एक रिकॉर्ड किए गए SHA-256 के साथ, पता लगाने योग्य है। कोई भी blob ऐसे प्रविष्टि के बिना बंडल नहीं किया जाता जिसे आप जाँच सकें।
  • upstream से लाया जाता है, कभी किसी डिवाइस से नहीं। नेटिव उपकरण आधिकारिक Termux पैकेज रिपॉज़िटरी से आते हैं (packages.termux.dev/apt पर हस्ताक्षरित .deb फ़ाइलें), कभी किसी फ़ोन पर इंस्टॉल किए गए Termux से कॉपी नहीं किए जाते। बिल्ड ज़ोर से विफल होता है, यह कभी सुधार नहीं करता।
  • पुनरुत्पादनीय। बिल्ड को फिर से चलाएँ और आपको वही फ़ाइलें मिलती हैं; पिन किए गए स्रोतों को फिर से लाएँ और SHA-256 मान मेल खाते हैं।
  • ऑडिट ट्रेल मॉड्यूल के साथ भेजा जाता है। यह केवल वेबसाइट पर नहीं है - यह इंस्टॉल किए गए मॉड्यूल के भीतर, आपके डिवाइस पर, यात्रा करता है, ताकि आप ऑफ़लाइन ऑडिट कर सकें।

क्या भेजा जाता है, और कहाँ से

उत्पाद स्रोत यह कैसे बनाया जाता है
bin/<abi>/ नेटिव उपकरण (tar, zstd, gzip, lz4, jq, rclone, restic, rsync, ssh/scp/sftp, age, age-keygen, script, sqlite3) + उनका lib/ क्लोज़र आधिकारिक Termux apt रिपॉज़िटरी (packages.termux.dev/apt), आधिकारिक .deb पैकेज .github/scripts/build_bin.sh .deb फ़ाइलें + उनकी सकर्मक निर्भरताएँ डाउनलोड करता है, उन्हें निकालता है, और बाइनरी के साथ-साथ केवल वे साझा लाइब्रेरी कॉपी करता है जिनकी हर एक को आवश्यकता होती है
bin/<abi>/abx2xml, bin/<abi>/xml2abx (ABX कनवर्टर फ़ॉलबैक) rhythmcache/android-xml-converter GitHub रिलीज़ (ABX_RELEASE, स्टैटिक ELF) build_bin.sh द्वारा पिन की गई रिलीज़ से डाउनलोड किया जाता है
companion.apk (वैकल्पिक Google Drive साथी) यह रिपॉज़िटरी, companion/ (Gradle/Kotlin) CI द्वारा स्रोत से बनाया जाता है और प्रोजेक्ट कुंजी से हस्ताक्षरित होता है; पूर्व-निर्मित blob नहीं
vdbackup_helper.dex (फ़्रेमवर्क हेल्पर) यह रिपॉज़िटरी, dex/src/ (Java) CI द्वारा javac + d8 के साथ स्रोत से संकलित किया जाता है

केवल पहली दो पंक्तियाँ ही पूर्व-निर्मित तृतीय-पक्ष बाइनरी हैं; अंतिम दो इस रिपॉज़िटरी में मौजूद स्रोत से बनाई जाती हैं और जिन्हें पढ़ा और फिर से बनाया जा सकता है।

Full बनाम lite संस्करण। lite संस्करण छोटा रहने के लिए केवल rclone और restic (दो सबसे बड़ी बाइनरी) छोड़ देते हैं और पहली बार किसी cloud गंतव्य या snapshot मोड का उपयोग करने पर उन्हें माँग पर (SHA-256 से सत्यापित) प्राप्त करते हैं; rsync और ssh/scp/sftp अब भी मौजूद हैं, और ऊपर सूचीबद्ध बाकी हर बाइनरी भी मौजूद है। Full संस्करण rclone (क्लाउड प्रदाता) और restic (स्नैपशॉट) एम्बेडेड के साथ आते हैं, इसलिए कभी कुछ भी डाउनलोड नहीं होता।

डिवाइस पर मैनिफेस्ट: PROVENANCE.json

build_bin.sh प्रति ABI एक bin/<abi>/PROVENANCE.json लिखता है। इंस्टॉल पर मॉड्यूल केवल आपके डिवाइस का ABI रखता है, इसलिए वह फ़ाइल डिवाइस पर /data/adb/modules/vdbackup/bin/<abi>/PROVENANCE.json पर रहती है। यह दर्ज करता है:

  • sources: हर upstream .deb (पैकेज, संस्करण, पूरा URL, .deb का SHA-256) और ABX रिलीज़ (URL, संग्रह का SHA-256)।
  • files: bin/<abi>/ के अंतर्गत वास्तव में भेजी गई हर फ़ाइल (पथ, आकार, SHA-256)।

आप इसे WebUI में पढ़ सकते हैं (About टैब इससे लिंक करता है) या एजेंट API के ज़रिए:

sh /data/adb/modules/vdbackup/helper.sh provenance '' | jq .

कैसे सत्यापित करें (चरण-दर-चरण)

  1. भेजी गई फ़ाइलों की जाँच करें। अपने डिवाइस पर bin/<abi>/ के अंतर्गत हर फ़ाइल को हैश करें और PROVENANCE.json में files[].sha256 से तुलना करें:
    cd /data/adb/modules/vdbackup/bin/<abi>
    sha256sum tar zstd jq rclone ... lib/*
  2. फ़ाइलों की upstream के विरुद्ध जाँच करें। हर sources[] प्रविष्टि के लिए, पिन की गई .deb को उसके URL से डाउनलोड करें, पुष्टि करें कि उसका SHA-256 deb_sha256 से मेल खाता है, उसे निकालें, और पुष्टि करें कि उसमें मौजूद बाइनरी/लाइब्रेरी भेजे गए उन्हीं मानों पर हैश होती हैं। Termux रिपॉज़िटरी में .deb फ़ाइलें स्वयं Termux की हस्ताक्षरित apt रिपॉज़िटरी से परोसी जाती हैं।
  3. शुरुआत से फिर से बनाएँ। .github/scripts/build_bin.sh को स्वयं चलाएँ (केवल curl, ar, tar, xz, zstd, readelf की आवश्यकता है) और आउटपुट की तुलना भेजे गए से करें।
  4. साथी और dex। companion/ और dex/ को स्रोत से फिर से बनाएँ; साथी का हस्ताक्षर प्रोजेक्ट कुंजी है (SHA-256 F3:F8:2B:B9:2F:2C:69:A1:75:90:1D:40:BD:65:DD:A6:8F:2B:B5:88:69:77:F5:EA:8B:BA:AA:51:40:E5:25:2B)।

रिपोर्टिंग

यदि कोई भेजी गई फ़ाइल अपने रिकॉर्ड किए गए स्रोत से मेल नहीं खाती, तो इसे एक सुरक्षा समस्या मानें और इसकी रिपोर्ट करें (देखें SECURITY.md)। यह ठीक उसी प्रकार की विसंगति है जिसे दृश्यमान बनाने के लिए यह मैनिफेस्ट मौजूद है।

यह दस्तावेज़ीकरण Claude (Anthropic) के साथ तैयार किया गया था और इसे VD171 द्वारा अनुरक्षित किया जाता है। सुधार और बेहतरी का स्वागत है - CONTRIBUTING.md देखें।

Clone this wiki locally