Repository navigation
UniRoot v3.5
UniRoot v3.5
One-click root for Samsung Galaxy devices — CVE-2026-43499 / dirty-pipe payloads with a KernelSU late-load.
Made by kuuky.
⚠️ I am not responsible for bricked phones.
🆕 What's new in v3.5
Crash-proof run logs (Root My Galaxy style)
The log box now exists from the start of the run (status Running) and every log line is persisted live. A crash, a freeze or an unexpected reboot mid-run no longer loses anything: on next launch the interrupted box is recovered as "Failed (interrupted)" with the full log. Every run lands in the Run history with date, final status (Completed / Failed / Crash / Reboot required) and is shareable as .txt.
Auto-root on boot (opt-in, off by default)
New switch in Advanced settings. When enabled, after every reboot the app automatically re-runs the last used profile through a foreground service:
- waits ~45 s for the boot to settle (SELinux, vendor init, slab state),
- waits up to 5 min for Shizuku to come back on profiles that need it (S26 Ultra — enable Shizuku's "Start on boot" with wireless debugging),
- runs once per boot (boot-count guarded — no double runs eating the pipe budget),
- posts a notification with the result; the full log lands in Run history as usual.
This is the natural companion to the LKM late-load root: root is per boot, so the app just re-applies it for you.
New S25 ksud (Samsung DEFEX/KDP build)
The bundled ksud of all three S25 profiles (S93XX, ZZHL, ZZI4) is replaced by the new DEFEX-patched build (md5 121f9acb…). Existing installs pick it up automatically: on startup the app compares embedded assets with the staged files and silently refreshes binaries that differ — profiles and settings are preserved, no "Reset profiles" needed.
Patched ksud test toggle (Advanced settings)
Off by default. When on, the pipeline stages your own patched ksud (e.g. a Samsung DEFEX/KDP rebuild for the S26 Ultra) instead of the profile one. The run log prints the md5 of both the installed file and the staged /data/local/tmp/ksud so you can verify exactly what ran. See KSU_PATCH.md in the repo for the rebuild details.
Smarter S26 pipeline
- One run per boot, enforced: after 8 failed internal attempts the run stops with an explicit Reboot required instead of burning the pipe budget in a contaminated boot state.
- Real host tracking: liveness is now checked through the payload's actual host pid (written at launch) — the old heuristic killed healthy runs ("Process terminated early" false positives are gone).
- Kill-before-retry: any relaunch first kills the leftover host so its pipes are released and the kernel pipe budget recovers.
Shizuku engine rebuilt
Commands run through the official IShizukuService.newProcess AIDL with a full Process adapter and server-side timeouts — no more silent failures, and a sanity id check is logged at every Shizuku run.
📥 Install
- Download
UniRoot-v3.5.apkbelow and install it (allow unknown sources). - S26 Ultra: start Shizuku (for auto-root, enable its "Start on boot") and grant it to Uni-Root.
- Open the app — profile auto-detects — Root now.
Root is per boot (LKM late-load): re-run after a reboot, or just leave Auto-root on boot on. If a run fails without crashing: reboot, then run once.
🧰 Credits
- UI based on GhostLock (YuKongA)
- Device feed & payloads: Root My Galaxy
- KernelSU: tiann/kernelSU