
CVE-2026-43499를 이용해 Galaxy를 루팅하세요
中文: README_ZH.md
这是一个独立的仓库,因为此路径需要 Android shell 权限,通过 adb shell 或 Shizuku 获取。原始的
YuKongA/ghostlock-app 不使用
shell 权限,并且遵循不同的执行路径;其要求和代码路径不应假定与本项目可互换。
| 设备 | 内核 |
|---|---|
| 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 shell 用户身份启动 payload;APK 本身不是漏洞利用的执行上下文。
直接命令行路径运行相同的已验证 shell payload,无需 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을 일치시키십시오. late-load 중 재부팅은 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를 전달하거나(또는 PATH/NDK에 llvm-objdump가 있는 경우) 추가로 커널을 디스어셈블하여 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(lock 필드) <= 14, 즉 파생된 시프트(fd_set으로부터의 대기자 오프셋, qword 단위)가 <= 3이어야 하며, 그렇지 않으면 task/lock이 커널에 의해 0으로 초기화된 꼬리 부분에 떨어져 해당 경로가 작동할 수 없습니다. 레이아웃이 실현 불가능한 경우 스크립트는 명확한 오류와 함께 실패합니다.
페이로드 연구 및 지원 아티팩트에 대한 자세한 내용은 Root-My-Galaxy-Payloads에서 확인할 수 있습니다. Pull request를 환영합니다.
다음 프로젝트를 기반으로 하며, Apache License 2.0에 따라 라이선스가 부여됩니다(LICENSE 참조):