
GhostLock (CVE-2026-43499) exploit fork for RootMyVivo Neo — iQOO Neo 11 (PD2520, SM8750, 6.6.89). For authorized research on own devices only.
Форк boxiaolanya2008/CVE-2026-43499-Neo11Plus, переработанный под RootMyVivo. Убрано всё, что ломало телефон после рута, оставлено ядро эксплойта с проверенными таймингами.
| Каталог | Устройство | Ядро | Откуда оффсеты |
|---|---|---|---|
PD2520-BP2A.250605.031.A3 | iQOO Neo 11 | 6.6.89 | kallsyms+BTF своего boot.img, проверено на железе |
PD2520-A-16.0.28.2 | iQOO Neo 11 | 6.6.127 | kallsyms из boot_b |
I2401-16.1.22.2 | iQOO 13 (India) | 6.6.89 | AmarnathCJD/IQOO13-Root |
PD2426-BP2A.250605.031.A3 | iQOO Neo10 Pro | 6.6.89 (gf2) | sgswzglwlx/vivo-root-build |
PD2415-BP2A.250605.031.A3 | vivo X200 | 6.6.89 (b57) | xiaohj233/ghostlock-x200-root — тот же бинарь подходит Neo10 Pro на b57 |
PD2405-AP3A.240905.015.A1 | vivo X200 Pro | 6.6.89 | CyberMeowfia |
Новый девайс = новый каталог в src/targets/: target.h (оффсеты) + root.c (наш проверенный финал, копируется как есть).
| Компонент | Причина |
|---|---|
| Смена обоев + убийство system_server | источник «самовольных» софт-ребутов и подменённых обоев |
| io-демон на порту 39555 | был нужен только отладочному kernelapp |
| tmpfs-оверлей на /apex/com.android.virt | вешал zygote при софт-ребуте (чёрный экран) |
| Boot-сервис 10-neo11-su.sh | закрепление делает приложение |
| Таблицы оффсетов чужих устройств | теперь свои, по каталогу на цель |
Ядро эксплойта (futex PI UAF → pselect fake lock → heap spray → pipe physrw → root) и posture (panic_on_oops=0, kptr_restrict, AVC-отравление) не тронуты.
Поверх upstream добавлено: safety_quiesce (ждёт loadavg < 4 перед PI-маршрутом), cred-guard (проверка каноничности адресов перед записью), retry-цикл до 3 прогонов в свежих fork. Ручки окружением: RMV_ATTEMPTS, RMV_RETRY_DELAY.
Откуда вообще паники: INIT_STACK_ALL_ZERO затирает стек и срывает fake waiter — лечится quiesce+retry; мусорная цель после неудачного reclaim — cred-guard; panic_on_oops=1 в стоке — posture выключает сразу после рута, до него спасает только аккуратность.
Windows, NDK r29:
build_ports.bat # все порты
build_ports.bat I2401-16.1.22.2 # одна цель
build-win.bat # PD2520 6.6.89
На устройстве через Termux тоже можно — см. Makefile.
Выход: build/<target>/bin/preload.so (~140 КБ). Запуск: LD_PRELOAD=$PWD/preload.so /system/bin/true из shell-домена.
Всё считается автоматически через P0_DATA_ALIAS_CONST из P0_PHYS_OFFSET и P0_KERNEL_PHYS_LOAD. Qualcomm SM8750: 0x80000000/0xa8000000. MediaTek Dimensity 9400: 0x80000000/0x80000000. Неверное значение не паникует — слайд просто не сойдётся.
CVE закрыт в 6.1.175 / 6.6.140 / 6.12.86. Но совместимость определяется не только версией: позиция rt_mutex_waiter на стеке do_futex зависит от PGO/LTO сборки. Подробный разбор — у JoinChang/ghostlock-oneplus: у OPLUS 6.1 do_futex инлайнятся и эксплойт невозможен, у vivo 6.1 — жив. Прежде чем браться за порт, проверь фрейм.
Только авторизованное исследование и собственные устройства.