Convert Figma logo to code with AI

cryptomator logoandroid

Cryptomator for Android

1,067
177
1,067
150

Top Related Projects

4,958

📱 Nextcloud Android app

Proton Mail Android app

A private messenger for Android.

24,726

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:

  1. Download the Cryptomator app from the Google Play Store
  2. Open the app and create a new vault
  3. Choose a strong password for your vault
  4. Select your cloud storage provider and authenticate
  5. 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

4,958

📱 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.

24,726

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

cryptomator-android

Mastodon Community Documentation Crowdin

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:

  1. Using Google Play
  2. Using Cryptomator's Website
  3. Using Cryptomator's F-Droid Repository
  4. Using F-Droid's Main Repository
  5. Using Accrescent
  6. 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_KEY and ONEDRIVE_API_REDIRCT_URI or PCLOUD_CLIENT_ID
  • debug: DROPBOX_API_KEY_DEBUG, ONEDRIVE_API_KEY_DEBUG and ONEDRIVE_API_REDIRCT_URI_DEBUG or PCLOUD_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:

  1. Clone this repository
  2. Checkout the tag you want to build, e.g. 1.8.0
  3. Build the image using docker build -t cryptomator-android . in the buildsystem/ directory
  4. Build Cryptomator using docker run --rm -u $(id -u):$(id -g) -v $(pwd):/project -w /project cryptomator-android ./gradlew clean assembleLiteRelease in the root of this folder
  5. 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.