Commit Graph
1 Commits
Author SHA1 Message Date
Barry Deen e0a889d2be fix: revert 16KB packaging changes behind GrapheneOS perf regression
Fully revert f68b40f, which shipped in 1.0.2 alongside reports of severe
slowdown and freezes on GrapheneOS:

- jniLibs.useLegacyPackaging back to true: compressed native libs cut the
  download from 82MB to 37MB, and uncompressed 16KB-aligned packaging is
  only needed for Google Play, which this build no longer targets
- secp256k1-kmp pinned back to known-good 0.16.0 (0.19.0 = libsecp256k1
  0.7.0 rebuilt with NDK 28; runs once per relay event on the verify path)

Also fix adjacent issues found while auditing every shipped release APK
(all were clean: release-signed, R8-minified, correctly aligned — ruling
out a malformed artifact as the cause):

- baseline-prof.txt still targeted com/wisp/app after the rebrand; the
  next release would have shipped zero app AOT rules. Fixed paths now
  yield 12,888 app rules; verified on-device (cold start 2048ms -> 830ms
  once compiled, ProfileVerifier reports compiledWithProfile=true)
- release signing moved into Gradle (RELEASE_STORE_* via local.properties
  or env) so the published APK is exactly what assembleRelease emits
- tools/audit-apk.sh: pre-release gate checking debuggable flag, lib
  packaging consistency, alignment, R8, baseline profile, signing cert
- ProfileVerifier status logged at startup for field diagnostics
- <profileable android:shell="true"/> so testers can capture simpleperf/
  Perfetto traces from release builds
- docs/grapheneos-perf-investigation.md: full findings plus the A/B
  attribution matrix (incl. GrapheneOS MTE toggle test) for confirming
  which half of f68b40f was guilty
2026-06-10 11:48:57 -04:00