Paka 0.14.0
Paka 0.14.0 adds encrypted photo passes and hardens nearly every layer beneath them.
Added
- Encrypted photo passes: one or two imported images per pass (photo ID front/back, proof of insurance), stored only as AES-256-GCM ciphertext with envelope encryption, included in portable backups
- Immediate viewing: pre-scaled encrypted display copies, session caching, and pre-decoding of the visible page make opening and side-flipping instant
- Photo-containing backups use a compact binary payload; barcode/PDF-only backups keep stable-compatible schemas and remain restorable by 0.13
Security
- Portable backups derive keys with 600,000 PBKDF2-HMAC-SHA256 rounds; new passphrases require 12+ characters (older backups and passphrases still restore)
- On-device keys prefer StrongBox where available; pre-versioned 2FA stores re-encrypt into the authenticated layout on first load
- Imports read through bounded, zeroed buffers; photo imports validate headers, dimensions, and pixel counts
- The build supply chain is pinned end to end: SHA-pinned CI actions, validated Gradle wrapper, checksum-verified dependency graph, Dependabot
Reliability
- Crash-durable store replacement (directory fsync, flushed backups) and a tested primary/backup recovery path
- Tolerant restore skips pass types from newer versions instead of rejecting the backup; restore success and rollback are covered by tests
Performance
- Cold start improves via a recorded baseline profile that is now actually applied on sideloaded installs
- Updated toolchain and Compose (Gradle 9.6, AGP 9.2, compileSdk 37; runtime behavior unchanged)
Fixed
- A pass opened on its own shows its barcode at the same height as inside a stack
Full details in CHANGELOG.md. Installs as an update over 0.13 and all 0.14 previews.