magisk-zapret2/zapret2/lifecycle-contract.version
loop-uh 58fc6d6040 Raise the lifecycle contract for the stopped payload's new meaning
A stopped status may now decline to certify the ruleset, on every status
protocol version, and nothing on the wire said so. The marker that exists
to say it stayed at 7 — the exact value the shipped 2.1.5 app requires —
so that app would accept a 2.2.0 package and then read an honest,
completed stop as "a process or stale rules remain", repeating it on
every observation until a start rewrote the snapshot.

This gates the in-app install path only; a root-manager flash still
reaches the same pairing. That is a deliberate limit of the marker, not
a reason to leave it silent about a change it was built to announce.

Also pins service.sh's interpreter where it is rewritten. The fixture
that swaps /system/bin/sh for the host shell justified itself by an
assertion elsewhere that does not exist, and it is the only reader of
that line. Counted rather than merely present: the start script is
spawned twice, and checking one site passes while the other regresses.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 12:14:50 +03:00

1 line
2 B
Text