This project has ended, but ChatSecure iOS continues. For Android, please use Conversations or Zom instead

Overview

This Repository is Retired

ChatSecure for Android has been renamed and is continuing under the name Zom.

Learn more about Zom here: https://zom.im

Head to the new repo here: https://github.com/zom/Zom-Android


Everything below is considered archived.

ChatSecure for Android (previously known as Gibberbot) is a secure messaging app built on open standards like XMPP/Jabber and OTR encryption: https://guardianproject.info/apps/chatsecure

It includes OTR4J: https://github.com/otr4j/otr4j

and BouncyCastle for Java: http://www.bouncycastle.org/java.html

and SQLCipher for Android: https://guardianproject.info/code/sqlcipher/

Original wallpaper generated using Tapet app and Gimp: https://play.google.com/store/apps/details?id=com.sharpregion.tapet

and previously included some CC0 public domain beautiful images: Ry Van https://unsplash.com/ryvanveluwen https://unsplash.com/license

Bug reports

Please report any and all bugs or problems that you find. This is essential for us to be able to improve this software!

https://dev.guardianproject.info/projects/chatsecure/issues

Build Instructions

First make sure you have the Android SDK and Eclipse installed. Follow instructions here:

Please help us keep this process easy by letting us know if you have problems. If you have any questions, don't be afraid to email us at [email protected] or jump into our IRC chatrooms for real-time help at #guardianproject on freenode or OFTC (https://guardianproject.info/contact/chat/).

Get the source

The source code is all in the main git repos, with sub-projects setup as git submodules:

git clone https://github.com/guardianproject/ChatSecureAndroid.git
cd ChatSecureAndroid
git submodule update --init

ant setup

We use ant to make our official releases and automated test builds. If you are not familiar with Eclipse, then it is easier to start with the ant build:

export ANDROID_HOME=/path/to/android-sdk
./update-ant-build.sh
ant clean debug

Then the installable APK will be in bin/ChatSecure-debug.apk.

Eclipse setup

  1. Start by adding ChatSecureAndroid to Eclipse by going to File -> New -> Project... -> Android project from existing code.

  2. Open the ChatSecureAndroid folder that was just cloned from git.

  3. Eclipse will next show a list of subprojects to import, all of the libraries with New Project Name of library must be renamed after the project name, i.e. SlidingMenu, AndroidEmojiInput, ViewPagerIndicator.

  4. Click Deselect All. The sample and example projects are not needed, and can cause conflicts.

  5. Select ChatSecure again by clicking the top item in the list.

  6. Outside of Eclipse, open up the text file project.properties. Then back in Eclipse, for each line that starts with android.library.reference, select that path from the list of included sub-projects in Eclipse.

Now you should be ready to build ChatSecure!

Test Instructions

mvn test

See robo-tests/README.md for eclipse instructions.

Currently the instrumented target tests (to be run on a device) in the directory tests are empty.

Logging

adb shell setprop log.tag.GB.XmppConnection DEBUG

Building for a Locale

ant -Dgibberbot.locale=fa release

