
このパッケージは完全なrootではありません。SELinuxをPermissiveに切り替え、後続の作業のためにreclaimを十分な時間保持します。ここではホスト`uid=0`は達成されません。
Samsung Galaxy S26 Ultra(SM-S948U1、コードネーム m3q)をファームウェア S948U1UES3AZF1(GKI 6.12.30-android16-5)上で動作させる、機能するSELinux専用parkの研究スナップショット。
このパッケージは完全なrootではありません。SELinuxをPermissiveに切り替え、後続の作業に十分な期間reclaimを保持します。ここではホストuid=0は達成されません。
これはGhostLock / CVE-2026-43499の一連の研究から構築されています:Xiaomi popsicle preloadシャーシ、Samsung Root-My-Galaxy(emeraldデバイスターゲットとm3q再ターゲットを含む)を、ここではAZF1のpark専用に適合させたものです。Attribution を参照してください。
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でsettleさせ、parkが生のI4遅延KPよりも長く生存できるようにします。LD_PRELOAD(/system/bin/true)の下でプロセスが生存し続け、reclaimを保持します。S1_READYをログ出力します。成功時の確認:
adb shell getenforce # Permissive
adb shell pidof true # non-empty (parked preload)
ヘルパースクリプトは、同じブートのVAをfinish_va.txtにも書き出します(KASLR、スプレー、静的DATAシンボル)。
このファームウェアのGhostLockは、制約付き任意書き込み(書き込み可能な.dataへのNULL値およびリニアマップ/スプレー値 — カーネルのtext/rodataをSTOREの値として書き込むのではありません)とPermissive SELinuxを提供します。ソフトrootは依然として不足しています:
別の補完的なCVE(特に6月のAZF1にまだ存在する読み取りプリミティブ)が現在の高EV経路です。GhostLock単独でさらにW2パンチを磨くことは、その経路ではありません。
target.hを再ビルド)adb、python3、Android NDK r29+(再ビルド用)/system/bin/trueへLD_PRELOADを実行できるシェル# 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
parkされたtrueプロセスには触れないでください。他のツリーからの実験的な2回目のパンチを連結しないでください。
powershell -ExecutionPolicy Bypass -File .\build-park.ps1
NDKパスが異なる場合は、スクリプト内の$ndkBinを設定してください。
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はCandidate I4 + R1e + S1 park(AZF1_R1_SECOND_WAIT、AZF1_R1_THEN_S1)を有効にします。このパッケージではK3/K4/ソフト2回目パンチのフラグを有効にしないでください。
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)
このスナップショットは、先行する公開・研究活動の上に成り立っています。クレジットは本来の持ち主へ:
脆弱性: CVE-2026-43499(GhostLock — rt_mutex優先度継承の残存書き込み)。
このツリー: popsicle preloadソースのAZF1 / m3q(SM-S948U1 / S948U1UES3AZF1)移植で、RMG/emeraldクラスのSamsung適応が施され、研究者所有のハードウェア向けのSELinux専用parkハーネスにまで削減されたものです。Root-My-Galaxy emerald製品ターゲットへのマージバックではありません。
| 必要なもの | 理由 |
|---|
| 情報漏えい / AR | ヒープtask_struct*または/dev/uhidのinode VA(shape-0 GhostLockリードと複数のオラクルはAZF1では機能しない) |
| Cred / 仕上げ | taskが判明したら:init_cred(またはuidフィールド)を書き込む — Samsung KDP/RKPは単純なポインタのすり替えをブロックする可能性があります。動作するKnox rootは通常、ホストuid=0を取得してからKDP対応のKernelSU(ksud)が必要です |
| I4後の安定した書き込み | I4+R1e後の追加のGhostLockパンチは安全ではありません(KPに入る)。「単にSTOREし直す」ことを仕上げとして扱わないでください |
| 段階 |
|---|
| ステータス |
|---|
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 reclaim/スプレー、fdsetエンコードされたウェイター、pselect残存書き込みコア、generate_target.py / Makefileレイアウト |
| Root-My-Galaxy + Root-My-Galaxy-Payloads | Samsungソフトrootの枠組み(W1 park / W2フォローオン)、Knox/KDP対応の仕上げ方向、m3q / AZF1ターゲット資料、およびpopsicleのP0 boot_idスライドの代わりにここで使用したtracefs優先KASLRアプローチ |
| emerald(RMGデバイスターゲット) | RMGのSamsungジオメトリ、スライド戦略、W1 SELinux-parkのリリースパターンに情報を与えた、emeraldデバイス系統での以前のGhostLock移植。このm3q/AZF1 parkはその系統に属し、ゼロからの書き直しではありません |