StoneAge Messenger - Building Custom APK

Building custom APK allows embedding Private Storage Profile and (privately) distributing the APK where users don’t need to perform the initial step of configuring account storage.

Building from sources requires Android SDK and the pre-built core library (see Getting Started). Before building, create signing.properties file with your keystore info in the root of the repo.

$ git clone https://gitlab.com/cweb-repos/cweb-conversations.git
$ cd cweb-conversations
$ vi signing.properties
$ ./gradlew assembleConversationsFreeSystemRelease  # or assembleConversationsFreeSystemDebug for debug build

The signing.properties file is formatted as follows (release and debug variants):

keystore=...
keystore.password=...
key.alias=...
key.password=...
debug.keystore=...
debug.keystore.password=...
debug.key.alias=...
debug.key.password=...

Customizing the APK and embedding storage profile

The generic APK requires entering private storage profile as the first step after a fresh install. It is possible to embed private storage profile into the APK, and by that avoid this initial step. Custom APKs are convenient for small groups such as teams or families, where all peers share the same online storage (recall that identities can share storage and do not interfere). Be aware that such APK contains credentials giving full access to the storage, so distribute accordingly.

To build custom APK, edit the custom.properties file - uncomment the properties you want to customize and set their values

# Android app Id
# application_id=my.messenger

# Android app name
# app_name=MyMessenger

# Storage profile that will be embedded in the app. Cannot be changed via UI.
# For format and how to set up S3 bucket see https://cweb.gitlab.io/setup-bucket.html
# private_storage_profile_base=s3!http://11.111.111.111:9000!us-east-1!my-bucket!my-messenger/!READ_ACCESS_KEY!READ_SECRET_KEY!WRITE_ACCESS_KEY!WRITE_SECRET_KEY