Top Related Projects
📱 Nextcloud Android app
Proton Mail Android app
A private messenger for Android.
KeePassXC is a cross-platform community-driven port of the Windows application “KeePass Password Safe”.
Wrapper of syncthing for Android.
Quick Overview
Cryptomator for Android is an open-source mobile application that provides client-side encryption for cloud storage services. It allows users to encrypt their files before uploading them to cloud storage providers, ensuring data privacy and security on potentially untrusted cloud servers.
Pros
- Strong, client-side encryption for cloud storage files
- Support for multiple cloud storage providers
- Open-source, allowing for community audits and contributions
- Regular updates and active development
Cons
- May have a learning curve for non-technical users
- Performance overhead due to encryption/decryption processes
- Limited integration with some cloud storage providers
- Requires manual setup and configuration
Code Examples
As Cryptomator for Android is a mobile application and not a code library, there are no code examples to provide.
Getting Started
Since Cryptomator for Android is a mobile application, there's no code-based quick start. However, here are the basic steps to get started:
- Download the Cryptomator app from the Google Play Store
- Open the app and create a new vault
- Choose a strong password for your vault
- Select your cloud storage provider and authenticate
- Start adding files to your encrypted vault
For more detailed instructions, visit the official Cryptomator documentation at https://docs.cryptomator.org/en/latest/android/
Competitor Comparisons
📱 Nextcloud Android app
Pros of Nextcloud
- More comprehensive file management and synchronization features
- Broader ecosystem with support for various plugins and integrations
- Active development with frequent updates and improvements
Cons of Nextcloud
- Larger app size and potentially higher resource usage
- More complex setup and configuration process
- May include features that some users find unnecessary
Code Comparison
Cryptomator (Java):
public class CryptomatorCryptor implements Cryptor {
private final FileContentCryptor fileContentCryptor;
private final FileNameCryptor fileNameCryptor;
public CryptomatorCryptor(FileContentCryptor fileContentCryptor, FileNameCryptor fileNameCryptor) {
this.fileContentCryptor = fileContentCryptor;
this.fileNameCryptor = fileNameCryptor;
}
}
Nextcloud (Kotlin):
class NextcloudClient(
val context: Context,
val account: Account,
val files: FileDataStorageManager,
val user: User,
val serverBaseUri: Uri
) {
private val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
}
Both repositories use different programming languages and have distinct architectures. Cryptomator focuses on encryption, while Nextcloud provides a more comprehensive client for file synchronization and management.
Proton Mail Android app
Pros of proton-mail-android
- Focused on secure email communication, providing end-to-end encryption
- Larger community and more frequent updates
- Comprehensive features specific to email management
Cons of proton-mail-android
- Limited to email functionality, not a general-purpose encryption tool
- Requires a ProtonMail account to use the app
Code Comparison
proton-mail-android:
class MailboxViewModel @Inject constructor(
private val getMessagesUseCase: GetMessagesUseCase,
private val deleteMessagesUseCase: DeleteMessagesUseCase
) : ViewModel() {
// Email-specific operations
}
cryptomator:
public class Cryptor {
private final CryptorProvider cryptorProvider;
public void encrypt(Path cleartextPath, Path ciphertextPath) throws IOException {
// General file encryption logic
}
}
The code snippets highlight the different focus areas of the two projects. proton-mail-android deals with email-specific operations, while cryptomator provides general file encryption functionality.
proton-mail-android is tailored for secure email communication within the ProtonMail ecosystem, offering a comprehensive set of features for managing encrypted emails. On the other hand, cryptomator is a versatile tool for encrypting files and folders across various platforms, not limited to a specific service or file type.
A private messenger for Android.
Pros of Signal-Android
- More comprehensive messaging features, including voice/video calls and group chats
- Stronger focus on privacy and end-to-end encryption for communication
- Larger and more active community, with frequent updates and contributions
Cons of Signal-Android
- More complex codebase due to broader feature set
- Higher resource usage and potential battery drain from background processes
- Less focused on file encryption compared to Cryptomator
Code Comparison
Signal-Android (Kotlin):
private fun initializeBackgroundRecipientRefresh() {
SignalExecutors.BOUNDED.execute {
RecipientId.getAll(context).forEach { id ->
ApplicationDependencies.getRecipientCache().request(id)
}
}
}
Cryptomator (Java):
private void initializeCryptor() {
try {
cryptor = CryptorProvider.createNew(masterKey, cryptoSettings);
} catch (IllegalArgumentException | IllegalStateException e) {
throw new CryptoInitializationFailedException(e);
}
}
Both projects use different languages and have distinct purposes. Signal-Android focuses on secure messaging, while Cryptomator emphasizes file encryption. The code snippets reflect these differences, with Signal-Android handling recipient data and Cryptomator initializing encryption components.
KeePassXC is a cross-platform community-driven port of the Windows application “KeePass Password Safe”.
Pros of KeePassXC
- Cross-platform support (Windows, macOS, Linux) vs. Android-only for Cryptomator
- More comprehensive password management features, including password generation and strength analysis
- Open-source with a larger community and more frequent updates
Cons of KeePassXC
- Lacks built-in cloud synchronization, requiring manual syncing or third-party solutions
- Steeper learning curve for new users compared to Cryptomator's simpler interface
- No native mobile app, relying on third-party apps for mobile access
Code Comparison
KeePassXC (C++):
void Database::setKey(const CompositeKey& key)
{
m_key = key;
m_kdf->randomize();
m_masterSeed = QByteArray(32, '\0');
Tools::randomize(m_masterSeed);
}
Cryptomator (Java):
public void unlock(CharSequence passphrase) throws InvalidPassphraseException, CryptoException {
assertUnlocked();
byte[] salt = cryptor.getSalt();
KeyMaterial keyMaterial = deriveMasterKey(passphrase, salt);
cryptor.swapKey(keyMaterial);
}
Both projects focus on secure data management, but KeePassXC is primarily a password manager, while Cryptomator is a file encryption tool. KeePassXC offers more password-specific features, while Cryptomator provides seamless file encryption across devices.
Wrapper of syncthing for Android.
Pros of Syncthing-Android
- Decentralized file synchronization without relying on a central server
- Open-source with a larger community and more frequent updates
- Supports syncing with multiple devices and platforms
Cons of Syncthing-Android
- More complex setup and configuration compared to Cryptomator
- Requires running the Syncthing service continuously for real-time syncing
- May consume more battery and resources due to constant background operation
Code Comparison
Syncthing-Android (Kotlin):
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
NotificationHandler.showStoragePermissionNotification(this)
return START_STICKY
}
Cryptomator (Java):
@Override
public void onCreate() {
super.onCreate();
CryptomatorApp.getComponent().inject(this);
startForeground(NOTIFICATION_ID, createNotification());
}
Both projects use different languages (Kotlin vs Java) and have distinct approaches to handling notifications and service lifecycle. Syncthing-Android focuses on continuous syncing, while Cryptomator emphasizes encryption and vault management.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME

