github igorcv88/Root-My-Galaxy-Extended v0.3.49
Root My Galaxy 0.3.49

latest releases: v0.3.104, v0.3.103, v0.3.102...
one month ago

Root My Galaxy 0.3.49

SHA-256: d155b680fa594488308ef77cc103c3e747c408a51af12f8fec87537d7c2a8d4d

Changes since v0.3.48.

What's changed

  • #39 Run CZG3 Auto Root from a fresh bound executor

Full changelog

Detailed pull-request notes for all changes included in this release.

#39 — Run CZG3 Auto Root from a fresh bound executor

Why

The current CZG3 post-gate architecture keeps the Auto Root boot coordinator alive from roughly boot +50–60 s until the 120 s launch gate. In the latest controlled runs, the manual path remained top-app / effective uclamp max 1024 at helper spawn and succeeded, while three consecutive Auto Root runs reached the gate as /moderate, cpu:/background, effective uclamp max 266 and all failed. Two Auto Root failures passed the FOPS race but failed the subsequent physrw cache gate; one missed the FOPS readiness window. An Auto Root success has existed previously in the demoted state, so this PR treats scheduling state as a probability/architecture confound rather than a deterministic root cause.

Change

  • Keep the exact CZG3 minimum-uptime wait in a lightweight Czg3AutoRootGateService.
  • Keep that gate as the sole foreground service for the CZG3 boot flow.
  • At the selected uptime, bind the existing AutoRootService into a fresh :autoroot_exec process with BIND_AUTO_CREATE; the executor starts from onBind() instead of relying on a delayed second startForegroundService() call after the BOOT_COMPLETED exemption has expired.
  • Isolate the boot receiver/gate/action receiver in :autoroot_gate so the UI/main process and Shizuku passive initialization are not introduced into the Auto Root execution process.
  • Preserve the existing native 120 s fail-safe gate, observer v2, P0/FOPS timings, retry policy, 70,000 us FOPS route, checkpoints and fail-closed semantics unchanged.
  • Keep a durable pre-History gate sentinel; once the normal History entry exists, that entry takes over crash/reboot recovery. A same-boot executor binding loss is reconciled as Failed, while a real boot change remains UnexpectedReboot.
  • Serialize History access across main/UI and :autoroot_exec with an OS-level file lock in addition to the existing in-process monitor, preventing concurrent AtomicFile backup recovery from racing checkpoint/terminal writes.

Review feedback addressed

  • P1: removed the delayed second-FGS start and replaced it with a bound fresh executor while the gate remains the sole FGS.
  • P2: added interprocess serialization for all History load/recovery/checkpoint/terminal/delete operations.

Validation

A temporary branch-only workflow using Java 21 passed after the review fixes:

  • testDebugUnitTest
  • lintDebug
  • assembleDebug

The temporary workflow was removed after validation.

Don't miss a new Root-My-Galaxy-Extended release

NewReleases is sending notifications on new releases.