You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Morgan Pretty eb739bdc9b
ANR Defensive Coding (#1132)
* Made a number of changes to try and improve background ANRs

Added some more logs to the BatchMessageReceiveJob (to make it easier to track a specific job)
Shifted the ConversationActivity adapter initialisation to run on a background thread to reduce the hang when opening a conversation
Updated the ConversationViewModel to cache the recipient and openGroup values to avoid accessing the database unnecessarily
Updated the code to just stop all current closed group pollers instead of fetching a list to stop
Updated the PN registration to be triggered in an AsyncTask
Updated the call code to unregister a couple of additional receivers
Updated the background poller so it waits for 15 mins before running and doesn't replace the existing scheduler (allows for PNs to trigger explicit background polling)
Fixed an issue where we were sending push notifications which were too large and likely to fail as a result (non-pre-offer call messages)
Fixed an issue where a failing Open Group poller could prevent the background poller from receiving and processing DMs

* Updated to a more coroutine-y convention
2 years ago
.github Update bug_report 4 years ago
app ANR Defensive Coding (#1132) 2 years ago
buildSrc Paged conversation recycler, update compile sdk version 31 (#1049) 2 years ago
gradle/wrapper Paged conversation recycler, update compile sdk version 31 (#1049) 2 years ago
liblazysodium Add Session Id blinding (#862) 3 years ago
libsession ANR Defensive Coding (#1132) 2 years ago
libsignal Updated the code to use the network offset time everywhere relevant (#1111) 2 years ago
.gitattributes materialize conversation item indicators 11 years ago
.gitignore Old python scripts and config files removed. Transifex config updated with the new directory structure. 5 years ago
BUILDING.md Update BUILDING 4 years ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 4 years ago
LICENSE Initial Project Import 14 years ago
README.md feat: new session graphic 3 years ago
build.gradle Paged conversation recycler, update compile sdk version 31 (#1049) 2 years ago
gradle.properties Paged conversation recycler, update compile sdk version 31 (#1049) 2 years ago
gradlew Gradle/Gradlew/AndroidGradlePlugin update. 6 years ago
gradlew.bat Gradle/Gradlew/AndroidGradlePlugin update. 6 years ago
settings.gradle Add Session Id blinding (#862) 3 years ago

README.md

Session Android

Download on the Google Play Store

Add the F-Droid repo

Download the APK from here

Summary

Session integrates directly with Oxen Service Nodes, which are a set of distributed, decentralized and Sybil resistant nodes. Service Nodes act as servers which store messages offline, and a set of nodes which allow for onion routing functionality obfuscating users' IP addresses. For a full understanding of how Session works, read the Session Whitepaper.

Want to contribute? Found a bug or have a feature request?

Please search for any existing issues that describe your bugs in order to avoid duplicate submissions. Submissions can be made by making a pull request to our dev branch. If you don't know where to start contributing, try reading the Github issues page for ideas.

Build instructions

Build instructions can be found in BUILDING.md.

Translations

Want to help us translate Session into your language? You can do so at https://crowdin.com/project/session-android!

Verifying signatures

Step 1:

wget https://raw.githubusercontent.com/oxen-io/oxen-core/master/utils/gpg_keys/KeeJef.asc
gpg --import KeeJef.asc

Step 2:

Get the signed hash for this release. SESSION_VERSION needs to be updated for the release you want to verify.

export SESSION_VERSION=1.10.4
wget https://github.com/oxen-io/session-android/releases/download/$SESSION_VERSION/signatures.asc

Step 3:

Verify the signature of the hashes of the files.

gpg --verify signatures.asc 2>&1 |grep "Good signature from"

The command above should print "Good signature from "Kee Jefferys...". If it does, the hashes are valid but we still have to make the sure the signed hashes matches the downloaded files.

Step 4:

Make sure the two commands below returns the same hash. If they do, files are valid.

sha256sum session-$SESSION_VERSION-universal.apk
grep universal.apk signatures.asc

License

Copyright 2011 Whisper Systems

Copyright 2013-2017 Open Whisper Systems

Copyright 2019-2021 The Oxen Project

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

Socials