Skip to content

v1.4.1 — safety + data integrity hotfix

Choose a tag to compare

@FZ1010 FZ1010 released this 22 Apr 04:56
· 3 commits to main since this release

Hotfix from a multi-agent review. Fixes 8 issues, no new features.

Data integrity

  • Failed edits no longer silently swallowed — UI now surfaces which patches were rejected and why
  • Diff-then-Apply now respects in-progress edits instead of clobbering them with the original
  • Save is now atomic: stages to .tmp then mv, so a mid-write crash leaves the original intact

Path safety

  • Writes confined to /sdcard/Android/data// — no more arbitrary file targets through poisoned paths
  • Reject control bytes / parent-dir traversal in any path argument
  • Force-stop denylist for system / Play Store / Shizuku / banking app prefixes

Parser hardening (untrusted input)

  • NRBF parser bounds BinaryArray iteration count, ArraySinglePrimitive byte length, varint length, lpString length
  • Was: malicious save with rank=2 lengths=[2^30, 2^30] → 4-trillion-iteration loop. Now: parse error.

Reliability

  • All shell calls drain stdout + stderr concurrently (was: chatty stderr could fill its 64KB pipe and deadlock the child)
  • 64MB hard cap on file reads to prevent OOM
  • Backup cache files set to owner-only read

Same install path as previous (sideload over).