Skip to content

Backpack v2.0.4 — Unified All-in-One Cloud & Local Backup Suite with Media Attachments

Latest

Choose a tag to compare

@vedraj360 vedraj360 released this 25 Aug 21:48

🎒 Backpack v2.0.4 — Unified Backup Suite

We are thrilled to announce Backpack v2.0.4! This major release transforms Backpack from a standalone Google Drive database backup utility into a complete, all-in-one Android backup and restore framework for both Cloud and Local storage, featuring full media attachment handling and deterministic cross-device remapping.


🌟 What's New in v2.0.4

1. 📱 Local Device Storage Support (SAF)

  • Seamlessly export and import encrypted backup archives to/from device storage or SD card via Android's Storage Access Framework (SAF).
  • Full coroutine and Flow-based lifecycle with detailed progress reporting (LocalBackupResult).

2. 🖼️ Full Media Attachments Archiving

  • Automatically bundles images, audio recordings, videos, PDFs, and custom attachments together with your Room database into a single, compressed archive.
  • Type-safe AttachmentType enums (IMAGE, AUDIO, VIDEO, PDF, DOCUMENT, GENERIC).

3. 🔄 Deterministic Manifest-Driven Path Remapping

  • Replaced heuristic string detection with Manifest-Driven Attachment Remapping.
  • Extracted attachment references in SQLite tables (plain text, JSON arrays, JSON objects) are safely updated to the new device’s local filesystem directory with zero false positives.

4. ⚠️ Smart Conflict Resolution

  • Added built-in detection for duplicate attachments during restore (ConflictDetected).
  • Supports user-driven conflict policies: OVERWRITE, SKIP, or ASK_USER.

5. 🛡️ 100% Backward Compatibility & Safety

  • V1 Legacy DB Fallback: Restores older uncompressed .db backups from Google Drive seamlessly without errors.
  • Incompatible Schema Protection: Verifies SQLite PRAGMA user_version to prevent downgrading or corrupting databases from newer app versions.
  • Atomic DB Swaps & Rollback: Safe WAL checkpointing and .bak file rollback protection.
  • Zip Slip Defense: Validates all archive entries against directory traversal attacks.

6. 📄 Licensing

  • Updated license to MIT License with Attribution Required.

📦 Installation (JitPack)

Add JitPack to your settings.gradle.kts:

dependencyResolutionManagement {
    repositories {
        maven { url = uri("https://jitpack.io") }
    }
}