
هذه الحزمة ليست صلاحية جذر كاملة. إنها تحوّل SELinux إلى الوضع Permissive وتُبقي الاسترجاع (reclaim) لفترة كافية للعمل اللاحق. لا يتم تحقيق `uid=0` على المضيف هنا.
لقطة بحثية عن park عامل خاص بـ SELinux فقط لهاتف Samsung Galaxy S26 Ultra (SM-S948U1، الاسم الرمزي m3q) على البرنامج الثابت S948U1UES3AZF1 (GKI 6.12.30-android16-5).
هذه الحزمة ليست جذرًا كاملًا. إنها تحوّل SELinux إلى الوضع Permissive وتحافظ على الاستعادة (reclaim) لفترة كافية للأعمال اللاحقة. لا يتم تحقيق uid=0 للمضيف هنا.
مبنية من خط أعمال GhostLock / CVE-2026-43499: هيكل preload من Xiaomi popsicle، وSamsung Root-My-Galaxy (بما في ذلك هدف الجهاز emerald وإعادة الاستهداف m3q)، تم تكييفها هنا لـ park خاص بـ AZF1 فقط. انظر الإسناد.
kptr_restrict / على نفس المكدس). تلك تسبب انهيار النواة، وقد تركت على هذا الجهاز إقلاعات لا تعمل إلا في الوضع الآمن (استرداد من فئة RescueParty)، مع خطر إعادة ضبط المصنع إذا استمريت في فتح القفل / الاسترداد بشكل سيئ.bin/preload-4-s1.so خاص بـ AZF1. البرامج الثابتة الأخرى تحتاج إلى إعادة توليد target.h.sched_blocked_reason → قاعدة الصورة).rt_mutex مزوّرة (VA من الخريطة الخطية).selinux_state.enforcing (enforce 1→0).WAIT_REQUEUE_PI حتى يعيش الـ park لفترة أطول من KP مؤجل خام عبر I4.LD_PRELOAD (/system/bin/true)، مع الاحتفاظ بالاستعادة؛ وتسجّل S1_READY.شكل النجاح:
adb shell getenforce # Permissive
adb shell pidof true # non-empty (parked preload)
يكتب السكربت المساعد أيضًا عناوين VA لنفس جلسة الإقلاع إلى finish_va.txt (KASLR، spray، رموز DATA الثابتة).
يمنح GhostLock على هذا البرنامج الثابت كتابة عشوائية مقيّدة (قيم NULL وقيم الخريطة الخطية/الرشّ إلى .data القابل للكتابة — وليست نصوص/rodata النواة كقيمة STORE) بالإضافة إلى SELinux في الوضع Permissive. الجذر الناعم (soft-root) لا يزال مفقودًا:
| الحاجة | السبب |
|---|---|
| تسريب معلومات / AR | task_struct* من الكومة أو inode VA الخاص بـ /dev/uhid (قراءة GhostLock من shape-0 والعديد من oracles معطّلة على AZF1) |
| Cred / إنهاء | بمجرد معرفة task: اكتب init_cred (أو حقول uid) — قد تحجب Samsung KDP/RKP مقايضات المؤشرات الساذجة؛ جذور Knox العاملة تحتاج عادةً إلى uid=0 للمضيف ثم KernelSU الواعي بـ KDP (ksud) |
| كتابة مستقرة بعد I4 | لكمات GhostLock الإضافية بعد I4+R1e غير آمنة (تدخل في KP). لا تتعامل مع «فقط أعد STORE» كإنهاء |
CVE تكميلي منفصل (خاصة بدائية قراءة لا تزال حاضرة على إصدار يونيو AZF1) هو المسار الحالي عالي القيمة (high-EV)؛ تحسين المزيد من لكمات W2 على GhostLock وحده ليس كذلك.
target.h لإصدارك)adb وpython3 وAndroid NDK r29+ (لإعادة البناء)LD_PRELOAD في /system/bin/true# from a Linux/WSL host with the device attached
export SHARE="$PWD" # or path where this repo lives
bash park_cal_one.sh
adb shell getenforce # expect Permissive
يضبط park_cal_one.sh المتغير SHARE افتراضيًا على دليل هذا المستودع. يمكنك تجاوزه إذا لزم الأمر:
SHARE=/path/to/this/repo PRELOAD=/path/to/this/repo/bin/preload-4-s1.so bash park_cal_one.sh
اترك عملية true المُبقاة (parked) وشأنها. لا تربط لكمات ثانية تجريبية من أشجار أخرى.
powershell -ExecutionPolicy Bypass -File .\build-park.ps1
اضبط $ndkBin داخل السكربت إذا كان مسار NDK لديك مختلفًا.
make -C source clean preload
# output: source/build/bin/preload.so (same I4+R1e park flags as preload-4-s1)
cp source/build/bin/preload.so bin/preload-4-s1.so
يفعّل target.h الافتراضي مرشح I4 + R1e + park S1 (AZF1_R1_SECOND_WAIT، AZF1_R1_THEN_S1). لا تفعّل علامات K3/K4 أو اللكمات الثانية الناعمة لهذه الحزمة.
bin/preload-4-s1.so prebuilt park payload (AZF1)
park_cal_one.sh push + run + VA parse
build-park.ps1 Windows NDK build (park only)
source/ preload sources + AZF1 target.h
generate_target.py optional retarget helper (needs your boot.img)
| المرحلة | الحالة |
|---|---|
SELinux enforce→0 + park (I4+R1e) | يعمل على جهاز اختبار AZF1 |
| لكمات GhostLock الإضافية «W2» | لا تفعلها — تسبب KP؛ قد تفرض إقلاعًا بالوضع الآمن فقط |
uid=0 للمضيف / تثبيت KernelSU | غير متضمن في هذه الحزمة — يتطلب تسريبًا + إنهاءً واعيًا بـ Knox |
تعتمد هذه اللقطة على أعمال بحثية وعامة سابقة. الفضل لأصحابه:
| المشروع | دوره في هذا الـ park |
|---|---|
| CVE-2026-43499-popsicle (Xiaomi popsicle) | هيكل استغلال GhostLock: حزام LD_PRELOAD، واستعادة/رشّ KernelSnitch، ومنتظِر مشفّر عبر fdset، ونواة الكتابة المتبقية عبر pselect، وتخطيط generate_target.py / Makefile |
| Root-My-Galaxy + Root-My-Galaxy-Payloads | تأطير الجذر الناعم لـ Samsung (W1 park / متابعة W2)، واتجاه إنهاء واعٍ بـ Knox/KDP، ومواد هدف m3q / AZF1، ونهج KASLR عبر tracefs أولًا المستخدم هنا بدلًا من انزلاق P0 boot_id الخاص بـ popsicle |
| emerald (هدف جهاز RMG) | نقل سابق لـ GhostLock على سلالة أجهزة emerald الذي أفاد هندسة Samsung لدى RMG واستراتيجية الانزلاق ونمط شحن W1 الخاص بـ park SELinux؛ هذا الـ park m3q/AZF1 ضمن هذا الخط، وليس إعادة كتابة من الصفر |
الثغرة: CVE-2026-43499 (GhostLock — كتابة متبقية لوراثة الأولوية عبر rt_mutex).
هذه الشجرة: نقل AZF1 / m3q (SM-S948U1 / S948U1UES3AZF1) لمصادر preload الخاصة بـ popsicle مع تكييفات Samsung من فئة RMG/emerald، مقتطعة إلى حزام park خاص بـ SELinux فقط لأجهزة يملكها باحثون. ليست دمجًا عائدًا إلى هدف منتج Root-My-Galaxy الخاص بـ emerald.