Skip to content

Releases: permissionlesstech/bitchat-android

Bitchat Android 2.0.1

Choose a tag to compare

@callebtc callebtc released this 11 Aug 21:57
v2.0.1
93e9594

Bitchat Android 2.0.1

Highlights

  • Bitchat for Wear OS: join the nearby mesh from your watch, use public chat and encrypted direct messages, browse People, manage favorites and verification, receive notifications, record voice notes, and receive images and files.
  • New chat styles: choose the classic Matrix layout or peer-colored message bubbles, including bubble-aware media, timestamps, and delivery indicators.
  • Live push-to-talk: stream voice in public channels and encrypted direct messages on Android and Wear OS, with improved recording feedback, waveforms, haptics, and slide-to-cancel controls.
  • Cashu support: recognize and preview Cashu eCash tokens, use /pay, and redeem with a compatible external wallet or web flow. Cashu tokens are bearer instruments; anyone who obtains a token may be able to redeem it.
  • Persistent private conversations: keep conversation history, unread state, aliases, favorites, and previews across restarts, with clearer controls for deleting conversations.
  • Offline geohash globe: explore geohash channels with a native animated 3D globe, country borders, cities, polar coverage, and adjustable render quality.
  • Language picker: change the app language from within Bitchat, with expanded translations.
  • Local-first APK sharing and updates: share an installed APK nearby and resume signature-verified update downloads with clearer progress and rate-limit handling.
  • Reliability and privacy: stronger queued-message delivery and ordering, Noise session recovery and identity binding, more reliable receipts and peer lifecycle handling, safer Wi-Fi Direct cleanup, bounded payload processing, quieter sensitive logging, and a more complete panic wipe of in-memory networking state.

First reproducible full-app release

This is Bitchat Android's first reproducible full-app release. The unsigned phone and Wear OS APKs and Android App Bundles were built twice in independent GitHub Actions jobs using the pinned container environment, and every canonical byte matched before the release artifacts were promoted for local signing.

The release includes the signed phone and Wear OS APKs, the signed Play upload bundles, BITCHAT_BUILDINFO.json, the attested BITCHAT_SHA256SUMS.unsigned manifest, and the final BITCHAT_SHA256SUMS. The canonical unsigned binaries are intentionally not attached; their exact hashes are committed by the attested unsigned manifest and they can be rebuilt from the signed source tag. The signed APK and AAB payloads were checked against those canonical unsigned builds before publication.

To rebuild and verify everything from source (requires Git, GitHub CLI, Docker with Linux/amd64 support, and 16 GiB of memory recommended for Docker):

git clone https://github.com/permissionlesstech/bitchat-android.git
cd bitchat-android
git checkout v2.0.1
gh release download v2.0.1 --pattern 'BITCHAT_BUILDINFO.json' --pattern 'BITCHAT_SHA256SUMS*' --dir .reproducible-build/release-metadata-v2.0.1
gh attestation verify .reproducible-build/release-metadata-v2.0.1/BITCHAT_BUILDINFO.json --repo permissionlesstech/bitchat-android
gh attestation verify .reproducible-build/release-metadata-v2.0.1/BITCHAT_SHA256SUMS.unsigned --repo permissionlesstech/bitchat-android
tools/reproducible-builds/build-in-container.sh .reproducible-build/verify-v2.0.1
cmp .reproducible-build/verify-v2.0.1/SHA256SUMS.unsigned .reproducible-build/release-metadata-v2.0.1/BITCHAT_SHA256SUMS.unsigned

To verify the checksums of the published signed files without rebuilding:

gh release download v2.0.1 --dir .reproducible-build/download-v2.0.1
(cd .reproducible-build/download-v2.0.1 && shasum -a 256 -c BITCHAT_SHA256SUMS)

Most phones should use bitchat-android-universal.apk; bitchat-android-arm64.apk is a smaller download for modern ARM64 phones. Install bitchat-android-wear.apk directly on a Wear OS device. The Play upload bundles are signed separately for Google Play and are not intended for direct installation.

Full changelog: 1.7.4...v2.0.1

1.7.4

Choose a tag to compare

@callebtc callebtc released this 17 Jun 18:48
ffe62bf

What's Changed

Full Changelog: 1.7.3...1.7.4

1.7.3

Choose a tag to compare

@callebtc callebtc released this 16 Jun 18:10
ae66412

What's Changed

  • Fix request sync duplicate public messages by @callebtc in #707
  • fix(sync): resolve hash alignment and early break bugs on GCS filter trimming by @a1denvalu3 in #708
  • Fix Android security parity from iOS audit by @callebtc in #709
  • Wifi aware refactor mesh core by @callebtc in #711
  • feat: disable Wi‑Fi Aware by default by @callebtc in #712

Full Changelog: 1.7.2...1.7.3

1.7.2

Choose a tag to compare

@callebtc callebtc released this 30 Mar 08:45
4dfec91

What's Changed

New Contributors

Full Changelog: 1.7.1...1.7.2

APK release 1.7.1

Choose a tag to compare

@callebtc callebtc released this 01 Feb 12:27
43029e8

