mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-android.git
synced 2026-08-04 16:35:40 +00:00
d8b31739e7
* ci: fail the build when a 64-bit native library is not 16 KB aligned Play rejects updates whose 64-bit native libraries are not aligned for 16 KB memory pages, but nothing in the build says so. A misaligned .so surfaces only as a policy issue in Play Console, days after a release has gone out — which is how one reached production here unnoticed. The check reads what the build actually produced rather than trusting the dependency list, because a single transitive dependency shipping an unaligned library is enough to fail the whole bundle. It walks every .aab and .apk under app/build/outputs, pulls each arm64-v8a and x86_64 .so, and compares its largest LOAD segment alignment against 16384. 32-bit ABIs are skipped: those devices use 4 KB pages. Verified against the v1.2.0 release bundle before it was cleaned up: 14 libraries scanned, and it caught libpl_droidsonroids_gif.so at 0x1000 — the one library Play flagged. A check that cannot fail on known-bad input is not a check. * test: make the tamper-detection test actually tamper checkTamperedDataFails wrote to encoded[lastIndex - 1] but computed the new value from encoded.last(). Whenever those two bytes already differed by exactly 0x01 the write was a no-op, the ciphertext stayed valid, decryption succeeded, and the expected AEADBadTagException never arrived — so the test failed for reasons unrelated to what it checks. One run in 256. Flip a bit in the byte being written instead, which changes the ciphertext every time.