Olvid client application for Android

Overview

Olvid

Olvid is a private and secure end-to-end encrypted messenger.

Contrary to most other messaging applications, Olvid does not rely on a central directory to connect users. As there is no user directory, Olvid does not require access to your contacts and can function without any personal information. The absence of directory also prevents unsolicited messages and spam.

Because of this, from a security standpoint, Olvid is not "yet another secure messenger". Olvid guarantees the total and definitive confidentiality of exchanges, relying solely on the mutual trust of interlocutors. This implies that your privacy does not depend on the integrity of some server. This makes Olvid very different from other messengers that typically rely on some "Trusted Third Party", like a centralized database of users or a public blockchain.

Note that this doesn't mean that Olvid uses no servers (it does). It means that you do not have to trust them: your privacy is ensured by cryptographic protocols running on the client-side (i.e., on your device), and these protocols assume that the servers were compromised from day one. Even then, your privacy is ensured 😊 .

Help and documentation

If you need help using Olvid, first have a look at our FAQ at https://olvid.io/faq/. We also have a few short tutorial videos available in English and in French.

If you are looking for technical documentation, have a look at our technology page where you can find some technical specifications and the reports of the audits Olvid went through to get its CSPN certifications.

Send us feedback

If you find a bug, or have any feedback about Olvid, please contact the team at Olvid at [email protected]. They will be glad to hear your suggestions.

Building Olvid from the sources

Olvid is available on Google Play or can be compiled from the source. You will get the same app, with the exact same features, but building it from the sources will require a little more work 😁 The Olvid team will do its best to publish the sources of any new version available on Google Play to this repository as soon as possible.

To build Olvid, you will need the latest version of Android Studio.

  • clone this repository
  • open the project located in obv_messenger in Android Studio (we know, this is weird, but for historic reasons the root project is not at the root of the repository!)
  • prepare an emulator or plug in your phone and press "Run app"

Compiling and running Olvid should work straight out of the box. If you run into issues, please contact us at [email protected].

WARNING : if you want to run Olvid on your device and already have Olvid installed from Google Play, make sure to change the applicationId or add an applicationIdSuffix in the productFlavors of the main build.gradle to avoid overwriting your app. Or at least, test your build on an emulator before overwriting your app 😂

Getting Google push notifications

Unfortunately, even if you have Google Services installed on your device, you will not be able to get push notifications for versions of Olvid built from the sources. The Olvid server uses specific credentials to send push notifications, and these credentials are tied to the signature of the "official" Google Play version of Olvid.

You may activate the "Maintain a permanent WebSocket connection" option in the privacy settings of the app in order to be notified instantly of new messages.

Structure of the project

Olvid is built of two main components:

  • a cryptographic engine, written in pure Java (no Android APIs) located in the obv_engine folder
  • an application layer, using the Android APIs for the graphical interface and OS integration , locate in the obv_messenger folder

The engine is in charge of all the encryption, contacts and groups management, and network communications, while the application layer implements the instant messaging functionalities on top of the engine.

As of now, the code is not fully documented and contains very few comments. Still, some aspects of it are very advanced and might be hard getting into. We encourage you to read the code, understand it and make your own modifications and additions. But keep in mind that some mechanisms are rather "fragile" and might break easily 🥚 🥚 🥚 . The Olvid team is doing its best to improve your experience using this code and will try to improve these aspects in future releases.

Contributing to Olvid

Olvid, as a company, has not yet put in place all the necessary processes to easily accept external contributions. In particular, a Contributor License Agreement should be made available at some point in time. Until then, please contact us at [email protected] if you would like to contribute.

License

Olvid for Android is licensed under the GNU Affero General Public License v3. The full license is available in LICENSE.

Olvid for Android
Copyright © 2019-2021 Olvid SAS

Olvid is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License, version 3,
as published by the Free Software Foundation.

