Skip to content

High-level library for Android apps implementing Awala endpoints

License

Notifications You must be signed in to change notification settings

relaycorp/awala-endpoint-android

awaladroid: High-level library for Android apps implementing Awala endpoints

Please refer to the Android codelabs to learn how to use this library. The reference documentation is available on docs.relaycorp.tech.

Install

Get the latest version from JitPack. We'll release it to Maven Central eventually.

Due to a bug in Android, you'll also have to exclude Bouncy Castle from Jetifier transformations by adding the following to gradle.properties:

# Workaround for https://issuetracker.google.com/issues/159151549
android.jetifier.blacklist = bcprov-jdk15on-1.*.jar

If you use Android Lint, you may want to disable the warnings about BouncyCastle importing javax.naming (an InvalidPackage) by adding the following to your Lint configuration:

<?xml version="1.0" encoding="utf-8"?>
<lint>
    <!-- ... -->
    <issue id="InvalidPackage">
        <!-- Ignore errors about BC importing javax.naming because it doesn't use it on Android -->
        <ignore path="**/bcpkix-*.jar" />
    </issue>
</lint>

Security and privacy considerations

The items below summarize the security and privacy considerations specific to this app. For a more general overview of the security considerations in Awala, please refer to RS-019.

External communication

This library exclusively communicates with the private gateway installed on the device. It does not communicate with other apps or any Internet host.

Android permissions

This library needs the following Android permissions:

  • android.permission.INTERNET: To be able to communicate with the private gateway on 127.0.0.1:13276. This library does not communicate with the Internet.
  • tech.relaycorp.gateway.SYNC: To be able to bind to the private gateway.

They will be automatically added on your behalf, so you don't need to include them in your AndroidManifest.xml.

Development

The project requires Android Studio 4+.

Contributing

We love contributions! If you haven't contributed to a Relaycorp project before, please take a minute to read our guidelines first.