इस प्रोजेक्ट के बारे में

# otaripper क्रिप्टोग्राफिक सत्यापन, मजबूत विश्वसनीयता गारंटी और उच्च-प्रदर्शन निष्पादन के साथ Android OTA फ़ाइलों से पार्टीशन निकालें। ## अवलोकन **otaripper** Android OTA पैकेजों (`payload.bin` या पूर्ण OTA `.zip` फ़ाइलों) से पार्टीशन निकालता है। यह टूल Rust में लिखा गया है और इन्हें प्राथमिकता देता है: * क्रिप्टोग्राफिक शुद्धता और डेटा अखंडता * पूर्वानुमेय, विफल-सुरक्षित व्यवहार * उच्च-प्रदर्शन, मल्टी-थ्रेडेड निष्पादन * SIMD-त्वरित मेमोरी संचालन * विफलता या रुकावट पर गारंटीकृत सफ़ाई कई एक्सट्रैक्शन टूल्स के विपरीत, otaripper **डिफ़ॉल्ट रूप से आउटपुट इमेजों को सत्यापित करता है** और आंशिक रूप से वैध या दूषित फ़ाइलों को पीछे छोड़ने से इनकार करता है। ⚠️ इंक्रीमेंटल OTA पैकेज जानबूझकर **समर्थित नहीं हैं**। ## मुख्य विशेषताएँ * **आउटपुट सत्यापन**: निकाली गई इमेजों का SHA-256 हैश सत्यापन * **रिमोट HTTP स्ट्रीमिंग**: समानांतर 8MB चंक्ड अनुरोधों का उपयोग करके पूर्ण OTA पैकेज डाउनलोड किए बिना सीधे URL से विशिष्ट पार्टीशन निकालें * **नेटवर्क त्रुटि पुनर्प्राप्ति**: एक्सपोनेंशियल बैकऑफ़ के साथ स्वचालित पुनःप्रयास और रीयल-टाइम ऑफ़लाइन पहचान * **Zstd संपीड़ित पेलोड**: Android अपडेट इंजन माइनर संस्करण 10 (Vivo, iQOO, आधुनिक OTA) के लिए समर्थन * **SIMD अनुकूलन**: नॉन-टेम्पोरल कैश-बायपासिंग के साथ AVX-512/AVX2/SSE2 त्वरण * **Qualcomm ARB विश्लेषण**: बूटलोडर इमेजों से Anti-Rollback मेटाडेटा निकालें और विश्लेषण करें * **फर्मवेयर मेटाडेटा पार्सिंग**: ZIP से OS संस्करण और सुरक्षा पैच स्वचालित रूप से पार्स करता है * **दूषित इमेज पहचान**: स्पष्ट रूप से अमान्य आउटपुट का पता लगाने के लिए सैनिटी जाँच * **कैश-जागरूक बड़े लेखन**: बड़े पार्टीशन लेखन के लिए अनुकूलित I/O * **ज़ीरो-कॉपी डीकंप्रेशन**: जब आउटपुट ब्लॉक साफ़ तौर पर निरंतर एक्सटेंट से मैप होते हैं तो एलोक-मुक्त एक्सट्रैक्शन पथ * **प्रत्यक्ष ZIP मेमोरी मैपिंग**: STORED OTA zips के लिए टेम्प-फ़ाइल एक्सट्रैक्शन को बायपास करता है * **सौम्य रुकावट**: रुकावट पर स्वच्छ शटडाउन * **विफलता पर ऑटो-क्लीनअप**: आंशिक आउटपुट की गारंटीकृत सफ़ाई * **प्रदर्शन आँकड़े**: विस्तृत एक्सट्रैक्शन मेट्रिक्स * **चयनात्मक एक्सट्रैक्शन**: केवल विशिष्ट पार्टीशन निकालें * **मल्टी-थ्रेडेड**: Rayon थ्रेडपूल का उपयोग करके समानांतर एक्सट्रैक्शन * **क्रॉस-प्लेटफ़ॉर्म**: Windows, Linux, macOS, Android/Termux * **स्टैंडअलोन बाइनरी**: कोई रनटाइम निर्भरता नहीं ## त्वरित शुरुआत ### इंस्टॉलेशन पूर्व-निर्मित पैकेज्ड आर्काइव [Releases](https://github.com/syedinsaf/otaripper/releases) पेज पर उपलब्ध हैं: * Windows (MSVC और GNU) * Linux (glibc और static/musl) * Linux ARM64 * macOS (Intel और Apple Silicon) * Android / Termux (ARM64) प्रत्येक रिलीज़ में एक मुख्य `otaripper` एक्जीक्यूटेबल और एक अल्ट्रा-मिनिमलिस्ट `otaripper-lite` संस्करण शामिल है जो कॉम्पैक्ट लोकल-ओनली एक्सट्रैक्शन के लिए रिमोट HTTP स्ट्रीमिंग के बिना कंपाइल किया गया है। ### Windows (winget) ```powershell winget install syedinsaf.otaripper ``` ### Arch Linux (AUR) ```bash paru -S otaripper # स्रोत से बिल्ड करें (अनुशंसित) paru -S otaripper-bin # पूर्व-निर्मित glibc बाइनरी ``` ## बुनियादी उपयोग सब कुछ निकालें: ```bash otaripper ota.zip ``` पार्टीशन सूचीबद्ध करें: ```bash otaripper -l ota.zip ``` चयनित पार्टीशन निकालें: ```bash otaripper ota.zip -p boot,vendor_boot,init_boot ``` रिमोट HTTP स्ट्रीमिंग (ज़ीरो-डाउनलोड एक्सट्रैक्शन): ```bash otaripper https://android.googleapis.com/packages/ota-api/package.zip -p boot,init_boot ``` हैश प्रिंट करें: ```bash otaripper ota.zip --print-hash ``` सख्त सत्यापन: ```bash otaripper ota.zip --strict ``` Qualcomm बूटलोडर Anti-Rollback (ARB) मेटाडेटा का विश्लेषण करें: ```bash otaripper arb update.zip # या निर्देशिकाएँ otaripper arb CPH2583_EDL_Folder/ ``` इंटरैक्टिव JSON निर्यात के साथ रिमोट ARB निरीक्षण: ```bash otaripper arb https://example.com/firmware.zip ``` ## क्लीनअप पहले निकाले गए फ़ोल्डर हटाएँ: ```bash otaripper clean ``` एक विशिष्ट निर्देशिका साफ़ करें: ```bash otaripper clean -o /path/to/output ``` क्लीनअप कमांड केवल `extracted_*` से मेल खाने वाली निर्देशिकाओं को हटाता है और सुरक्षा के लिए फ़ाइलसिस्टम रूट पर काम करने से इनकार करता है। ## कमांड विकल्प | विकल्प | विवरण | | --- | --- | | `-l, --list` | केवल पार्टीशन सूचीबद्ध करें | | `-p, --partitions` | विशिष्ट पार्टीशन निकालें | | `-o, --output-dir` | कस्टम आउटपुट निर्देशिका | | `--strict` | मैनिफ़ेस्ट हैश लागू करें | | `--no-verify` | सत्यापन अक्षम करें (असुरक्षित) | | `--print-hash` | SHA-256 हैश प्रिंट करें | | `--sanity` | स्पष्ट रूप से अमान्य आउटपुट का पता लगाएँ | | `--stats` | प्रदर्शन आँकड़े दिखाएँ | | `-t, --threads` | थ्रेड नियंत्रण (1–256, 0 = ऑटो) | | `-n, --no-open` | फ़ोल्डर ऑटो-ओपन अक्षम करें | | `clean` | `extracted_*` फ़ोल्डर सुरक्षित रूप से हटाएँ | | `arbscan`, `arb` | बूटलोडर इमेजों या पेलोड से ARB मेटाडेटा निकालें | ## स्रोत से बिल्ड करना ### आवश्यकताएँ * Rust 1.98.1 या नया (MSRV) * Git * C कंपाइलर (gcc / clang / MSVC) ### बिल्ड ```bash git clone https://github.com/syedinsaf/otaripper.git cd otaripper # मानक CLI बिल्ड करें (रिमोट HTTP स्ट्रीमिंग समर्थन के साथ) cargo full # 'lite' CLI बिल्ड करें (नेटवर्क-मुक्त, केवल लोकल एक्सट्रैक्शन) cargo lite ``` ### नेटिव अनुकूलित बिल्ड अधिकतम प्रदर्शन के लिए, otaripper को CPU-विशिष्ट अनुकूलन के साथ बिल्ड किया जा सकता है: * **Linux/macOS**: प्रदान की गई `build.sh` स्क्रिप्ट का उपयोग करें * **Windows**: प्रदान की गई `build.ps1` PowerShell स्क्रिप्ट का उपयोग करें ⚠️ नेटिव बिल्ड **पोर्टेबल नहीं हैं** और **पुनर्वितरित नहीं किए जाने चाहिए**। ## लाइसेंस otaripper **Apache License 2.0** के अंतर्गत लाइसेंस प्राप्त है। ## अस्वीकरण अपने जोखिम पर उपयोग करें। फ्लैश करने से पहले हमेशा निकाली गई इमेजों को सत्यापित करें। लेखक और योगदानकर्ता दुरुपयोग से होने वाले डेटा हानि, ब्रिक किए गए डिवाइस या क्षति के लिए ज़िम्मेदार नहीं हैं।