Root My Galaxy 0.3.55
SHA-256: 93f8dfdb9365358287dcdc62f4376a11bb498cd85bf7f428b20898bd97212d43
Changes since v0.3.54.
What's changed
- #46 Rebuild Auto Root around fresh offline standalone executor
Full changelog
Detailed pull-request notes for all changes included in this release.
#46 — Rebuild Auto Root around fresh offline standalone executor
Goal
Rebuild Auto Root around the smallest reliability-first architecture that preserves the proven native exploit, without reintroducing observer/telemetry machinery.
Auto Root architecture
BOOT_COMPLETEDreceiver is deliberately tiny: preference + kernelboot_idchecks, then it starts the existingspecialUseforeground gate. No payload hashing or network access happens in the receiver.:autoroot_gateowns the foreground-service lifetime, validates the known-good payload, claims the once-per-kernel-boot automatic attempt, waits for Android readiness and the configured CZG3 launch uptime (120 s default), then binds a fresh:autoroot_execprocess.- The bind uses
BIND_AUTO_CREATE | BIND_IMPORTANT | BIND_ABOVE_CLIENT; no delayed second foreground-service launch is needed. AutoRootRunneris structurally standalone-only. It has no Shizuku branch and Auto Root has no runtime network path.- Auto Root consumes only the active last-known-good private payload cache and revalidates exact firmware identity plus artifact size/SHA-256 before execution.
- Only the exact
ProcessBuilder.start()window gets a best-effortTHREAD_PRIORITY_URGENT_DISPLAYboost so the child can inherit the best public app-side nice value. The parent polling thread is then lowered to background priority for the race and restored afterwards. - The app-side P0 SharedPreferences cache was removed from Auto Root so there are no per-progress preference writes during the race.
Manual Online / Manual Offline
- Every manual install explicitly asks for
Manual OnlineorManual Offline. - Manual Online resolves the current pinned support feed, downloads both artifacts to a disposable working directory, and verifies exact size/SHA-256.
- Nothing is written to the known-good cache before or during the exploit.
- Only after the exploit succeeds and KernelSU late-load/control verification completes does Manual Online atomically publish that exact set as the new last-known-good cache.
- Failure to publish the offline cache does not turn a successful root into a root failure; the previous known-good cache remains authoritative.
- Manual Offline never accesses the network. It loads only the active known-good set and revalidates exact target identity and hashes before using the normal manual install pipeline.
- There is no silent Online -> Offline fallback.
- Ordinary app refresh is local-only; online target discovery happens only for Manual Online or the explicit Advanced target picker.
History without hot-path instrumentation
- Auto Root creates its history entry in memory only.
- Exploit output is buffered in memory while the race is active.
- History is persisted after normal success/failure; persistence is best-effort and cannot change the root result.
- This makes Auto Root payload failures visible in Run History without
AtomicFile/fsyncactivity in the critical race window. - Notification updates are suppressed during the exploit and resume only after the runner reaches KernelSU stages.
Deliberately unchanged
- native payload/exploit and its known-good timing
- P0/FOPS/reclaim mechanism
- exploit attempt count/timeouts
- KernelSU v3.3.0 late-load/control-channel contract
- pre-armed KernelSU soft reboot implementation
- configurable launch-time control and 120 s default
Upstream/history usage
Upstream Root-My-Galaxy BuSung-dev#483 and this fork's older Auto Root experiments were treated as evidence, not as canonical implementations. The only ideas retained are those with a clear reliability rationale: standalone boot execution, a legitimate boot-time FGS, and a fresh process at the actual exploit launch. The old opportunistic-Shizuku Auto Root, long-lived executor, diagnostic observer stack, and pre-race cache/history writes are not restored.