GithubHelp home page GithubHelp logo

geo25rey / deku-sms-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from deku-messaging/deku-sms-android

0.0 0.0 0.0 96.69 MB

Prototyping using Android devices as Gateways for routing messages online

License: GNU General Public License v3.0

Shell 0.05% Ruby 0.13% Python 16.84% Java 79.52% Kotlin 0.27% Makefile 2.13% Dockerfile 0.26% Roff 0.80%

deku-sms-android's Introduction

Deku SMS


Get it on F-Droid Get it on Google Play

Contents

About

Build

Reproducible builds

About

Deku SMS is an Android SMS app.

Deku SMS is being developed as a proof-of-concept for secure SMS messaging, SMS image transmission and SMS-Cloud communications.

The technical functionalities of the app are currently not user friendly, which would be updated with the help of PRs and issues. The reason for the lack of user friendliness is solely based on the app aiming to be as customizable as possible. Users should be able to configure the app to their custom cloud servers without being tied into using specific providers.

Features

End-to-End encryption

Ability to forward incoming messages to cloud server

Ability to use mobile phone as an SMS Gateway to send messages from the cloud

End to End Encryption

Deku SMS supports end to end encryption for users. For the feature to work, both users need to be using Deku SMS as their default SMS app.

The users are guided through a ECDH handshake, after which a secure key is generated and associated with the peers phone number. The outgoing messages are then encrypted with AES-256-CBC from the secure key and transmitted to the user. No forward secrecy is currently implemented.

The users cannot know when their peer has deleted their secured keys. This means messages will still be received by peer in encrypted form. Upcoming features would help inform peers when encryption has been disabled on one end.

All messages are currenly being stored in the default SMS inbox (including encrypted messages). Users switching between SMS apps would still maintain their inbox as it is. Upcoming features would remove encrypted messages to custom database if users intends.

Forward incoming messages to cloud

Forward incoming SMS messages to custom url. The messages remain in queue till the device has an active connection. The messages remain queue if server status codes is in range 5xx. The device also provides visibility into the messages being forwarded into the cloud.

The content being forwarded to your cloud look like:

Android phone as SMS Gateway

You can transmit data from your to your cloud to Android devices, using your Android phones as your SMS Gateway.

The app has direct built configurations for RabbitMQ allowing technical users to configure their own messaging queue directly from their own server.

The structure of the incoming RabbitMQ messages is a json like:

{"sid":"", "id":"", "to":"", "text":""}

sid: special id you can include in the message going to your messaging queue server

id: uniquely generated by messaging queue server - should not be used in determining the status of messages. Primarily used to inform messaging queue server to ack the message.

to: phone number of the receipient. Should be in E.164 Format.

text: the message to be sent to the receipient.

The app sends a callback to your SMS Gateways once the requested message status changes*.

{"type":"SMS_TYPE_STATUS", "status":"[status_changes]()", "sid":""}

* Status changes - sent, delivered, failed

Build

Getting the project into Android-studio would allow for an easy build.

Reproducible builds notes

Check a build against any previous commits. Requires docker

  • commit = hash of commit being compared
  • commit_url = url of the repo from git (should have been called repo_url)
  • release_url = url of the github release to build against (or any place where the apk can be downloaded)
  • jks = path to signing key file
  • jks_pass = password for jks
make check-commits \
commit= \
commit_url= \
release_url= \
jks= \
jks_pass=

deku-sms-android's People

Contributors

idadelveloper avatar sherlockwisdom avatar steph237 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.