Cryptomator offers multi-platform transparent client-side encryption of your files in the cloud.
Cryptomator for Android is currently available in the following distribution channels:
- Using Google Play
- Using Cryptomator's Website
- Using Cryptomator's F-Droid Repository
- Using F-Droid's Main Repository
- Using Accrescent
- Building from source using Gradle (instructions below)
Building
Dependencies
- Git
- JDK 17
- Gradle
Run Git and Gradle
./gradlew assembleApkstoreDebug
Before connecting to Dropbox, OneDrive or pCloud you have to provide valid API keys using environment variables: For build type
- release:
DROPBOX_API_KEY,ONEDRIVE_API_KEYandONEDRIVE_API_REDIRCT_URIorPCLOUD_CLIENT_ID - debug:
DROPBOX_API_KEY_DEBUG,ONEDRIVE_API_KEY_DEBUGandONEDRIVE_API_REDIRCT_URI_DEBUGorPCLOUD_CLIENT_ID_DEBUG
Before connecting to Google Drive you have to create a new project in Google Cloud Platform with Google Drive API, credentials including Google Drive scopes (read, write, delete,..) and the fingerprint of the key you use to build the app.
Reproducible Build Cryptomator Lite
Use the Docker image to verify the build of the 'lite' flavor:
- Clone this repository
- Checkout the tag you want to build, e.g. 1.8.0
- Build the image using
docker build -t cryptomator-android .in thebuildsystem/directory - Build Cryptomator using
docker run --rm -u $(id -u):$(id -g) -v $(pwd):/project -w /project cryptomator-android ./gradlew clean assembleLiteReleasein the root of this folder - Compare the build APK with the release version, using e.g.
apksigcopier compare --unsigned apk1 apk2
Verify downloaded APK
The published APKs are signed using a certificate with the following SHA-256 fingerprint f7c3ec3b0d588d3cb52983e9eb1a7421c93d4339a286398e71d7b651e8d8ecdd
You can verify the fingerprint of the signing key used e.g. with apksigner verify --print-certs Cryptomator.apk, which should report
Signer #1 certificate DN: O=Skymatic, L=Bonn, ST=North Rhine-Westphalia, C=DE
Signer #1 certificate SHA-256 digest: f7c3ec3b0d588d3cb52983e9eb1a7421c93d4339a286398e71d7b651e8d8ecdd
Signer #1 certificate SHA-1 digest: fcc234014be39e980ebca5c477922f2312e80cdd
Signer #1 certificate MD5 digest: a34b0b5af30529bf5b096d0e00acefe2
Contributing to Cryptomator for Android
Please read our contribution guide, if you would like to report a bug, ask a question, translate the app or help us with coding.
Please make sure before creating a PR, to apply the code style by executing reformat code with optimize imports and rearrange code enabled. The best way to do this is to create a macro for it in android studio and set it to the save shortcut.
Code of Conduct
Help us keep Cryptomator open and inclusive. Please read and follow our Code of Conduct.
License
This project is dual-licensed under the GPLv3 for FOSS projects as well as a commercial license for independent software vendors and resellers. If you want to modify this application under different conditions, feel free to contact our support team.
Top Related Projects
📱 Nextcloud Android app
Proton Mail Android app
A private messenger for Android.
KeePassXC is a cross-platform community-driven port of the Windows application “KeePass Password Safe”.
Wrapper of syncthing for Android.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot