LibreNostr 0.1.3 is out.
Actually de-Googled now. Play Billing, ML Kit, Cronet and Firebase are gone, but the interesting one is what survived the first pass: Google Play Services was still being pulled in transitively by the Breez Spark SDK, through credentials-play-services-auth. That wallet backend was already disabled in code and returning a stub, so it cost 17.8 MB of native code per ABI and the whole play-services auth stack for nothing. APK went from 78.6 MB to 55.2 MB.
Primal Premium is gone too: 138 files, 14,742 lines that could not work without their servers anyway.
Three privacy fixes:
1. Photos are stripped of metadata before they reach a Blossom server. A camera shot carries EXIF with GPS to a few metres, capture time, device make and serial, often the owner's name. Byte-level rewrite for JPEG, PNG and WebP, so pixels are copied untouched and nothing is re-encoded. Now LibreNostr deletes everything before sending them the a Blossom server.
2. Direct message queries no longer go to the hardcoded public fallback relays. Opening the messages tab used to tell seven third-party relay operators your pubkey and that you were reading DMs, whatever relays you had configured.
3. Long-form feeds fell back to the global firehose whenever the author list came out empty, and the public long-form firehose is mostly spam and pr0n. Reads now come from your follows, widened at most to their follows. Never global.
Also in 0.1.3: notifications are faster and no longer truncated (one REQ instead of five, with each kind no longer competing for the same page), zaps are credited to whoever actually zapped rather than to the recipient's LNURL server, and NIP-84 highlights finally work with Amber, which was rejecting kind 9802 locally before the signer was ever asked.
github.com/Lwb89dev/librenostr
Get it on
@Zapstore as usual