What's Changed

  • Fix location updates in notes and Nostr subscription leaks by @callebtc in #636
  • fix(geohash): cleanup sampling subscriptions when closing location sheet by @a1denvalu3 in #659
  • fix: pause geohash heartbeat (kind 20001) sampling when backgrounded by @a1denvalu3 in #660

Full Changelog: 1.7.0...1.7.1

APK release 1.7.0

Choose a tag to compare

@callebtc callebtc released this 15 Jan 18:17
e3056d7
  • source routing: more efficient direct messages
  • geohash presence: count online people in region-city
  • update arti to 1.9.0 and add 32 bit builds
  • geocoder for de-googled phone via openstreetmap
  • fixes several issues identified by security audit firm cure53
  • many ui improvements and fixes

What's Changed

  • Implement Geohash Presence (Heartbeats) by @callebtc in #576
  • Gossip mesh topology + source-based routing by @callebtc in #445
  • Feat/graph force by @callebtc in #581
  • visual logger refactor by @callebtc in #583
  • Update arti to 1.9.0 and produce 32 bit builds by @callebtc in #585
  • Move PrivateChatSheet hosting into ChatDialogs and unify sheet state by @yet300 in #586
  • use bluetooth icon by @callebtc in #597
  • Fix/nostr dm bottom sheet by @callebtc in #598
  • Fix and Improve LocationManager logic by @callebtc in #599
  • OSM fallback for geocoding by @callebtc in #611
  • security: prevent storage exhaustion by saving incoming files to cache by @a1denvalu3 in #606
  • feat: Stable BLE Peer Identity via Scan Response by @callebtc in #613
  • Refactor: Implement Hybrid Location Provider (System/Fused) by @callebtc in #612
  • fix(security): Clear in-memory keys during panic mode by @callebtc in #596
  • Improve QR Verification UI by @callebtc in #615
  • Implement iOS-compatible Direct Peer Detection (TTL Logic) by @callebtc in #574
  • fix: centralize and strictly enforce connection limits by @callebtc in #618
  • Fix: Correctly parse recipient/sender IDs in broadcaster to enable unicast by @callebtc in #619
  • security: ensure media files are deleted during panic mode by @a1denvalu3 in #607
  • fix: Ensure empty neighbor lists in newer announcements clear mesh edges by @callebtc in #620
  • fix(ui): Show acquiring location state instead of unavailable by @a1denvalu3 in #621
  • Fix/590-Private-key-stored-as-Plain-text by @anupamjhabbl in #603
  • Refactored BottomSheetTopBar to BitchatSheetTopBar by @yet300 in #601
  • spacing for geohash sheet text by @callebtc in #623
  • feat: Introduce Gradle property to control APK splits by @moehamade in #560
  • bump to 1.7.0 by @callebtc in #624

New Contributors

Full Changelog: 1.6.0...1.7.0

APK release 1.6.0

Choose a tag to compare

@callebtc callebtc released this 05 Jan 10:34
654d385

new

  • background persistence:Β bitchat can now run in the background to support the mesh even if you leave the app
  • improved tor: self-compiled arti library reduces APK size from 150 MB to 15 MB
  • QR code contact verification
  • fixes and improvements

What's Changed

New Contributors

Full Changelog: 1.6.0-rc1...1.6.0-rc3

APK release 1.6.0-rc2

APK release 1.6.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@callebtc callebtc released this 05 Jan 04:41
9733806

new

  • background persistence:Β bitchat can now run in the background to support the mesh even if you leave the app
  • improved tor: self-compiled arti library reduces APK size from 150 MB to 10 MB
  • QR code contact verification
  • bug fixes and improvements

What's Changed

New Contributors

Full Changelog: 1.5.1...1.6.0

APK release 1.6.0-rc1

APK release 1.6.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@callebtc callebtc released this 13 Dec 09:53
8767cfd

new

  • background persistence:Β bitchat can now run in the background to support the mesh even if you leave the app
  • improved tor: self-compiled arti library reduces APK size from 150 MB to 10 MB
  • bug fixes and improvements

What's Changed

  • feat: Tablet orientation fix for landscape mode by @developerchunk in #490
  • mesh optimization: suppress relay of reassembled packets by setting TTL=0 by @callebtc in #492
  • refactor app constants: service UUID for BLE by @callebtc in #494
  • Fix direct peer detection by binding on per-connection first ANNOUNCE and never dropping ANNOUNCE as duplicates by @callebtc in #502
  • fix connection attempt counter tracker by @callebtc in #503
  • Fix: do not reject empty packets that arent message type by @callebtc in #510
  • refactor app constants: service UUID for BLE by @callebtc in #500
  • Add Network permission requirement to README by @Mafiadoener36 in #522
  • feat: add product flavors and TorProvider abstraction by @moehamade in #508
  • Migrate from LiveData to Kotlin Flow by @yet300 in #518
  • Background persistence by @callebtc in #505
  • bump version 1.6.0 by @callebtc in #524

New Contributors

Full Changelog: 1.5.1...1.6.0-rc1

APK release 1.5.1

Choose a tag to compare

@callebtc callebtc released this 19 Oct 10:56
f633509
  • location notes
  • take in-app photos
  • audio note optimization

What's Changed

Full Changelog: 1.5.0...1.5.1