
CVE-2026-43499を使用してGalaxyをroot化する
中文: README_ZH.md
これは別個のリポジトリです。このルートは adb shell または Shizuku を通じて取得した Android シェル権限を必要とするためです。元の
YuKongA/ghostlock-app は
シェル権限を使用せず、異なる実行ルートをたどります。その要件
とコードパスは、このプロジェクトと互換性があると想定すべきではありません。
| デバイス | カーネル |
|---|---|
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZI1 |
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZH5 |
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZG3 |
起動時にカーネルは uname -r を介してオフセットテーブルと照合されます。サポートされていないカーネルは即座に拒否されます。
APK パスの場合、ワイヤレスデバッグを通じて Shizuku を起動し、GhostLock に権限を付与して、Run をタップします。Shizuku は Android シェルユーザーとしてペイロードを起動します。APK 自体はエクスプロイトの実行コンテキストではありません。
直接コマンドラインパスは、Shizuku を必要とせずに、同じ検証済みシェルペイロードを実行します:
make ghostlock helper
adb push ghostlock /data/local/tmp/ghostlock
adb push ghostlock-helper /data/local/tmp/ghostlock-helper
adb push app/src/main/assets/ksud /data/local/tmp/ksud
adb shell chmod 755 /data/local/tmp/ghostlock
adb shell chmod 755 /data/local/tmp/ghostlock-helper
adb shell chmod 755 /data/local/tmp/ksud
adb shell /data/local/tmp/ghostlock
このヘルパーは UMH ルートおよび KernelSU late-load ステージで必要です。
一部の Samsung/Exynos 6.1 カーネルでは、汎用 KernelSU モジュールが
ksud late-load 中に EL2 パニックを引き起こすことがあります。これはモジュールが
ライブテキストパッチを試みるためです。影響を受けるターゲットでは、正確なファームウェア
リリース用のモジュールをビルドし、ターゲットツリーの no-patch-text オプションを
有効にしてください:
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y
ターゲット固有の kernelsu.ko と ksud をペアにし、6.1 KMI だけでなくデバイスの完全な uname -r に一致させます。レイトロード中の再起動は、必ずしも ksud ローダーからではなく、モジュールの初期化に起因する可能性があります。これは Samsung/Exynos 固有の予防措置です。現在の SM-F9560 ターゲットは Snapdragon であり、別途検証する必要があります。ターゲット固有のビルド例については
Root-My-Galaxy-Payloads
を参照してください。
Qualcomm デバイスでは、tools/extract_target.py が boot.img と xbl_config.img からオフセットを解析します。Python 3 と kallsyms ソース(--kallsyms ファイルまたは --kallsyms-finder)が必要です。--llvm-objdump を渡す(または llvm-objdump を PATH/NDK に配置する)と、さらにカーネルを逆アセンブルして pselect_waiter_shift と off_slide_loggers_0_1 を自動導出します:
python tools/extract_target.py `
boot.img `
--xbl-config xbl_config.img `
--format c `
--out offsets.h
core_sys_select はユーザーの fd_set データのうち 3 x FDS_BYTES(nfds) のみをカーネルスタックにコピーします(nfds=320 の場合、qword 0..14)。futex ウェイターはその制御可能な領域内に収まる必要があります。ウェイター開始ワード + 11(ロックフィールド)<= 14、つまり fd_set からのウェイターオフセット(qword 単位)から導出されるシフトが <= 3 でなければならず、そうでない場合 task/lock はカーネルがゼロ埋めした末尾領域に落ち、このルートは機能しません。レイアウトが実現不可能な場合、スクリプトは明確なエラーで失敗します。
ペイロード研究と関連成果物の詳細については、 Root-My-Galaxy-Payloads を参照してください。 プルリクエストを歓迎します。
以下のプロジェクトに基づいており、Apache License 2.0 の下でライセンスされています(LICENSE を参照):