Talteen

Talteen is your all-in-one backup companion for Sailfish OS. Whether you are switching devices or just playing it safe, Talteen bundles your most important data into a single, secure archive. Easily back up your messages, call history, photos, media, and even your app settings. Everything is locked behind strong encryption, giving you total peace of mind that your personal data stays yours.

Available on OpenRepos.

The SailfishOS Community Team is on Liberapay:

Liberapay receiving

Liberapay receiving

Features

Main Screen Backup Restore Send Receive

  • Save your messages, call history, app data, app grid layout, and media.
  • Easily move your data to a new device by copying the backup file via an SD card or over Wi-FI.
  • Lock your archives with standard AES-256 encryption.
  • Built on standard Linux formats (tar, openssl) so you can extract backups on any PC.

Under the hood

Talteen acts as a frontend for:

  • Archiving: tar
  • Compression: xz
  • Encryption:
    • v2 (default): openssl EVP (AES-256-GCM + PBKDF2-HMAC-SHA256)
    • v1 (legacy restore only): openssl enc (AES-256-CBC + PBKDF2)
  • A custom QTcpServer/QTcpSocket implementation to facilitate device-to-device transfers over the local network.

Archive structure

The app creates a standard tar archive with extension .talteen holding two files:

  • payload.enc: encrypted, XZ-compressed payload stream containing the actual files and folders.
  • manifest.yaml: human-readable metadata used to determine the backup format and categories before decrypting.

v2 format (current default)

manifest.yaml includes:

  • version: "2.0.0"
  • encryption: "openssl-aes-256-gcm"
  • kdf: "pbkdf2-hmac-sha256"
  • kdf_iterations, salt_b64, iv_b64, tag_b64, aad

v2 integrity is provided by AES-GCM authentication (tag_b64), so no separate payload checksum is used.

v1 format (legacy)

Legacy backups use:

  • version: "1.0.0"
  • OpenSSL AES-256-CBC + PBKDF2
  • checksum field in manifest.yaml

Manual backup extraction

The backup files are saved to:

  • Internal storage: /home/defaultuser/.local/share/harbour-talteen
  • SD card: /run/media/sdcard/harbour-talteen

You can extract legacy v1 (AES-256-CBC) backups on any Linux terminal without using the app:

  1. Unpack the container:
    tar -xf backup_name.talteen
    
  2. Decrypt and unpack the payload:
    openssl enc -d -aes-256-cbc -pbkdf2 -in payload.enc | tar -xJv
    

Manual v2 backup extraction

For v2 backups (encryption: "openssl-aes-256-gcm"), use the helper script in this repo:

scripts/decrypt-v2.sh -i /path/to/backup.talteen -o /path/to/output

If -p is omitted, the script prompts for the password:

scripts/decrypt-v2.sh -i backup.talteen -o restored-data

You can optionally pass a password directly (less secure in shell history):

scripts/decrypt-v2.sh -i backup.talteen -o restored-data -p 'your-password'

The script validates v2 manifest fields (kdf_iterations, salt_b64, iv_b64, tag_b64, aad) and then decrypts with OpenSSL EVP AES-256-GCM before extracting the payload.

Prerequisites

The script compiles a small C++ helper on first run. Having the openssl CLI installed is not enough; you also need a C++ compiler and OpenSSL development headers:

  • g++ (or another compiler via the CXX environment variable)
  • OpenSSL dev headers and libcrypto

Install on common Linux distros:

# Debian / Ubuntu / Linux Mint
sudo apt install g++ libssl-dev

# Fedora / RHEL
sudo dnf install gcc-c++ openssl-devel

# openSUSE
sudo zypper install gcc-c++ libopenssl-devel

Support

If you like my work and want to buy me a beer, feel free to do it!

Translate

Request a new language or contribute to existing languages on the Transifex project page.

Credits

  • Thanks to flypigahoy for his ispiring blog post about copying settings and files over a new device.
  • Thanks to jgibbon for the icon and the cover graphics.
  • Apps backup by topias.
  • Thanks to all the testers for being brave and patient.

AI Disclosure

Talteen is based on a previous project of mine My Data Transfer, completely authored, designed and developed with no AI input.

Gemini Pro was used in Talteen to:

  • Reimplement the logic in C++.
  • Implement the Network transfer.