Olvid is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with Olvid.  If not, see <https://www.gnu.org/licenses/>.
Comments
  • Sauvegared sur Nextcloud ?

    Sauvegared sur Nextcloud ?

    Bonjour,

    Dans la faq j'ai vu que la sauvegarde pouvait se faire sur icloud ou google drive. Est-ce qu'elle est aussi possible sur un compte Nextcloud ?

    opened by Jacques-Olivier-Farcy 5
  • Prefers `_` over `|` for backup checkout on Windows

    Prefers `_` over `|` for backup checkout on Windows

    Windows do not allow | in filenames, thus Olvid backups cannot be checked out on these platforms. This patch replaces this character by _, at the cost of being breaking for already existing backups.


    Feel free to edit this PR as needed (maybe in a BC way ?).

    Thanks, bye 👋

    opened by HorlogeSkynet 3
  • Fail to run unit tests with

    Fail to run unit tests with "./gradlew test" on v0.13.0

    Is it just me? I'm unable to pass the tests

    The tests are failing with some java.io.FileNotFoundException

    https://github.com/kumy/olvid-android/actions/runs/3348245044/jobs/5547103193#step:4:241

    > Task :java-websocket:test
    
    org.java_websocket_olvid.AllTests > org.java_websocket_olvid.issues.Issue764Test.testIssue FAILED
        java.io.FileNotFoundException at Issue764Test.java:73
    
    org.java_websocket_olvid.AllTests > org.java_websocket_olvid.issues.Issue825Test.testIssue FAILED
        java.io.FileNotFoundException at Issue825Test.java:75
    
    org.java_websocket_olvid.issues.AllIssueTests > org.java_websocket_olvid.issues.Issue256Test.runReconnectSocketClose[0] FAILED
        java.lang.AssertionError at Assert.java:88
    
    org.java_websocket_olvid.issues.AllIssueTests > org.java_websocket_olvid.issues.Issue764Test.testIssue FAILED
        java.io.FileNotFoundException at Issue764Test.java:73
    
    org.java_websocket_olvid.issues.AllIssueTests > org.java_websocket_olvid.issues.Issue825Test.testIssue FAILED
        java.io.FileNotFoundException at Issue825Test.java:75
    
    org.java_websocket_olvid.issues.Issue1142Test > testWithSSLSession FAILED
        java.io.FileNotFoundException at Issue1142Test.java:112
    [...]
    
    opened by kumy 10
  • [Feature Request] Payment gateway outside of the app store

    [Feature Request] Payment gateway outside of the app store

    Create a payment gateway outside of the app store on your website for example like Zoom or Threema as some of us use ROMs and can't access the store or would like to have a desktop only experience.

    Perhaps a credit like system used in MullvadVPN where we can top-up our account for a month or more is also a good idea.

    opened by mystic-githuber 2
  • New releases should always be shared on GitHub before the stores update

    New releases should always be shared on GitHub before the stores update

    Just saw there's an update for Olvid on the play store (0.11.1 , from the 27/01 !?), I was pretty surprised seeing it as I didn't get any email from GitHub about new release on the code, and well yeah after checking here, you didn't shared the code of that new release here (yet?)?? I really think it should be before the update get on the stores

    opened by Naia-love 9
  • Fonction

    Fonction "Prendre une photo" échoue

    Quand je tente de prendre une photo depuis l'application, j'obtiens une erreur: "Erreur au niveau de la caméra - L'application ne dispose pas des autorisations critiques nécessaires à l'exécution. Veuillez vérifier vos paramètres d'autorisation"

    J'ai pourtant bien autorisé l'application à accéder à la caméra.

    Mobile: Sony Xperia XA2+ (Modèle H4413) Version Android: 11 ROM: LineageOS 18.1 Pas de Google Apps

    Je ne sais pas si cela a une importance mais j'ai désactivé l'application Caméra fournie de base pour utiliser une autre application, mais cela ne pose pas de soucis à d'autres applications.

    Si vous avez besoin de logs spécifiques, donnez-moi le filtre logcat à utiliser et je les ajoute.

    opened by opoupel 1
  • Fix #3: Test, Build, Sign and push to GH releases

    Fix #3: Test, Build, Sign and push to GH releases

    • Fix #3
    • Relates #2

    Here is a GitHub workflow that will run on every branch to build and test the APK, and on tag it also create a release, sign and upload the APK.

    It needs some secrets to be added to the repo to sign the release (see https://github.com/marketplace/actions/sign-android-release). it also need the GITHUB_TOKEN to have write privileges on the repo.

    You can see the result on my repo fork https://github.com/kumy/olvid-android/releases (Using a dumb signing key)

    Bests

    opened by kumy 1
Releases(v0.13.0_184)
Owner
Olvid
Olvid
EssentialClient is a client side mod originally forked from Carpet Client for 1.15.2 that implements new client side features

EssentialClient EssentialClient is a client side only mod originally forked from Carpet Client for 1.15.2 that implements new client side features. Th

null 62 Jan 3, 2023
ZerotierFix - An unofficial Zerotier Android client patched from official client

Zerotier Fix An unofficial Zerotier Android client patched from official client. Features Self-hosted Moon Support Add custom planet config via file a

KAAAsS 830 Jan 8, 2023
Android application made during an introduction class to mobile application development.

Reflex Revolution Android application made during an introduction class to mobile application development. Contributors Hailey Savoie Carter Moore Fre

Frederic Verret 3 Aug 27, 2022
Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Hayden Hanson 0 May 21, 2022
This is the src of Badlion client 3.0.0, The reason of this repo is badlion client's owner being p e d o

About Badlion Using Gradle instead of the shit mcp uwu Commands Run with random username gradle startGame Run with another username gradle startGame -

Pace 32 Dec 2, 2022
This is the src of Badlion client 3.0.0, The reason of this repo is badlion client's owner being p e d o

About Badlion Using Gradle instead of the shit mcp uwu Commands Run with random username gradle startGame Run with another username gradle startGame -

Pace 32 Dec 2, 2022
Catogram - Experimental telegram client based on official Android sources

Catogram Experimental telegram client based on official Android sources Features: Message translator TGX Style of context menu VKUI Icons and inbuilt

null 188 Dec 17, 2022
Aliucord - Discord Android app mod inspired by desktop Discord client mods.

Aliucord Aliucord is a modification for the Android Discord app inspired by desktop client modifications. Unlike other Android Discord app modificatio

null 2k Dec 31, 2022
The Android remote client for linux rhythmbox

RhythmRoid Rhythmroid is a remote android application for Rhythmbox on Linux. Rhythmroid helps you control the music playing in the rhythmbox on your

null 7 Sep 6, 2022
This app brings Privacy dashboard features from Android 12 to older android devices.

PrivacyDashboard This app brings Privacy dashboard features from Android 12 to older android devices. Have you ever thought which apps are accessing y

Rushikesh Kamewar 234 Jan 7, 2023
Share food-Android- - Food donation coded in native android with firebase, google maps api and php server xampp

share_food-Android- Instructions: 1. Create a firebase account and link it with the project via google-services.json. 2. This project also uses a XAMP

Abubakar 3 Dec 28, 2021
Simple Android app during a coding night. Just Learning Firebase and Android

KUI-App Simple Android app during a coding night. Just Learning Firebase and Android What we learned: Some basics of Android Basic setup of Firebase:

Kibabii University Informatics Club (KUI) 7 Aug 28, 2022
SpringBoot show case application for reactive-pulsar library (Reactive Streams adapter for Apache Pulsar Java Client)

Reactive Pulsar Client show case application Prerequisites Cloning reactive-pulsar Running this application requires cloning https://github.com/lhotar

Lari Hotari 9 Nov 10, 2022
These samples explore the different options that Spring Boot developers have for using Javascript and CSS on the client (browser) side of their application.

Table of Contents Getting Started Narrowing the Choices Create a New Application Webjars Show Me Some Javascript Normalizing Resource Paths Adding Tab

Dave Syer 18 Jul 29, 2022
ReleaseFab is a Java client application which automatically generates Release Notes for any project.

ReleaseFab is a Java client application which atomatically generates Release Notes for any project. The information can be gathered from multiple different sources including the source code itself, the Git repository and an Application Lifecycle Management System of your choice.

comlet Verteilte Systeme GmbH 7 Jun 10, 2022
A hybrid chat android application based on the features of Instagram and Whatsapp having UI just as Telegram.

GupShup About App It is a free online chat android application, enabling user to create a free user account and then log in using the credentials. Aft

Ratik Tiwari 1 May 22, 2022
Geoponics is an E-Commerce Android Based Application Designed for Farmers As Well As Normal Users to Buy and Sell Agricultural goods!

Geoponics : E-Commerce Application Geoponics is an E-Commerce Android Based Aplication Designed for Farmers As Well As Normal Users to Buy and Sell Ag

Prasad 3 Aug 31, 2021
This project was developed with the intention of improving my knowledge of Java in application development in Android Studio.

This project was developed with the intention of improving my knowledge of Java in application development in Android Studio.

Henrique Marinho Teixeira 2 Jan 26, 2022
An application created using Android Studio, Java and Firebase DB to serve patients and doctors at a medical clinic.

MEDICAL CLINIC APP An application created using Android Studio, Java and Firebase DB to serve patients and doctors at a medical clinic. Patients are a

Anik Sarker 16 Jan 5, 2023