tane/.forgejo
vjrj facd72db16
All checks were successful
ci / analyze (push) Successful in 1m29s
ci / test-commons-core (push) Successful in 55s
ci / test-app-seeds (push) Successful in 9m51s
ci(release): apksigner --alignment-preserved true (reproducibility, final layer)
Even with the /home/vagrant path fix and v2/v3-only signing, the verify
still failed on a v3 CHUNKED_SHA512 mismatch with an EMPTY file diff. Cause
found by byte-level compare: apksigner (build-tools 35+) re-aligns native
libs to 16KB pages by default (--alignment-preserved defaults to false),
rewriting each .so's ZIP local-header extra field from gradle's 0x0 padding
to the 0xd935 alignment marker. F-Droid's reproducibility check compares
against the raw gradle output (0x0), so our re-aligned reference (0xd935)
differed in the signed bytes though every file was identical. Proven: 273
entries differed only in the extra field, 0 in compressed data. Signing
F-Droid's own unsigned build with --alignment-preserved true yields content
byte-identical to it (0 extra-field diffs, 0 data diffs). So preserve the
build's alignment when signing the reference.
2026-07-22 22:57:51 +02:00
..
workflows ci(release): apksigner --alignment-preserved true (reproducibility, final layer) 2026-07-22 22:57:51 +02:00