mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-15 14:01:16 +02:00
- Installs made before records kept a version code no longer get replaced by an older Quest copy: the installed code is read from app.apk on the Frame (stdlib parser, only the manifest crosses the link); if it can't be read, replacing needs allowDowngrade. The data-copy guard uses the same lookup. - Split members are checked against both ZIP headers: same local name and method, local sizes and checksum (or a validated data descriptor, with ZIP64 extra fields understood) equal to the central directory, no overlap with the next entry, and no trailing bytes after a deflate stream. - The game is closed in a finally block, so a local OSError or Ctrl-C part-way through a copy still closes it; the original exception is kept and a failed close is reported separately. - running_instances(strict=True) fails closed (a failed `podman ps` raises), used by the Quest import; other callers keep the lenient listing. - The dumpsys version check reads only the package's own block. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>