Comments
  • Improve memory behavior

    Improve memory behavior

    Moves ImpsProvider (database adapter) to remote process, so that UI process can be reaped by the OS.

    ImpsProvider no longer connects directly to CacheWord (that part of the integration didn't seem to do anything).

    opened by devrandom 30
  • Export/Import of the OTR-Key?

    Export/Import of the OTR-Key?

    I' testing Gibberbot on my Android and Pidgin on my Desktop. Both Clients create there own Key. But what happend when i otr-chat with a Friend, one day from gibberbot and the other day from pidgin. Does he gets errors? or always have to readd my keys? How should that work?

    I though i need an import function on gibberbot to import my otr-key or a export at gibberbot and an import on the other client.

    FEATURE 
    opened by pred2k 24
  • disconnects occasionally without reconnect

    disconnects occasionally without reconnect

    ChatSecure connects when I start the app, but disconnects some time later without reconnecting. This problem is new since the update from 14.0.2 to 14.0.3. It seems to occur more frequently when other apps are working in the foreground. Signing out and signing in again works, but I would be disconnected after a while again.

    Could it be that the login thread, introduced in commit a371353, becomes a victim of the garbage collector after a while in the background? (Didn't find anything suspicious elsewhere in the patches.)

    opened by ZjMNZHgG5jMXw 20
  • Text only. Pics and files do not send between test devices.

    Text only. Pics and files do not send between test devices.

    Was previously running Orbot/Tor and Gibberbot without issue (Motorola Razor Maxx and a Samsung Galaxy S3).

    Now with the recent update switching from Gibberbot to Chatsecure we can text between both devices securely but we cannot send files or pictures to one another.

    Did I read this another post correctly in that this is NOT possible?

    opened by cwhiatt 15
  • unable to compile with current asmack master branch

    unable to compile with current asmack master branch

    I have built asmack-jse.jar from latest guardianproject asmack master branch (06a2c8363e), but the jar does not work with current Gibberbot. Here is the compile error:

    The method setCustomSSLContext(SSLContext) is undefined for the type ConnectionConfiguration    XmppConnection.java /Gibberbot/src/info/guardianproject/otr/app/im/plugin/xmpp  line 680    Java Problem
    

    it seems that the function "ConnectionConfiguration.setCustomSSLContext" is missing.

    opened by luzi82 15
  • 14.2.0 does multiple resending of messages even if they arrived

    14.2.0 does multiple resending of messages even if they arrived

    For me and my friends it's really annoying that 14.2.0 is re- and resending the last message to the receiver even if it already arrived. AFAIS happens this always after reconnecting. So if if you have an unstable connection this is really a no go and we had to downgrade to 14.1.1-rc5 until this problem is solved.

    But thank you for the good work on ChatSecure keep going on. :-)

    BUG 
    opened by DocSniper 13
  • cacheword: simplify logic and handle unencrypted properly

    cacheword: simplify logic and handle unencrypted properly

    • Remove CacheWord handling from AccountListActivity. CacheWord handling is now centralized in WelcomeActivity
    • Remove CacheWord handling from ImApp
    • ImpsProvider is now responsible for initializing OtrKeyStore password
    • WelcomeActivity goes to AccountListActivity if it can open the DB without user intervention
    opened by devrandom 13
  • messages are sometimes lost

    messages are sometimes lost

    I use Gibberbot to chat using Google-talk account. Other side is mostly Pidgin on Debian GNU/Linux. Sometimes messages that are sent from Pidgin to Gibberbot are simply lost. There is no error message or something on any side of communication. That is really bad since most of the time I do not notice that message is lost. I never have such a problem with Pidgin<->Pidgin. I believe this is very serious bug.

    Please ask questions if you need more info. I will temporary switch to Xabber now.

    opened by sena73 13
  • 13.0.7 v13 beta 7 users can't see each other

    13.0.7 v13 beta 7 users can't see each other

    Hi, Just tried the latest nightly build from here https://guardianproject.info/builds/ChatSecure/ on an S3 (jellybean) and a Nexus 7 (kitkat).

    Previously I had had a good experience with 13.0.3, but the latest nightly seems to have gotten buggier (at least for me).

    Here's the problem. User 1 invites user 2, but they still appear offline to each other, and encryption never starts (keeps spinning forever but no crypto happens).

    I run my own basic prosody server, and I can see in the mysql database that they are indeed subscribed to each other (both), so the add contact function seems to have worked. Here's what I see in the roster in the DB: {"subscription":"both","name":"1","groups":{"Buddies":true}} {"name":"2","groups":{"Buddies":true},"subscription":"both"}

    I also see the following entry for both users, which maybe the source of the problem: I have as value {}, with the indication "pending" in user 1 and user 2's roster.

    Should chatsecure be creating the empty pending or is this a bug?

    Thanks, Peter

    opened by petervnv 11
  • Feature menu tuning

    Feature menu tuning

    this began as actionbar menu tuning, and expanded to some more general UI improvements from initial user feedback

    • removed colorful background images (will allow user to define/set)
    • added back in list / no avatar mode for contacts with grid/list switch pref
    • removed menu below chat, and moved all functions to actionbar (in progress, nearly done)

    a little more to do, then want to test, and push to Beta group

    opened by n8fr8 11
  • Gibberbot attempts plain text auth even when disabled

    Gibberbot attempts plain text auth even when disabled

    Thanks for gibberbot.

    An issue with the latest 9/16 build:

    1. start gibberbot for the first time
    2. fill in username and password, leaving advanced settings untouched
    3. click "sign in"
    4. I get a generic connection error. the logs say "Server does not support compatible authentication mechanism." I get this error whenever "allow plain text auth" is enabled. This seems like a bug in its own right, because enabling plain text auth should not force plain text auth, but regardless, the point here is that "allow plain text auth" was NOT checked when i hit sign in, but now it is attempting plain text auth.
    5. hit back button and edit advanced settings.
    6. "allow plain text auth" has now been mysteriously checked. uncheck it.
    7. click "sign in"
    8. success

    My conclusion: when setting up a new account, the visible defaults are ignore and "allow plain text auth" is enabled. For a chat app with a focus on security, I think this is not advisable (!).

    The other advanced setting that is mysteriously altered is the "connect server" option. it goes from blank to the domain of the JID. In my case, I can still connect even though the incorrect "connect server" value is set, because the SRV record is still used, but ideally "connect server" would stay blank (and also override the SRV record if present).

    Keep up the good work.

    opened by elijh 11
  • ssl handshak problem

    ssl handshak problem

    I use chatsecure with last version of server openfire in first login no problem but later "after save the certificate " not login and show the exception : W/System.err: javax.net.ssl.SSLProtocolException: Read error: ssl=0xaf749200: Failure in SSL library, usually a protocol error W/System.err: at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)

    Android : 5.01 any help ?

    opened by Mh-Asmi 1
  • Chat secure 14.3

    Chat secure 14.3

    Please update chat secure 14.3 clean version on f droid and your repository 14.3 version only aviable for google play i dont trust play market or 14.3 its unofficial version ?

    opened by Kratumn 0
  • We can recycle the bitmap object timely

    We can recycle the bitmap object timely

    Dear developers,

    In the position: https://github.com/guardianproject/ChatSecureAndroid/blob/master/src/info/guardianproject/otr/app/im/plugin/xmpp/XmppConnection.java#L389 The bitmap object of "b" can be recycled timely because the app will never use it after writing a compressed version of it to the specified output stream.

    I found that you have done the same thing in the following code area: https://github.com/guardianproject/ChatSecureAndroid/blob/master/src/info/guardianproject/otr/app/im/app/ChatFileStore.java#L290

    opened by struggggle 0
  • Google blocks sign-in attempt from ChatSecure

    Google blocks sign-in attempt from ChatSecure

    I received the following email from Google when I tried to add my Google account in ChatSecure (the account addition in the app was stuck on 'logging in')

    Review blocked sign-in attempt

    Hi , Google just blocked someone from signing into your Google Account from an app that may put your account at risk. Less secure app * Don't recognize this activity? If you didn't recently receive an error while trying to access a Google service, like Gmail, from a non-Google application, someone may have your password.

    [SECURE YOUR ACCOUNT]

    Are you the one who tried signing in? Google will continue to block sign-in attempts from the app you're using because it has known security problems or is out of date. You can continue to use this app by [allowing access to less secure apps], but this may leave your account vulnerable.

    Best, The Google Accounts team *The location is approximate and determined by the IP address it was coming from. This email can't receive replies. For more information, visit the Google Accounts Help Center.

    I'm not sure why they call it a "less secure app.", or whether anything can be done to mitigate this. Just putting it here for the sake of information.

    Thank you for ChatSecure!

    PS: perhaps https://guardianproject.info/howto/chatsecurely/ should be updated to reflect this, among other things?

    opened by contrapunctus-1 0
