
GhostLock (CVE-2026-43499) ऐप Galaxy S26 सीरीज़ के लिए
indev.ghostlock.s26)polygraphene/ghostlock-s26 के लिए वन-क्लिक Android रैपर: GhostLock (CVE-2026-43499) को पूरी Samsung Galaxy S26 सीरीज़ (Android 16 / GKI 6.12) पर पोर्ट किया गया है। एक APK, तीन कर्नेल लाइनें, रनटाइम पैरामीटर मिलान - प्रति-बिल्ड ऐप वेरिएंट नहीं।
केवल उन्हीं डिवाइस पर उपयोग करें जो आपके स्वामित्व में हैं या जिन्हें परीक्षण के लिए स्पष्ट रूप से अधिकृत किया गया है। टेम्प रूट रीबूट पर समाप्त हो जाता है। उसी बूट में दूसरी बार एक्सप्लॉइट चलाने से डिवाइस क्रैश हो सकता है - पुनः प्रयास से पहले रीबूट करें।
अस्वीकरण: इस सॉफ़्टवेयर के साथ प्रयोग करने में लो-लेवल कर्नेल एक्सप्लॉइट, रूट, और बूट-टाइम दावे शामिल हैं। यह जैसा है वैसा (AS IS) प्रदान किया गया है, किसी भी प्रकार की वारंटी के बिना। आप इसका उपयोग पूरी तरह अपने जोखिम पर करते हैं; लेखक ब्रिक हुए, बूट-लूप में फँसे, या अन्यथा क्षतिग्रस्त डिवाइस, या किसी भी डेटा हानि, रद्द की गई वारंटी, या इसके उपयोग से उत्पन्न किसी भी क्षति के लिए उत्तरदायी नहीं है।
एक्सप्लॉइट कर्नेल लाइन से मिलान करता है, व्यक्तिगत बिल्ड से नहीं
(exploit/src/params_table.c प्रामाणिक है; ParamsTable.kt केवल UI निर्णय के लिए
इसकी प्रतिलिपि है):
| डिवाइस कोडनेम | मार्केटिंग | SoC | कर्नेल लाइन |
|---|---|---|---|
| m1q | Galaxy S26 (SM-S942x) | Snapdragon | cn या intl (CSC के अनुसार) |
| m2q | Galaxy S26+ (SM-S947x) | Snapdragon | cn या intl (CSC के अनुसार) |
| m3q | Galaxy S26 Ultra (SM-S948x) | Snapdragon | cn या intl (CSC के अनुसार) |
| m1s | Galaxy S26 (SM-S942B) | Exynos | exynos |
| m2s | Galaxy S26+ (SM-S947B) | Exynos | exynos |
परीक्षित बिल्ड (17): S9420ZCS4AZG1, S9470ZCS4AZG1, S9480ZCS3AZF1, S9480ZCS4AZG1, S942BXXS4AZG5, S947BXXS3AZF1, S947BXXS4AZG5, S942QOPU1AZDE, S942U1UES4AZG3, S942USQS4AZG3, S947USQS4AZG3, S9480ZHS4AZG1, S948BXXS4AZG5/6, S948NKSS4AZG3, S948U1UES2AZE1, S948USQS4AZG3.
अज्ञात OTA अपस्ट्रीम params.c की तरह ही फ़ॉलबैक करते हैं: पहले सटीक बिल्ड,
फिर समान मॉडल + 3-अक्षर CSC (OTA पुनःउपयोग), फिर नवीनतम समान-डिवाइस प्रविष्टि
(असत्यापित के रूप में चिह्नित), अन्यथा फ़ेल-क्लोज़्ड (ऐप UNSUPPORTED दिखाता है और
नेटिव लेयर exit 2 करती है)। पूरी तरह अज्ञात मॉडल अस्वीकार किए जाते हैं - कभी बाध्य नहीं किए जाते।
एक बड़ा बटन - Root my S26 - पूरी पाइपलाइन चलाता है और Output कार्ड में विवरण देता है:
adb shell फ़्लो के समान
कॉन्टेक्स्ट परिवार)। अनुमति लॉन्च पर एक बार माँगी जाती है (और सर्वर पुनः आरंभ होने पर फिर से); Root फ़्लो बाहर निकलने के बजाय
अनुदान की प्रतीक्षा करता है। यदि सर्वर डाउन है तो ऐप Shizuku मैनेजर खोलता है ताकि आप इसे शुरू कर सकें, फिर
इन-ऐप शेल पर फ़ॉलबैक करता है।
ऐप को Shizuku की अनुमति-सूची में जोड़ने से प्रॉम्प्ट पूरी तरह हट जाता है।preload.so, su_daemon, ksud को /data/local/tmp में कॉपी करता है
(preload.so, cve-2026-43499-root, ksud) और उन्हें chmod करता है। यदि आप
अपस्ट्रीम README के अनुसार फ़ाइलें पहले ही adb push कर चुके हैं, तो वे
यथास्थान उठा ली जाती हैं।env LD_PRELOAD=/data/local/tmp/preload.so sh (.so कंस्ट्रक्टर चेन चलाता है और _exit करता है; stdout ही एक्सप्लॉइट लॉग है), 5 प्रयासों तक -
रेस संभाव्य है। एक BOOT_FORCE=1 स्विच उपलब्ध है लेकिन
रीबूट करना अधिक सुरक्षित है।id किसी भी चैनल के माध्यम से uid=0 रिपोर्ट करता है:
पहले टेम्प-डेमन सॉकेट, फिर KernelSU-शैली su। यह महत्वपूर्ण है क्योंकि
पूर्ण सफलता पर su_daemon अपना सॉकेट अनलिंक करता है और डिज़ाइन से बाहर निकल जाता है
(KernelSU को हैंडओवर) - काम कर रहे su के साथ मृत टेम्प सॉकेट का अर्थ है
रूटेड, टूटा हुआ नहीं। बूट-दावा लॉग का अंतिम भाग प्रिंट करता है और रूटेड /
एग्ज़िट-कोड सलाह रिपोर्ट करता है।उसके नीचे: एक एकल कमांड फ़ील्ड + Run as root पंक्ति (su डेमॉन के C प्रोटोकॉल के माध्यम से one-shot कमांड; इंटरैक्टिव PTY v1 के दायरे से बाहर है), और एक छोटा Reset लिंक जो /data/local/tmp/ghostlock-boot.log को साफ़ करता है ताकि रीबूट किए बिना रन को फिर से आज़माया जा सके (upstream चेतावनी देता है कि इससे panic हो सकता है - रीबूट ही सुरक्षित रास्ता है)।
exploit/ vendored upstream (Makefile + src/, authoritative)
ksud upstream prebuilt KernelSU loader (ARM64 PIE, also in assets)
app/src/main/assets/ksud staged copy shipped in the APK
app/src/main/assets/ + preload.so / su_daemon after stage-assets.sh
app/src/main/cpp/ optional CMake rebuild of preload.so from exploit/src
app/src/main/java/indev/ghostlock/s26/
MainActivity.kt UI (device / stage / run / shell / boot guard)
ParamsTable.kt series table mirror (17 builds, 3 lines, 5 codenames)
DeviceCompat.kt Build.* identity + series verdict
ShellRunner.kt Shizuku (uid 2000) + local fallback, staging
SuClient.kt /data/local/tmp/temp_su.sock 'C'-mode client
GhostlockManager.kt exit-code interpreter (0/1/2/3/4)
PORTING.upstream.md porting notes (new firmware = new device_map row)
आवश्यकताएँ: Android Studio (JBR 21) / SDK 35 / NDK r26+ / CMake 3.22.1 / JDK 17।
# 1. Build the native payloads with the NDK (upstream flow):
cd exploit && make preload
# -> build/bin/preload.so, build/embed/su_daemon_aarch64_pie
# 2. Stage them into the APK assets:
./stage-assets.sh
# 3. Build the app:
./gradlew :app:assembleDebug
# -> app/build/outputs/apk/debug/app-debug.apk
ksud पहले से ही vendored है (ksud + app/src/main/assets/ksud) इसलिए चरण 1–2
केवल दो NDK आउटपुट उत्पन्न करते हैं। app/src/main/cpp/CMakeLists.txt में CMake
लक्ष्य वैकल्पिक रूप से APK के अंदर उन्हीं स्रोतों से libpreload.so को
fallback के रूप में पुनः बना सकता है।
.github/workflows/build.yml वर्कफ़्लो ऐप को
लक्ष्य डिवाइस कोडनेम / प्रोसेसर प्रकार के अनुरूप बिल्ड करता है - स्थानीय रूप
से किसी SDK, NDK, या Docker की आवश्यकता नहीं। रेपो को फ़ोर्क करें, फिर रेपो के
Actions टैब से → GhostLock-S26 Device Build → Run workflow, फिर सेट करें:
| इनपुट | विकल्प | डिफ़ॉल्ट | प्रभाव |
|---|---|---|---|
device | all / m1q / m2q / m3q / m1s / m2s | all | डिवाइस कोडनेम (बिल्ड लक्ष्य) |
processor | all / snapdragon / exynos | all | SoC परिवार (kernel पंक्तियों को फ़िल्टर करता है) |
kernel_line | auto / cn / intl / exynos | auto | सटीक params पंक्ति पिन करें (auto डिवाइस/प्रोसेसर से व्युत्पन्न होता है) |
tailor | on / off | off | छोटे single-target payload के लिए params_table.c + ParamsTable.kt को चयनित डिवाइस/लाइन तक छाँटें |
build_type | debug / release | debug | APK वेरिएंट |
rebuild_ksud | on / off | on | ksud_ref पर polygraphene/KernelSU से ksud + kernelsu.ko पुनः बनाएँ, या vendored prebuilt रखें |
kmi | android16-6.12 / android15-6.6 | android16-6.12 | वह KMI जिसके लिए मॉड्यूल संकलित है (S26 = GKI 6.12) |
samsung_hardening | on / off | on | CONFIG_KSU_SAMSUNG_KDP/RKP/DEFEX=y (Samsung kdp creds, RKP/DEFEX sync) |
no_patch_text | on / off | off | लाइव टेक्स्ट पैचिंग अक्षम करें (Samsung Exynos EL2 लक्ष्य) |
साथ ही KernelSU स्रोत ref / DDK इमेज / बंडल किए गए Manager APK को पिन करने के लिए
ksud_ref, ddk_release और ksu_manager_apk, और KEYSTORE_BASE64 / KEY_ALIAS /
secrets के साथ साइन करने के लिए sign_release।
उदाहरण के लिए, केवल-Snapdragon Galaxy S26 Ultra बिल्ड (kernel पंक्तियाँ cn +
intl, अन्य डिवाइस छाँटे गए) इस प्रकार होगा: device=m3q,
processor=snapdragon, tailor=on।