
GhostLock (CVE-2026-43499) تطبيق لسلسلة Galaxy S26
indev.ghostlock.s26)غلاف أندرويد بنقرة واحدة لـ polygraphene/ghostlock-s26: GhostLock (CVE-2026-43499) منقول إلى كامل سلسلة Samsung Galaxy S26 (Android 16 / GKI 6.12). تطبيق APK واحد، ثلاثة خطوط نواة، مطابقة معاملات وقت التشغيل - بلا نسخ تطبيق لكل إصدار.
استخدمه فقط على الأجهزة التي تملكها أو المصرّح لك صراحةً باختبارها. الجذر المؤقت يزول عند إعادة التشغيل. تشغيل الاستغلال مرة ثانية في نفس جلسة الإقلاع قد يُعطّل الجهاز - أعد التشغيل قبل المحاولة مجددًا.
إخلاء مسؤولية: تتضمن التجربة مع هذا البرنامج استغلالات نواة منخفضة المستوى، وجذرًا، وادعاءات وقت الإقلاع. يُقدَّم كما هو، دون أي ضمان من أي نوع. تستخدمه على مسؤوليتك الكاملة؛ المؤلف غير مسؤول عن أجهزة معطوبة أو عالقة في حلقة إقلاع أو متضررة بأي شكل آخر، أو عن أي فقدان بيانات، أو إبطال ضمانات، أو أضرار ناشئة عن استخدامه.
يطابق الاستغلال حسب خط النواة، لا حسب الإصدار الفردي
(exploit/src/params_table.c هو المرجع؛ وParamsTable.kt يحاكيه
لحكم واجهة المستخدم فقط):
| الاسم الرمزي للجهاز | الاسم التجاري | 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 الأصلي: الإصدار المطابق أولًا،
ثم نفس الطراز + CSC من 3 أحرف (إعادة استخدام OTA)، ثم أحدث إدخال لنفس الجهاز
(مُعلَّم كغير موثّق)، وإلا فشل مغلق (يعرض التطبيق UNSUPPORTED وتخرج
الطبقة الأصلية بالرمز 2). الطرازات غير المعروفة كليًا تُرفض - ولا تُفرض أبدًا.
زر واحد كبير - Root my S26 - يشغّل خط الأنابيب كاملًا ويسرد التفاصيل في بطاقة Output:
adb shell في README). يُطلب الإذن
مرة واحدة عند التشغيل (ومرة أخرى إذا أُعيد تشغيل الخادم)؛ وينتظر تدفق Root
المنح بدلًا من التوقف. إذا كان الخادم متوقفًا يفتح التطبيق مدير
Shizuku لتتمكن من تشغيله، ثم يتراجع إلى الصدفة داخل التطبيق.
إضافة التطبيق إلى قائمة السماح في Shizuku تلغي المطالبة تمامًا.preload.so وsu_daemon وksud إلى /data/local/tmp
(preload.so، cve-2026-43499-root، ksud) وينفّذ chmod عليها. إذا كنت
قد نفّذت adb push للملفات مسبقًا وفق README الأصلي، فسيتم التقاطها
في مكانها.env LD_PRELOAD=/data/local/tmp/preload.so sh (مُنشئ .so يشغّل
السلسلة ثم ينفّذ _exit؛ والمخرجات القياسية هي سجل الاستغلال)، حتى 5 محاولات -
فالسباق احتمالي. يتوفر مفتاح BOOT_FORCE=1 لكن
إعادة التشغيل أكثر أمانًا.id يُبلّغ عن uid=0 عبر أي قناة:
مقبس الخادم المؤقت أولًا، ثم su بأسلوب KernelSU. هذا مهم لأنه عند
نجاح كامل يقوم su_daemon بفصل مقبسه والخروج بحكم التصميم
(تسليم إلى KernelSU) - فمقبس مؤقت ميت مع su عامل يعني
وجود جذر، لا عطلًا. يطبع ذيل سجل ادعاء الإقلاع ويُبلّغ عن الجذر /
نصيحة رمز الخروج.تحته: صف واحد حقل الأمر + التشغيل كـ root (أوامر لمرة واحدة
عبر بروتوكول C الخاص بخدمة su؛ الطرفية التفاعلية PTY خارج نطاق الإصدار v1)،
ورابط إعادة تعيين صغير يمسح /data/local/tmp/ghostlock-boot.log
حتى يمكن إعادة محاولة التشغيل دون إعادة التشغيل (يحذّر المشروع الأصلي من أن هذا قد يسبب 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 مُضمَّن مسبقًا بالفعل (ksud + app/src/main/assets/ksud) لذا فإن الخطوتين 1–2
تنتجان مخرجات NDK فقط. يمكن لهدف CMake في
app/src/main/cpp/CMakeLists.txt إعادة بناء libpreload.so إضافيًا
من المصادر نفسها داخل APK كخيار احتياطي.
سير عمل .github/workflows/build.yml
يبني التطبيق مُخصَّصًا للاسم الرمزي للجهاز الهدف / نوع المعالج - دون الحاجة إلى
SDK أو NDK أو Docker محليًا. اعمل fork للمستودع، ثم من تبويب Actions في المستودع →
GhostLock-S26 Device Build → Run workflow، ثم اضبط:
| المُدخل | الخيار | الافتراضي | التأثير |
|---|---|---|---|
device | all / m1q / m2q / m3q / m1s / m2s | all | الاسم الرمزي للجهاز (هدف البناء) |
processor | all / snapdragon / exynos | all | عائلة SoC (تُرشِّح أسطر النواة) |
kernel_line | auto / cn / intl / exynos | auto | تثبيت سطر المعاملات الدقيق (auto يُشتَق من device/processor) |
tailor | on / off | off | تقليم params_table.c + ParamsTable.kt إلى الجهاز/السطر المحدد للحصول على حمولة أصغر لهدف واحد |
build_type | debug / release | debug | نوع APK |
rebuild_ksud | on / off | on | إعادة بناء ksud + kernelsu.ko من polygraphene/KernelSU عند ksud_ref، أو الإبقاء على النسخة المُضمَّنة المبنية مسبقًا |
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، مزامنة RKP/DEFEX) |
no_patch_text | on / off | off | تعطيل الترقيع النصي المباشر (أهداف Samsung Exynos EL2) |
إضافةً إلى ksud_ref وddk_release وksu_manager_apk لتثبيت مرجع مصدر KernelSU
/ صورة DDK / APK المدير المُضمَّن، وsign_release للتوقيع باستخدام
KEYSTORE_BASE64 / KEY_ALIAS / الأسرار.
على سبيل المثال، بناء Galaxy S26 Ultra بنسخة Snapdragon فقط (أسطر النواة cn +
intl، مع تقليم الأجهزة الأخرى) سيكون: device=m3q،
processor=snapdragon، tailor=on.
يقوم خط الأنابيب بالترجمة المتقاطعة للحمولات الأصلية (preload.so + su_daemon)
باستخدام NDK clang، وتهيئة الأصول، وتجميع APK باستخدام Gradle؛ وتُرفَع المخرجات
(ghostlock-s26-<devices>-<lines>-<tailored|full>-debug.apk بالإضافة إلى preload.so
وsu_daemon ومخرجات ksud والمجاميع التحققية) إلى صفحة
Summary الخاصة بالتشغيل. يتولى GitHub Actions عملية checkout + إعداد Gradle/SDK - ويُوقَّع بناء
Release تلقائيًا إذا كانت الأسرار أعلاه مُهيَّأة.