An open API service indexing awesome lists of open source software.

https://github.com/simlar/simlar-android

Simlar for android
https://github.com/simlar/simlar-android

android cryptography liblinphone opus sip voip zrtp

Last synced: 3 months ago
JSON representation

Simlar for android

Awesome Lists containing this project

README

          

simlar-android
==============

[![Build Status](https://github.com/simlar/simlar-android/actions/workflows/simlar-android-ci.yml/badge.svg?branch=master)](https://github.com/simlar/simlar-android/actions)

[Simlar](https://www.simlar.org) is a cross platform VoIP App aiming to make encrypted calls easy.



Get it on Google Play


Get it on F-Droid


Screenshot address book
Screenshot call

### Build dependencies ###
* Java Development Kit
* Android SDK
* Android Studio
* Android Studio is not really needed but is the recommended way to hack on simlar-android.

### Compile (Console) ###
Linux/MacOS
```
export ANDROID_HOME=
./gradlew assembleDebug
```

Build without Google Services
```
./gradlew assembleAlwaysOnlineRelease -Pno-google-services
```

Compile and run static code analysis.
```
./gradlew build connectedCheck
```

### Android Studio ###
Initially importing simlar-android in Android Studio, removes the inspection settings. That's why we recommend to run the following command once after importing:
```
git checkout .idea/
```

### linphone-sdk ###
Simlar heavily depends on the [linphone-sdk](http://www.linphone.org/) formally known as liblinphone.
Since version 4.2 Belledonne publishes it in a maven repository.
However if you would like to compile it yourself, you should start with compiling the [linphone-sdk](https://gitlab.linphone.org/BC/public/linphone-sdk) for android.
Once it compiles on your system, here is a script for checking out, compile and integrate the linphone-sdk into simlar-android.
```
./scripts/bootstrap-liblinphone.sh origin/master
```
The linphone-sdk uses cmake. You may set its environment variables e.g. to compile with multiple threads.
```
CMAKE_BUILD_PARALLEL_LEVEL=32 ./scripts/bootstrap-liblinphone.sh
```

### Build with docker
A docker file provides a defined build environment.
You may create a simlar-android build container like this.
```
docker build --no-cache -t simlar-android-builder docker-files/
```
You may use the container to build simlar-android.
```
docker run --rm -v $(pwd):/pwd simlar-android-builder:latest bash -c "cd /pwd && ./gradlew --no-daemon --warning-mode all clean build connectedCheck"
```
However, caching gradle downloads speeds up the build, and some security options do not hurt.

```
docker run --cap-drop all --security-opt=no-new-privileges --rm -v $(pwd)-docker-gradle-cache:/home/builder/.gradle -v $(pwd):/pwd -e SIMLAR_NVD_API_KEY simlar-android-builder:latest bash -c "cd /pwd && ./gradlew --no-daemon --warning-mode all clean build connectedCheck"
```
It is also possible to path the keystore file to the docker container.
```
docker run --cap-drop all --security-opt=no-new-privileges --rm -v $(pwd)-docker-gradle-cache:/home/builder/.gradle -v $(pwd):/pwd -v ${SIMLAR_ANDROID_KEYSTORE_FILE}:/android-release-key.keystore -e SIMLAR_ANDROID_KEYSTORE_FILE=/android-release-key.keystore -e SIMLAR_ANDROID_KEYSTORE_PASSWORD -e SIMLAR_NVD_API_KEY simlar-android-builder:latest bash -c "cd /pwd && ./gradlew --no-daemon clean assemblePushRelease"
```
The container can build liblinphone, too.
```
docker run --cap-drop all --security-opt=no-new-privileges --rm -v $(pwd)-docker-gradle-cache:/home/builder/.gradle -v $(pwd):/pwd -e CMAKE_BUILD_PARALLEL_LEVEL=16 simlar-android-builder:latest bash -c "cd /pwd && ./scripts/bootstrap-liblinphone.sh"
```
When using podman add ```--userns=keep-id``` to the ```run``` commands.

### Post quantum encryption
Simlar uses post quantum encryption since version 2.9 as liblinphone supports it since version 5.2.
However the liblinphone artifacts published in the maven repository do not support it.
So you have to build lt yourself.
The recommend way is the docker command above.

### License
Copyright (C) The Simlar Authors.

Licensed under the [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or any later version.