Releases(14.3)
  • 14.3(Sep 27, 2016)

    Thanks for being a part of the ChatSecure Android community. We are not actively developing this app anymore, but will continue to fix any critical bugs. ChatSecure for iOS and iPhone WILL CONTINUE ACTIVE DEVELOPMENT!

    We are excited to share some great active apps that continue our mission of privacy and security...

    Zom is built by the ChatSecure team, and makes it quick & easy for users to connect without a phone number, central servers or requiring any personal data. Zom is also available for iPhones and iPads.

    Learn more at https://zom.im

    Conversations is the best modern open-source, standards-compliant mobile XMPP client. It is lightweight and supports the OMEMO advanced encryption protocol. Great for advanced users.

    Learn more at https://conversations.im

    Source code(tar.gz)
    Source code(zip)
    ChatSecure-v14.3.apk(11.15 MB)
    ChatSecure-v14.3.apk.asc(819 bytes)
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 29.8k Dec 22, 2021
A full fledge radio player plugin for android and ios

Flutter radio plugin handles a single streaming media preciously. This plugin wa

null 0 Dec 25, 2021
iOS(iPhone & iPad) and Android Radio/Podcast Streaming Apps built in Kotlin Multiplatform Mobile (KMM) with SwiftUI & Jetpack Compose

