
RedMi K80pro miro OS 3.0.304.0 के लिए डिवाइस-बाउंड CVE-2026-64560 अनुकूलन
Redmi K80 Pro (miro) के लिए CVE-2026-64560 यूज़रस्पेस लोकल प्रिविलेज एस्केलेशन पोर्ट प्रोजेक्ट।
🚀 इतना सारा डॉक्यूमेंट नहीं पढ़ना चाहते?
अगर आप गहराई से अध्ययन नहीं करना चाहते, या इन सारे AI-जनित
.mdफ़ाइलों को नहीं पढ़ना चाहते, तो सीधेdyc.mdदेखें —— एक सरल भाषा में त्वरित शुरुआत: शून्य से जेलब्रेक तक (KernelSU सहित), केवल यह बताता है कि कौन से कमांड चलाने हैं, क्यों नहीं।
अपस्ट्रीम एक्सप्लॉइट और Xiaomi 15 (dada) अनुकूलन
quyicheng03-boop से लिया गया है,
यह रिपॉज़िटरी उसी के आधार पर K80 Pro के लिए पते और कॉन्स्टेंट्स को फिर से निकालकर किया गया पोर्ट है।
यह प्रोजेक्ट केवल पोर्टिंग करता है, इसमें कमज़ोरी की खोज शामिल नहीं है। कमज़ोरी का सिद्धांत और एक्सप्लॉइट चेन का डिज़ाइन पूरी तरह अपस्ट्रीम लेखक का है। विवरण के लिए
docs/UPSTREAM.mdऔरNOTICEदेखें।
इस रिपॉज़िटरी का सोर्स कोड और बाइनरी केवल नीचे दिए गए इस एक फ़र्मवेयर संस्करण के लिए मान्य हैं:
किसी भी अन्य OTA संस्करण पर यह काम नहीं करेगा। कर्नेल में संरचना ऑफ़सेट, सिंबल पते, KASLR रेंज
सब इसी एक Image के लिए निकाले गए हैं, एक अक्षर का अंतर भी इसे चलने नहीं देगा।
फ़िंगरप्रिंट मेल न खाने पर प्रोग्राम द्वार पर ही बाहर निकल जाएगा:
TARGET_PROFILE_GATE_FAIL fingerprint=...
यह सुरक्षित विफलता है, कर्नेल को छुएगा नहीं। अगर आपका फ़र्मवेयर ऊपर दी गई तालिका का संस्करण नहीं है, तो
docs/05-technical.md के अनुसार स्वयं पुनः पोर्ट करें, इस रिपॉज़िटरी के कॉन्स्टेंट्स
सीधे लागू न करें।
docs/04-troubleshooting.md
देखें), लेकिन ऐसे डिवाइस पर न चलाएँ जो आपका न हो, या जिसका डेटा बैकअप न हो।fastboot चैनल नहीं होता।k80pro-miro-cve-2026-64560/
├── README.md यह फ़ाइल
├── dyc.md त्वरित शुरुआत (सरल भाषा संस्करण), नए उपयोगकर्ता पहले यह देखें
├── LICENSE अपस्ट्रीम लाइसेंस
├── NOTICE अपस्ट्रीम एट्रिब्यूशन सूचना
├── SHA256SUMS.txt release_build/ में तीन आर्टिफ़ैक्ट्स के चेकसम मान
│
├── src/ कंपाइल के लिए सोर्स कोड
│ ├── exploit-fanout-miro.c
│ ├── exploit-rotate-miro.c
│ ├── temp-su.c
│ ├── miro-profile.h कॉन्स्टेंट संदर्भ (कंपाइल में शामिल नहीं)
│ ├── miro-integration.c इंटीग्रेशन संदर्भ (कंपाइल में शामिल नहीं)
│ └── exploit-*.c अपस्ट्रीम मूल फ़ाइलें (जनरेटर का इनपुट, कंपाइल में शामिल नहीं)
│
├── release_build/ प्री-कंपाइल्ड आर्टिफ़ैक्ट्स (सीधे उपयोग योग्य)
│ ├── cve-2026-64560-fanout
│ ├── cve-2026-64560-rotate
│ └── su
│
├── docs/
│ ├── 01-build.md कैसे कंपाइल करें
│ ├── 02-usage.md adb shell में कैसे उपयोग करें
│ ├── 03-tokens.md आउटपुट token त्वरित संदर्भ तालिका
│ ├── 04-troubleshooting.md समस्या निवारण और जोखिम विवरण
│ ├── 05-technical.md पोर्टिंग तकनीकी विवरण
│ └── UPSTREAM.md अपस्ट्रीम स्रोत
│
└── tools/ बिल्ड स्क्रिप्ट और पुनरुत्पादन/निदान उपकरण (एक्सप्लॉइट में शामिल नहीं)
├── build.sh एक-क्लिक कंपाइल (sh tools/build.sh)
└── *.py पुनरुत्पादन / निदान स्क्रिप्ट
docs/02-usage.md देखें।
पहले पुष्टि करें कि आर्टिफ़ैक्ट्स पूर्ण हैं:
sha256sum -c SHA256SUMS.txt # Linux / macOS
certutil -hashfile <文件> SHA256 # Windows,逐个核对
docs/01-build.md देखें।
Android NDK की आवश्यकता है (सिस्टम gcc का उपयोग नहीं कर सकते, कारण उस दस्तावेज़ में देखें)। सबसे आसान तरीका
रिपॉज़िटरी की अंतर्निहित स्क्रिप्ट का उपयोग करना है, यह स्वयं NDK ढूँढेगी, सही टूलचेन चुनेगी, कंपाइल करेगी, और
SHA256SUMS.txt से एक-एक करके हैश की तुलना करेगी:
sh tools/build.sh # कंपाइल + सत्यापन
sh tools/build.sh --no-check # केवल कंपाइल
स्क्रिप्ट केवल कंपाइल करती है, डिवाइस को छूती नहीं, पुश नहीं करती, exploit नहीं चलाती।
स्क्रिप्ट का उपयोग न करना चाहें तो तीन clang कमांड स्वयं टाइप करके
cve-2026-64560-fanout、cve-2026-64560-rotate、su उत्पन्न कर सकते हैं।
कंपाइल पूरा होने के बाद जाँचें कि क्या यह release_build/ के बाइट्स से मेल खाता है:
sha256sum build/* # SHA256SUMS.txt में दिए तीन मानों से तुलना करें
सफलता की एकमात्र कसौटी है एक नया adb shell खोलकर /data/local/tmp/su के माध्यम से uid=0 प्राप्त करना:
$ printf 'id\nexit\n' | adb shell -T /data/local/tmp/su
uid=0(root) gid=0(root) groups=0(root),1004(input),... context=u:r:shell:s0
ध्यान दें context=u:r:shell:s0 —— root पहचान लेकिन shell डोमेन बना रहता है, यह डिज़ाइन के अनुसार है,
कोई त्रुटि नहीं।
प्रक्रिया के दौरान दिखने वाले मुख्य token (पूरी तालिका के लिए docs/03-tokens.md देखें):
BOOTID_WRITE_PASS attempt=5 q0=... q1=... slide=... kernel_base=...
STAGE0_GATE_PASS slide=... kernel_base=...
MISC_BRIDGE_OPEN_PASS fd=... observed=...
STAGE8_CRED_STAGE_PASS task=... cred=... uid=0 context=shell
ROOT_CHILD_HOLD_PASS child=... uid=0 context=shell selinux_permissive=1
सफलता दर 100% नहीं है। Stage0 चरण में वास्तविक मापन में लगभग 1/5 एकल हिट दर, इसलिए प्रोग्राम डिफ़ॉल्ट रूप से प्रत्येक चरण को 32 बार पुनः प्रयास करता है। पूरी चेन संभाव्य है।
विफलता क्रैश के रूप में प्रकट हो सकती है। पावर बटन देर तक दबाकर ज़बरदस्ती रीबूट करना पड़ सकता है। रीबूट के बाद कर्नेल स्थिति पूरी तरह साफ़ हो जाती है, फिर से शुरू कर सकते हैं।
सफलता के बाद दो स्थितियाँ रीबूट तक बनी रहती हैं:
/data/local/tmp/su किसी भी shell पहचान के लिए root खोलने वाला डेमन बन जाता हैसफ़ाई का तरीका docs/02-usage.md के अंत में देखें।
permissive कोई अवशिष्ट बग नहीं है, बल्कि कर्नेल मॉड्यूल (KernelSU LKM आदि) लोड करने की पूर्व शर्त है। विवरण के लिए
docs/04-troubleshooting.mdदेखें।
dada) अनुकूलन: अपस्ट्रीम रिपॉज़िटरी लेखकmiro) पोर्टिंग: CHANGELOG देखेंलाइसेंस और एट्रिब्यूशन सूचना के लिए LICENSE और NOTICE देखें।
| मद | मान |
|---|
| मॉडल | Redmi K80 Pro (ro.product.device = miro) |
| फ़िंगरप्रिंट | Redmi/miro/miro:16/BP2A.250605.031.A3/OS3.0.304.0.WOMCNXM:user/release-keys |
| कर्नेल | 6.6.118-android15-8-gc44b714366cc-abogki519650608-4k |
| कर्नेल बिल्ड समय | Thu Jun 4 03:48:35 UTC 2026 |
| पेज साइज़ | 4096(4K) |