iOS(iPhone & iPad) and Android Radio/Podcast Streaming Apps built in Kotlin Multiplatform Mobile (KMM) with SwiftUI & Jetpack Compose

MwaiBanda 1 May 31, 2022
An easy to use Instagram Video Downloader library for android apps.

Instagram-Video-Downloader-Library An easy to use library for directly download videos from ig reels, igtv. Implementation Step 1. Add the JitPack rep

Abhay 16 Dec 7, 2022
SocyMusic is an open-source Android music player written in Java with the aim of creating an easy-to-use app for exchanging and listening to top-quality music. Help us create it!

SocyMusic SocyMusic is an open-source Android music player written entirely in Java. It's objectives are to provide top-quality music to everyone for

Benji 23 Dec 26, 2022
The androidx.media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android

AndroidX Media AndroidX Media is a collection of libraries for implementing media use cases on Android, including local playback (via ExoPlayer) and m

Android Jetpack 310 Dec 29, 2022
FPS Display Mod for Minecraft with an easy-to-use ingame configuration: /fps

FPS-Display The FPS Display Mod is made to be used with the Minecraft Forge Load

null 3 Nov 26, 2022
Sandbox project for practice: Media Streaming with Exoplayer (via Android Development tutorial)

Media streaming with ExoPlayer The code in this repository accompanies the Media streaming with ExoPlayer codelab. If you are looking to get started w

Jeannille Hiciano 1 Nov 29, 2021
⚡️First Semester's Final Project ⚡️

HalalSpotify HalalSpotify is an app to listen quran recites, islamic study, etc . . . . Description Featuring all of the famous qari around the world

tznxx 6 Nov 9, 2022
TravelAppDesign - Add local project to git repo

CustomView, MotionMayout e Animation Projeto Android em linguagem Kotlin, basead

Bernardo Michel Slailati 1 Feb 18, 2022
:sound: [Android Library] Easily generate pure audio tone of any frequency in android

Android library to easily generate audio tone in android. Generating pure tone of an specific frequency was never that easy. ZenTone does all the heav

Nishant Srivastava 102 Dec 19, 2022
mpv-android is a video player for Android based on libmpv.

mpv-android is a video player for Android based on libmpv.

null 1.1k Jan 6, 2023
FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app.

FFMPEG video operations FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app. Getting Started This project is provide in

Simform Solutions 277 Jan 2, 2023
Echo is a lightweight and minimal music player for Android, built with Android Studio and written in Kotlin

Echo - Echo, A light-weight, minimal music player for Android, with shuffle, favorites and audio visualization

Divins Mathew 0 Feb 7, 2022
Youtube Android Clone 🚀an Android Youtube Clone made out of XML and Kotlin

Youtube Android Clone ?? This app consumes The Youtube Api to fetch and display a list of popular videos, The app uses MVVM design pattern to allow se

Breens Robert 38 Dec 13, 2022
An extensible media player for Android

ExoPlayer ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and vi

Google 20.2k Jan 1, 2023
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Marcin Moskała 89 Nov 18, 2022