SwiftBackupPrem Logo

SwiftBackupPrem

An advanced Xposed / LSPosed / LSPatch module for Swift Backup that unlocks Premium features, enables cloud backups for local accounts, and supports isolated personal Firebase backends.

CI Status Release Version Telegram Support Group License Android API Support LSPosed / Xposed / LSPatch Jetpack Compose Material 3


Table of Contents


Features

Core Features

  • Unlocks Premium Features: Unlocks all Swift Backup Premium features (batch operations, scheduling, cloud backups, app data backup/restore, custom folder backups) without requiring Google Play Store licensing checks.
  • Privacy & Telemetry Suppression: Blocks Firebase Analytics, Crashlytics, Sessions, Installations, and Google DataTransport calls to keep your backup operations private.
  • Root & Rootless Environments: Works in rooted environments (Magisk, KernelSU, APatch with LSPosed or Vector) and non-rooted environments via JingMatrix/LSPatch.

Cloud & Migration Capabilities

  • Local Account Cloud Features (Zero-Firebase Mode): Enables cloud backup creation, cloud file uploads, and cloud backup restores for offline/local accounts without requiring a Google account or Firebase project. Intercepts Realtime Database calls to persist catalog metadata locally and to cloud providers directly, with optional Custom Encryption UID for backups.
  • Universal Cloud Discovery & Snapshot Injection: Multi-cloud scanner (Google Drive, Microsoft OneDrive, Dropbox, Box, pCloud, Amazon S3, WebDAV / Nextcloud / ownCloud) that discovers cloud backups without prior database records, injecting synthetic Firebase DataSnapshot objects directly into Swift Backup's native restore screens.
  • Fast-Path Remote Discovery & Cloud Cache: Caches catalog metadata locally for instant offline navigation across restore screens, and synchronizes canonical cache files to cloud remotes for instant discovery on new devices.
  • Remote APK Manifest Parsing via HTTP Range Requests: Uses ApkRangeManifestParser for cloud discovered backups to fetch only the remote APK ZIP Central Directory and parse AndroidManifest.xml via HTTP byte ranges in seconds, displaying exact app labels, package names, and version codes without downloading gigabytes of data.
  • Google Drive Full OAuth Scope Expansion: Upgrades runtime OAuth scopes from restricted drive.file to full drive access so Swift Backup can query and restore backups uploaded from other devices or Swift Backup accounts on different Firebase projects.
  • Local Backup Migrator & Re-encryptor: On-device cryptographic engine to decrypt archives, repair missing metadata, switch encryption keys (Shared Anonymous Key vs Custom Firebase UID), or export unencrypted portable archives (.apk, .tar.gz, .json).

Companion App & Usability

  • Modern Material 3 UI: Clean user interface built with Jetpack Compose, Material 3 guidelines, dynamic color adaptation, and edge-to-edge support.
  • Android TV / Leanback Support: Features a custom Leanback banner, native D-pad focus traversal, and big-screen friendly layouts for Android TV devices.
  • In-App Settings Integration: When running in LSPatch Integrated Mode, module settings inject natively into Swift Backup's settings menu (Settings → SwiftBackupPrem).
  • Guided Setup & 1-Tap Helpers: In-app Setup Wizard with clipboard helpers (Package Name, SHA-1 signing fingerprint) and one-tap import for google-services.json files.
  • Configuration Export & Import: Export your active configuration to sbp_config.json and restore it instantly on fresh ROM installs or secondary devices.
  • Quick Process Controls: One-tap Root Force Stop and Launch shortcuts directly within the app.

How it Works

  • Dynamic DexKit Bytecode Scanning: Utilizes DexKit to dynamically locate obfuscated classes, methods, and fields at runtime across versions, ensuring robust compatibility with newer app releases without requiring fragile hardcoded ProGuard symbols.
  • Native JNI Protection: Leverages a companion C native library (libnativelib.so) to intercept JNI_OnLoad calls, ensuring 16 KB kernel page-size alignment for Android 15+ devices.

Compatibility & Prerequisites

Requirement Details
Root Solution Magisk, KernelSU, or APatch
Rootless Solution LSPatch (Recommended: JingMatrix fork; supports both Manager Mode and Integrated Mode)
Xposed / Hook Framework Modern LibXposed (API 101 / 102+) compatible frameworks:
• LSPosed (v2.0.0+)
• Vector
• LSPosed variants (LSPosed-Irena, etc.)
• LSPatch (rootless loader; JingMatrix recommended)
Legacy Xposed Support Available on the legacy branch for older Xposed frameworks (API 82–93 / EdXposed)
Android Version Android 8.1 (API 27) up to Android 17 (API 37+)
Form Factors Phones, Tablets, Foldables, and Android TV (Leanback)
Target Application Swift Backup (org.swiftapps.swiftbackup)
Supported App Versions v4.0.0 (525) through v5.0.8 (603), v5.1.0 (620), and newer releases

Installation & Activation

Method 1: Obtainium (Recommended)

Automatically download and receive updates by adding SwiftBackupPrem to Obtainium:

Get it on Obtainium

Or add the repository URL manually in Obtainium:

https://github.com/s1ddhants1/SwiftBackupPrem

Method 2: Manual Download

  1. Download the latest APK from the Releases page.
  2. Install the APK on your device.

Rooted Activation (LSPosed / LibXposed)

  1. Open LSPosed Manager (or your active LibXposed framework manager).
  2. Navigate to the Modules tab and tap SwiftBackupPrem.
  3. Toggle Enable module.
  4. Ensure the scope includes Swift Backup (org.swiftapps.swiftbackup).
  5. Force stop Swift Backup or reboot your device.
  6. Open SwiftBackupPrem to configure your preferred cloud mode (see Choosing Your Cloud Workflow).

Rootless Setup (LSPatch)

SwiftBackupPrem fully supports rootless installation via LSPatch:

  • Manager Mode:
    1. Patch Swift Backup with LSPatch in Manager Mode.
    2. Install SwiftBackupPrem APK as a separate companion application.
    3. Enable SwiftBackupPrem in LSPatch Manager under Swift Backup's module list.
  • Integrated Mode (Standalone APK):
    1. Patch Swift Backup with LSPatch in Integrated Mode, selecting the SwiftBackupPrem APK as an embedded module.
    2. Install the patched Swift Backup APK.
    3. Module settings will appear natively inside Swift Backup under Settings → SwiftBackupPrem! (No manager app required).

Android TV / Leanback Devices

SwiftBackupPrem includes native Android TV metadata:

  • Sideload the APK onto your Android TV or Google TV box via ADB or a file manager.
  • The app appears directly on your Leanback home screen launcher with a dedicated banner.
  • All interface controls, tabs, and buttons are navigable via the standard D-pad remote control.

Choosing Your Cloud Workflow

SwiftBackupPrem provides two ways to manage cloud backups. Pick the workflow that fits your needs:

  • Workflow A: Local Account Cloud Features
    Use Swift Backup with a Local Account (no Google Sign-In). Enables full cloud backup creation, file uploads, and restores across any supported provider (WebDAV, Nextcloud, S3, OneDrive, Google Drive, etc.) with zero Firebase or Google Cloud setup.

  • Workflow B: Custom Firebase Backend
    Connect your own personal Firebase project to sign in with your Google Account. Ideal if you want backups linked to your Google identity and want metadata persisted to your private Realtime Database.


Local Account Cloud Features Guide

Swift Backup normally restricts cloud storage and cloud backups to users signed in with a Google account via Firebase. Selecting "Local Account" disables cloud access.

Local Account Cloud Features completely removes this restriction, enabling full cloud backup creation, cloud file uploads, and cloud backup restores for offline and local accounts.

Quick Setup

  1. Open Swift Backup and choose Local Account (skip Google Sign-In).
  2. Open SwiftBackupPrem and toggle on Local Account Cloud Features.
  3. (Optional) Under Encryption Key, select Shared Anonymous Key (offline-restorable on any device) or Custom Key (enter any custom UID).
  4. Return to Swift Backup > Settings > Cloud Storage and configure your cloud provider (WebDAV, Nextcloud, OneDrive, Dropbox, Box, pCloud, S3, or Google Drive).
  5. Perform backups, view cloud sync, and restore directly!

How It Works Under the Hood

  • Identity Spoofing: LocalCloudUnlockHook transparently intercepts isAnonymous() calls during cloud operations, making Swift Backup recognize the local user as fully authorized.
  • Database Virtualization: CloudDatabaseManager virtualizes Firebase Realtime Database reads and writes in memory and keeps a canonical cache at /sdcard/SwiftBackup/cloud_discovered_cache.json.
  • Direct Cloud Uploads: Application metadata manifests are automatically written and synchronized directly to your connected cloud storage remotes.
  • Dialog Suppression: FirebaseConnectionWatcher intercepts backend connectivity loops and suppresses network error dialogs.

Encryption Keys & Custom UID

Swift Backup encrypts backup data using Facebook Conceal (AES-256-GCM) keyed to the account UID:

  • Shared Anonymous Key (d58b0944415a4889d7f11aa95fbeca50): Standard anonymous key that stores backups under account folder hash 8690a48a4fcc72f1. These backups can be restored offline on any device running Swift Backup.
  • Custom Key: Enter a custom string or UID. The hook sets your custom UID into memory so that encryption key derivation (deriveConcealKey) and directory hashes (computeAccountHash) match your private key.

Custom Firebase Setup Guide

Why Use Your Own Firebase Instance?

By default, Swift Backup authenticates against the app developer's Firebase project. If the developer blocks or bans your account on their Firebase instance, access to the account will be revoked, and you will not be able to restore your backups.

Connecting your own personal Firebase project gives you complete isolation, ensures data privacy, and prevents remote bans.


Step 1: Create a Firebase Project

  1. Go to the Firebase Console.
  2. Click Add project (or Create a project).
  3. Enter a project name (e.g., SwiftBackup-Personal) and continue.
  4. Google Analytics can be disabled (optional) to speed up creation.
  5. Click Create project and wait for provisioning to finish.
View Step 1 Screenshots

Enter project name
1. Enter project name

Confirm project name
2. Confirm project name

Google Analytics option
3. Configure Analytics and click Create project

Provisioning project
4. Provisioning Firebase project

Project ready
5. Project is ready


Step 2: Set Up Realtime Database & Security Rules

  1. In your Firebase project sidebar, go to Databases & Storage > Realtime Database.
  2. Click Create Database, select a region close to you (e.g., United States or Belgium), and choose Start in locked mode.
  3. Once created, switch to the Rules tab at the top.
  4. Replace the existing rules with the following user-isolated security rules:
{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}
  1. Click Publish to save the rules.
  2. Copy your Realtime Database URL from the Data tab (e.g., https://your-project-id-default-rtdb.firebaseio.com/).
View Step 2 Screenshots

Navigate to Realtime Database
1. Select Databases & Storage > Realtime Database

Select Database Location
2. Choose database region / location

Start in locked mode
3. Select Start in locked mode and Enable

Rules tab default
4. Switch to the Rules tab

Paste security rules
5. Replace rules and click Publish

Rules published
6. Security rules published successfully

Copy Database URL
7. Copy your Realtime Database URL from the Data tab


Step 3: Configure Authentication

  1. In the Firebase sidebar, navigate to Security > Authentication.
  2. Select the Sign-in method tab.
  3. Under Additional providers, select Google.
  4. Toggle Enable, enter a Public-facing name for project of your choice, choose a Project support email, and click Save.
View Step 3 Screenshots

Select Google Sign-in provider
1. Navigate to Authentication > Sign-in method and select Google

Configure Google Sign-in dialog
2. Google Sign-in provider configuration dialog

Enable Google provider
3. Toggle Enable, enter public-facing name and support email, then Save

Google Sign-in Enabled
4. Google provider enabled successfully


Step 4: Register Android App & OAuth Client

1. Register Android App in Firebase Console

  1. In Firebase Console, go to the Project Overview page from the sidebar.
  2. Under "Select a platform to get started", click the Android icon (Add app).
  3. Enter the package details:
    • Android package name: org.swiftapps.swiftbackup (or tap "Copy Package" in SwiftBackupPrem's Custom Firebase setup screen)
    • App Nickname: SwiftBackupPersonal (or any name you like)
  4. Click Register app.
  5. Click Download google-services.json to save the configuration file.
  6. Click Next through the remaining setup steps, then click Continue to console.
  7. On the Project Overview page, click the newly registered app card and select the Gear icon (Project Settings).
  8. Scroll down to the Your apps section, click Add fingerprint, paste your SHA-1 fingerprint (tap "Copy Fingerprint" in the Custom Firebase setup screen in the module), and click Save.
  9. (Optional) Click the Data privacy tab on Project Settings and uncheck Firebase Service Data Sharing.
View Firebase App Registration Screenshots

Add Android App
1. Click the Android platform icon on Project Overview

Register Android App
2. Enter package name org.swiftapps.swiftbackup and nickname

Download google-services.json
3. Download google-services.json configuration file

Continue to console
4. Skip SDK setup and continue to console

App registered on Overview
5. App is registered on Project Overview

Open Project Settings
6. Click the gear icon to open Project Settings

Project Settings General Tab
7. Project Settings Overview (View in Google Cloud)

Add SHA-1 fingerprint
8. Add SHA-1 fingerprint under Your apps

Disable Data Sharing
9. Optional: Disable Firebase Service Data Sharing

2. Configure OAuth 2.0 Client in Google Cloud Console

  1. Open the Google Cloud API Credentials Console by clicking View in Google Cloud on the Firebase Project Settings page.
  2. Ensure your Firebase / Google Cloud project is selected in the top project dropdown.
  3. In the sidebar, navigate to APIs & Services > Credentials.
  4. Under OAuth 2.0 Client IDs, edit the auto-generated Android client for org.swiftapps.swiftbackup.
  5. Under Advanced settings, check Enable custom URI scheme (click Yes in the confirmation popup).
  6. Click Save.
  7. Copy the generated Client ID string (e.g., xxxxxxxxxxxx-xxxxxxxxxxxxxxxx.apps.googleusercontent.com).
View Google Cloud OAuth Client Screenshots

Google Cloud Console Dashboard
1. Google Cloud Console Dashboard

Navigate to Credentials
2. Navigate to APIs & Services > Credentials

Edit Android OAuth Client
3. Under OAuth 2.0 Client IDs, edit the auto-generated Android client

Enable Custom URI Scheme
4. Under Advanced settings, enable Custom URI scheme

Copy Client ID
5. Copy your generated OAuth Client ID


Step 5: Enable Google Drive API & OAuth Scopes

If you plan to use Google Drive for cloud backups:

1. Enable Google Drive API

  1. Visit the Google Cloud Drive API Console.
  2. Select your Firebase / Google Cloud project at the top.
  3. Click Enable to allow Swift Backup to interact with Google Drive via your project.

2. Add Google Drive OAuth Scope

  1. Open the Google Cloud OAuth Scopes Console.
  2. Ensure your project is selected at the top.
  3. Navigate to Data Access > click Add or remove scopes.
  4. In the filter box, search for and enable:
    https://www.googleapis.com/auth/drive.file
    
    (This provides safe, per-file access for files created or opened by Swift Backup without requiring broad drive permissions).
  5. Click Update, then click Save (or Save and continue).

Step 6: Import or Enter Credentials in SwiftBackupPrem

  1. Open SwiftBackupPrem on your device.
  2. Enable Custom Firebase app.
  3. Choose either method:
    • Method A (Automatic): Tap Import google-services.json and pick the downloaded JSON file. Then paste your OAuth Client ID into the Client ID field.
    • Method B (Manual Wizard): Follow the guided setup in the app to review and confirm all fields.
  4. Tap Finish & Save.
  5. Tap Force Stop at the bottom to kill any running Swift Backup instances, then tap Open App.
  6. Sign in to Swift Backup with your Google account.

Note

Firebase Cloud Storage is Optional (Skip if on Spark Plan)

Firebase Cloud Storage now requires a paid Blaze Plan (linked Cloud Billing account). You can safely skip enabling Cloud Storage in Firebase Console. Swift Backup does not store your backup files (APKs, app data, call logs) inside Firebase Storage. Firebase is only used for authentication and metadata synchronization. Your actual backups are stored in your configured cloud provider (Google Drive, WebDAV, Nextcloud, SMB, etc.) or local storage.


Migrating & Accessing Backups from Default Firebase

Install Swift Backup with the default Firebase configuration and log in to pull your UID from /data/data/org.swiftapps.swiftbackup/shared_prefs/com.google.firebase.auth.api.Store.*.xml:

su -c 'grep -o "GET_TOKEN_RESPONSE\.[^\"]*" /data/data/org.swiftapps.swiftbackup/shared_prefs/com.google.firebase.auth.api.Store.*.xml | cut -d. -f2'

Important

If your account has been banned by the developer of Swift Backup, you will not be able to fetch your UID if you uninstalled the app after the ban, as the /data/data/org.swiftapps.swiftbackup/shared_prefs/ directory will be deleted. Without this UID, cloud backups cannot be decrypted and will be permanently lost. This is the only way to fetch your UID, so do not uninstall the app until you have your UID saved safely somewhere.

Verify UID with Backups (Optional)

Swift Backup takes the MD5 hash of your Firebase UID and uses the first 16 characters for the folder name:

echo -n "example uid" | md5sum | cut -c 1-16

Output: example16char -> /sdcard/SwiftBackup/accounts/example16char/
or in case of cloud folder: Swift Backup (example16char)


Create the User with this UID in Your Custom Firebase Project

  1. Install Firebase tools using your preferred package manager (e.g., via Node.js):

    npm install -g firebase-tools
  2. Run firebase login to connect your account:

    firebase login
  3. Create a users.json file:

    {
      "users": [
        {
          "localId": "example uid",
          "email": "examplemail@gmail.com",
          "emailVerified": true,
          "displayName": "examplename"
        }
      ]
    }
  4. View your Project ID:

    firebase projects:list
  5. Run the import command:

    firebase auth:import users.json --project exampleprojectID
  6. Log in again to Swift Backup.


Backup Migration

SwiftBackupPrem features a powerful, built-in Backup Migration Tool (accessible by tapping the Backup Migration card from the main screen).

The Migration Tool bridges the gap between different Firebase environments and cloud storage configurations through two dedicated tabs:

  1. Local Migration: An on-device cryptographic and metadata reconstruction tool to decrypt, convert, and re-encrypt existing backup folders across different Firebase UIDs, anonymous keys, or unencrypted portable formats.
  2. Cloud Discovery & Injection: A runtime hooking and scanning engine that discovers backups across diverse cloud providers (Google Drive, OneDrive, Dropbox, Box, pCloud, S3, WebDAV / Nextcloud) and injects them directly into Swift Backup's restore screens without requiring prior database records.

Local Migrator (Decrypt, Convert & Re-encrypt)

Swift Backup encrypts application data (.dat, .extdat, .med), system payloads, and directory archives (folder-base.fld) using Facebook Conceal (AES-256-GCM + Zstandard compression) keyed against the user's active Firebase UID. If you switch to a custom Firebase backend, set up a new account, or recover backups after being banned from the official backend, the encryption key changes—making older backups unreadable by the new account.

The Local Migrator resolves this entirely on-device without requiring internet access or root shell commands. It recursively inspects backup folders, decrypts archives using the source key, reconstructs missing metadata, and re-encrypts or extracts the data into your chosen target format.

4-Step Migration Workflow

  1. Step 1: Source Folder

    • Enter the path to your existing backup directory or tap the folder icon to select it via the system Document picker.
    • The engine recursively walks the directory tree (up to 20 levels deep) to identify all app backup directories (containing .app, .apk, .dat, .splits, .extdat, .med, .xml, or .extra) and folder backups (starting with Folder- or containing folder-base.* / metadata.json).
  2. Step 2: Decryption Key (Source UID)

    • Enter or paste the Firebase UID that originally encrypted the backups.
    • Key Presets & Detected UIDs: Tap the refresh icon to auto-detect candidate Firebase UIDs found in Swift Backup's local configuration, cached tokens (.sbp_auth_state), or preferences.
    • Shared Anonymous Key: Tap the Shared Anonymous Key chip to fill in the built-in anonymous key (d58b0944415a4889d7f11aa95fbeca50) if migrating from anonymous offline backups.
  3. Step 3: Target Encryption Mode Choose how you want the migrated backups to be packaged:

    • Shared Anonymous Key (Recommended): Re-encrypts archives using Swift Backup's static anonymous key. Output can be restored in Swift Backup offline without logging into any Firebase account.
    • Custom Firebase UID: Re-encrypts archives specifically for your custom Firebase project UID.
    • Unencrypted Backups: Strips AES-256-GCM Conceal encryption completely from data slices and keeps Swift Backup's directory layout.
      • Portable Formats Checkbox: When Unencrypted mode is active, check Convert to standard portable formats (.apk, .tar.gz, .json) to extract standard standalone files into ExtractedBackups/:
        • .app / .apk → <packageName>.apk
        • .splits → <packageName>_splits.tar
        • .dat → <packageName>_data.tar
        • .extdat → <packageName>_external_data.tar
        • .med → <packageName>_media.tar
        • .extra → <packageName>_extras.json
        • .xml → <packageName>_metadata.json
        • .cls → <packageName>_call_logs.json
        • .msg → <packageName>_sms_messages.json
        • .wfi → <packageName>_wifi.json
        • .wal → <packageName>_wallpaper.png
        • folder-base.fld → <folderName>.tar
        • folder-base.flm → <folderName>_manifest.json
  4. Step 4: Destination Folder & Start Migration

    • Enter the output directory (defaults to /storage/emulated/0/SwiftBackup).
    • The engine organizes files into Swift Backup's standard hierarchy:
      • SwiftBackup/accounts/<accountHash>/backups/apps/local/<packageName>/<backupId>/
      • SwiftBackup/accounts/<accountHash>/backups/folders/local/<folderName>/
    • Tap Start Migration. The screen displays real-time progress indicators (item count, percentage bar, and current package), along with live execution logs.
    • Metadata Reconstruction: If the original .xml metadata is missing, the engine automatically extracts metadata from the APK manifest (versionCode, versionName, app label) and decrypts the .extra payload for SSAID, permission states, and notification policy settings.

Note

Storage Permission Notice
On Android 11+ (API 30+), the app requires the Manage External Storage (All Files Access) permission to scan and write backup folders across storage volumes. If prompted, grant access via system settings.


Universal Cloud Discovery & Snapshot Injection

Swift Backup normally depends strictly on Firebase Realtime Database (RTDB) records to discover and list cloud backups. If an RTDB record is missing (such as when using a Custom Firebase backend, restoring after an account ban, or restoring across devices), Swift Backup cannot see the backups stored in your cloud, even if the files exist in your cloud drive.

The Cloud Discovery & Injection option bypasses this limitation entirely. It scans configured cloud storage remotes, extracts metadata on the fly, and injects snapshots into Swift Backup's runtime memory.

Tip

Cloud Discovery & Snapshot Injection is functional in both setup modes:

  1. Local Account Cloud Features: Works completely offline with zero Firebase setup.
  2. Custom Firebase App: Works alongside your private Firebase instance.

1. Google Drive Full OAuth Scope Expansion

  • Default Swift Backup Behavior: Requests the restricted https://www.googleapis.com/auth/drive.file scope, limiting file visibility strictly to files created by the current app session.
  • Expanded Scope: When Google Drive Full OAuth Scope is enabled, the module dynamically intercepts OAuth request builders, URI builders, and authentication intents during sign-in, upgrading the requested scope to:
    https://www.googleapis.com/auth/drive
    
  • Result: Grants Swift Backup visibility to query and restore backups uploaded from different devices, previous ROMs, or prior accounts.

Warning

"Google hasn't verified this app" Notice:
Because https://www.googleapis.com/auth/drive is classified as a sensitive scope, Google Cloud displays an unverified app warning during Google Sign-In. Click Advanced > Go to Swift Backup (unsafe) to proceed. This is standard behavior for personal developer projects.

2. Universal Cloud Discovery

When Universal Cloud Discovery is toggled on, SwiftBackupPrem scans across all connected remote storage providers supported by Swift Backup:

Provider Scanner Details & Capabilities
Google Drive Scans Swift Backup root directories, resolves file IDs, and parses nested app directories via Google Drive API v3.
Microsoft OneDrive Scans Swift Backup root folders, encodes relative paths, and handles batch Microsoft Graph API pagination with HTTP range downloads.
Dropbox Scans Dropbox API v2 endpoints to map application and folder backup hierarchies.
Box Scans Box storage trees using the Box REST API v2.
pCloud Scans cloud archives and directory trees via pCloud REST APIs.
Amazon S3 / S3-Compatible Scans buckets using AWS S3 API (supports MinIO, Wasabi, Backblaze B2, Ceph, etc.).
WebDAV / Nextcloud / ownCloud Uses WebDAV XML PROPFIND queries to traverse remote directories and discover backup slices.
Supported Cloud Components:
  • Applications: APKs (.app/.apk), split APKs (.splits), app data (.dat), external data (.extdat), media (.med), and metadata (.extra).
  • Folders: Custom folder archives (.fld, .flm, metadata.json).
  • System Data: Call logs (.cls), SMS messages (.msg), Wallpapers (.wal, .wal.png), and Wi-Fi configurations (.wfi).
Remote APK Manifest Parsing via HTTP Range Requests:

To display accurate app titles, package names, and version codes without downloading multi-gigabyte APKs over mobile data, the discovery engine incorporates ApkRangeManifestParser. It performs HTTP Range requests to fetch only the ZIP central directory and parse AndroidManifest.xml remotely in seconds.

3. Realtime DB Snapshot Injection

The module includes an in-memory Firebase Snapshot Synthesizer:

  • Hooks into Swift Backup's internal Firebase queries and DataSnapshot handlers (single-app details listeners, batch cloud restore loaders, app filter helpers, cloud sync tab, and folder loaders).
  • Synthesizes live DataSnapshot objects formatted identically to native RTDB entries under the cloud_v1 hierarchy.
  • Result: Discovered cloud backups appear immediately in:
    • Single App Details (with all restorable parts: APK, Data, Ext Data, Splits)
    • Cloud Sync Tab (with accurate backup timestamps and device tags)
    • Batch Restore Screen (allowing one-tap bulk restoration)
    • Cloud Backup Tags Dropdown (filtering backups by device model / tag)

4. Cloud Discovery Cache

Discovered cloud backups are saved locally to:

/sdcard/SwiftBackup/cloud_discovered_cache.json
  • Provides instant offline navigation across restore screens without waiting for network scans on every screen launch.
  • An in-memory cache TTL (60 seconds) prevents redundant cloud network requests during rapid screen switching.
  • Tap Clear Cloud Cache in the app at any time to purge cached entries and trigger an immediate fresh scan across your cloud providers.

Firebase Realtime Database Metadata Sync

While Snapshot Injection dynamically provides in-memory restore entries, you can also permanently persist discovered and reconstructed metadata to your private Firebase Realtime Database using the Sync Metadata to Custom Firebase feature:

  • Native cloud_v1 Structure: The sync engine writes directly to Swift Backup's official RTDB schema:
    /users/<UID>/cloud_v1/<provider_key>/tags/<device_tag>/apps/<sanitized_pkg>/<backup_id>
    /users/<UID>/cloud_v1/<provider_key>/tags/<device_tag>/folders/<folder_id>
    
    (where <provider_key> is resolved in the format <provider> (<sanitized_email>)).
  • Smart Deduplication: Before writing, the sync engine queries your existing RTDB cloud_v1 tree to skip existing records and avoid redundant write operations.
  • Token Resolution & Authentication: Automatically resolves Firebase Auth ID tokens from Swift Backup's OAuth session or exchanged refresh tokens, ensuring secure authenticated database writes.
  • Sync Now Button: Tap the Sync Now button inside the Cloud Discovery tab to trigger an immediate full sync of all local and cloud metadata records.

LSPatch Rootless Integration & In-App Settings

SwiftBackupPrem provides complete, first-class support for rootless setups using LSPatch (the actively maintained JingMatrix/LSPatch fork is recommended):

1. In-App Settings Injection (Integrated Mode)

When patched using LSPatch's Integrated Mode, SwiftBackupPrem's hook engine embeds directly into Swift Backup:

  • Native Settings Menu: Module preferences are injected into Swift Backup's settings hierarchy under Settings → SwiftBackupPrem.
  • Streamlined Experience: You can toggle Premium Features, Telemetry Suppression, Local Account Cloud Features, and Custom Firebase directly inside Swift Backup without needing an external manager app.

2. Root Service Fix (RootServiceFixHook)

Under LSPatch, root daemon processes launched by libsu (RootService) for SBA root backups would normally crash (SIGABRT / GetObjectField(null) in liblspatch.so) because bare daemon processes lack Android Application and ActivityThread contexts.

SwiftBackupPrem solves this transparently:

  • Intercepts root process startup tasks and wraps execution in an isolated Linux mount namespace (unshare -m).
  • Inside the private namespace, it bind-mounts the original, unpatched APK over the patched wrapper.
  • Root SBA backup and restore daemons start and bind cleanly with zero LSPatch crashes.

Configuration Export & Migration

  • Export Config: Tap the top-right menu (⋮) > Export Config to save your active configuration to a JSON file (sbp_config.json).
  • Import Config: Tap Import Config to restore your settings in a single tap on a new device or fresh ROM install.

Building from Source

Prerequisites

  • JDK 17+ (e.g. Adoptium Eclipse Temurin 17 or 25)
  • Android SDK with Platform 37 (compileSdk 37)
  • Android NDK (29.0.14206865 or higher) & CMake 3.22.1+

Build Steps

  1. Clone the repository:

    git clone https://github.com/s1ddhants1/SwiftBackupPrem.git
    cd SwiftBackupPrem
  2. Run unit tests:

    ./gradlew testDebugUnitTest
  3. Build debug APK:

    ./gradlew assembleDebug
  4. Build optimized release APK:

    ./gradlew assembleRelease

The compiled APK will be located in app/build/outputs/apk/release/app-release.apk.

Branch Structure

  • main: Modern LibXposed (API 101/102+) implementation for LSPosed v2.0.0+, Vector, and LSPatch.
  • legacy: Classic Xposed API implementation for older Android environments (EdXposed / classic Xposed).

Community & Support

Join the official Telegram group for discussion, support, release updates, and assistance:

Join Telegram Group

  • Group Link: https://t.me/SwiftBackupPrem
  • Get Help: Ask troubleshooting questions or share setup tips.
  • Releases & APKs: Get direct download links and release notifications directly inside Telegram.

Frequently Asked Questions (FAQ)

Q: Do I need to set up Firebase if I only want cloud backups?

No! Simply enable Local Account Cloud Features in SwiftBackupPrem and choose Local Account in Swift Backup. You can then connect your cloud storage provider (WebDAV, Nextcloud, OneDrive, Dropbox, Box, pCloud, S3, etc.) and perform cloud backups and restores completely offline with zero Firebase configuration.

Q: What is the difference between Local Account Cloud Features and Custom Firebase App?

Local Account Cloud Features is designed for offline/local accounts without sign-in, virtualizing Realtime Database records locally and on your cloud drive. Custom Firebase App is for users who want to sign in with their Google account inside Swift Backup, expand Google Drive OAuth scopes to full access (restoring across previous ROMs), and sync catalog records to their private Firebase Realtime Database.

Q: How do I use SwiftBackupPrem with LSPatch (Rootless)?

We recommend using the actively maintained JingMatrix/LSPatch fork (as the original repository is archived). You can use either Manager Mode or Integrated Mode. In Manager Mode, patch Swift Backup with LSPatch and keep SwiftBackupPrem installed as a companion app. In Integrated Mode, embed SwiftBackupPrem directly into the patched APK; module settings will be accessible directly inside Swift Backup under Settings → SwiftBackupPrem.

Q: Can I use SwiftBackupPrem on Android TV?

Yes! SwiftBackupPrem includes a native Android TV Leanback banner and full D-pad focus traversal. You can sideload the APK onto your Android TV or Google TV box and launch it directly from the TV home screen.

Q: I see "LSPosed Module Not Enabled" in the app.

Make sure you have:

  1. Enabled SwiftBackupPrem inside LSPosed Manager.
  2. Added Swift Backup (org.swiftapps.swiftbackup) to the module scope.
  3. Force stopped Swift Backup or rebooted your device.
Q: Why do I need a Custom Firebase project? Will I get banned without it?

By default, Swift Backup authenticates with the official developer's Firebase backend. The official server performs periodic license checks, anti-tampering verification, and telemetry detection. If unauthorized or modified app usage is detected, the developer can disable/ban your account on their Firebase instance, revoking your access to Swift Backup and your backup metadata.

Connecting your own personal Firebase backend gives you 100% isolation: authentication and metadata stay on your private cloud where no external server can revoke your account.

Q: Do I need a paid Firebase Blaze plan or Cloud Storage?

No! The 100% free Firebase Spark plan is completely sufficient. Swift Backup only utilizes Firebase Authentication and Realtime Database for account identity and sync metadata. Your actual backup archives (APKs, app data, etc.) are stored on your personal cloud provider (e.g., Google Drive, WebDAV, Nextcloud), not Firebase Storage.

Q: Google Sign-In fails with Error Code 10 or Error Code 12500.

This indicates an OAuth mismatch, incorrect Client ID, or missing API configuration:

  1. Check Client ID Type: In SwiftBackupPrem settings, ensure you entered the Android OAuth Client ID, not the Web Client ID.
  2. Verify SHA-1 Fingerprint: Use the Copy Fingerprint helper in SwiftBackupPrem's Guided Setup and ensure it matches the SHA-1 added to your Android OAuth Client and Firebase Android App settings.
  3. Custom URI Scheme: Ensure Enable custom URI scheme is checked in Google Cloud Console > Credentials > Android OAuth Client.
  4. Enable Google Drive API: Verify that Google Drive API is enabled under APIs & Services in Google Cloud Console.
Q: Google Drive shows "Google hasn't verified this app" during sign-in.

This is expected. When Google Drive Full OAuth Scope is enabled, the module requests the full https://www.googleapis.com/auth/drive scope so Swift Backup can discover and rebuild backups created across past accounts or ROM installs.

Because your Google Cloud project is personal and unverified, Google shows a standard security notice. Click Advanced > Go to Swift Backup (unsafe) to proceed.

Q: My account was banned on the default Firebase backend. Can I recover my old backups?

Yes, provided you still have your old Firebase UID key.

Swift Backup encrypts backup archives (.dat, .extra) using AES-256-GCM + Zstandard with your Firebase UID as the decryption key. If you extract your old UID (see the Migration Guide) and create a user with that exact same UID in your Custom Firebase project, SwiftBackupPrem will be able to decrypt and restore all your previous backups.

Q: I uninstalled or wiped Swift Backup after being banned. Can I still recover my old backups?

Unfortunately, no. When you uninstall or clear data for Swift Backup, the local /data/data/org.swiftapps.swiftbackup/shared_prefs/ directory containing the cached Firebase authentication token is deleted. Because the official server has disabled your account, you cannot log in to retrieve the original UID. Without the original UID key, the AES-256-GCM encrypted data cannot be decrypted.

Recommendation: Always back up your Firebase UID or export your SwiftBackupPrem configuration (sbp_config.json) to safe storage.

Q: How do I verify that my extracted UID matches my backup folder?

Compute the MD5 hash of your raw UID string (for example, using an online MD5 tool or echo -n "YOUR_UID" | md5sum). Compare the first 16 hexadecimal characters of the MD5 hash with the name of the backup folder on your storage or Google Drive. If they match, you have the exact UID needed to restore those backups.

Q: firebase auth:import fails with "No hash algorithm specified" or project error.

Ensure you run firebase projects:list to obtain your exact Project ID (not the display name). Use:

firebase auth:import users.json --project YOUR_PROJECT_ID
Q: Why do uninstalled apps show as package names or missing icons during Cloud Restore?

When backups are indexed directly from cloud metadata for apps not currently installed on your device, Swift Backup falls back to displaying the package identifier recorded in the backup headers. Once restored or installed locally, Android resolves the full display name and application icon normally.

Q: How do I access and use the Backup Migration Tool?

SwiftBackupPrem includes a built-in Backup Migration Tool (accessible via the Backup Migration card on the main screen by tapping Open Migrator):

  • Local Migration Tab: Decrypts existing backup folders with your source Firebase UID, rebuilds missing metadata, supports 3 destination encryption modes (Shared Anonymous Key, Custom Firebase UID, or Unencrypted Backups with optional portable extraction), and re-encrypts or extracts them for offline or new account restore.
  • Cloud Discovery & Injection Tab: Provides granular controls for:
    • Google Drive Full OAuth Scope: Dynamically expands OAuth scopes to auth/drive to discover backups created across accounts or past ROMs.
    • Universal Cloud Discovery: Scans and indexes backups across Google Drive, OneDrive, Dropbox, Box, pCloud, S3, and WebDAV / Nextcloud.
    • Realtime DB Snapshot Injection: Injects discovered cloud backups directly into Swift Backup restore lists on the fly via synthetic DataSnapshot objects.
    • Sync Metadata to Custom Firebase: Pushes reconstructed local and discovered cloud backup metadata directly into your private Firebase Realtime Database (cloud_v1 hierarchy).
    • Cloud Discovery Cache: Manages the local discovery cache for fast offline access, with a 1-tap Clear Cache button.
Q: Does Cloud Backup Restore support Call Logs, SMS, Wallpapers, Wi-Fi networks, and Folders?

Yes. The Cloud Discovery and Backup Rebuilder engine indexes and restores Call Logs (.cls), SMS messages (.msg), Wallpapers (.wal/.wal.png), Wi-Fi configurations (.wfi), and Folder backups (.fld/.flm) alongside full application archives (.app, .dat, .splits, .extdat, .extra). Folder metadata (metadata.json) is also automatically reconstructed if missing.

Q: Can SwiftBackupPrem be used with cloned or work profile instances of Swift Backup?

Yes. Ensure the LSPosed module scope covers the cloned instance or secondary user profile, and verify that root access and storage permissions are properly granted to that profile space.

Q: How does DexKit work in this module?

Swift Backup obfuscates its classes with ProGuard/R8 across different releases. Instead of hardcoding static class names and signatures that break on every update, DexKit inspects bytecode structures dynamically at runtime to locate the required hooks automatically and caches the results for optimal performance.


Credits & Acknowledgements

  • Juby210 — Original creator and author of SwiftBackupPrem.
  • s1ddhants1 — Maintainer & Lead Developer.
  • LuckyPray/DexKit — Powerful runtime DEX search and hooking engine.
  • LSPosed — ART hooking framework for modern Android.
  • JingMatrix/LSPatch — Rootless Xposed hooking framework (actively maintained fork).

License & Disclaimer

This project is licensed under the MIT License.

Disclaimer: This project is intended strictly for personal, educational, and backup management purposes. Swift Backup is developed by SwiftApps. If you enjoy Swift Backup, consider supporting the official developers.

Releases

3.1.0

Stable

9/26/2026, 8:51:55 PM

What's Changed in v3.1.0

Important

⚠️ Reinstall Required (Signature Key Change)

Starting with v3.1.0, official SwiftBackupPrem builds are signed with a dedicated Release Key instead of the default Android debug key used in v3.0.x and prior development builds.

Because Android enforces certificate matching across updates, attempting to install this version directly over an existing installation will fail.

How to upgrade cleanly:

  1. Open your existing SwiftBackupPrem app.
  2. Tap Menu (⋮) → Export Config to save your current configuration to sbp_config.json.
  3. Uninstall the older SwiftBackupPrem application/module from your device.
  4. Install the new v3.1.0 APK.
  5. Open SwiftBackupPrem and tap Menu (⋮) → Import Config to restore your settings in one tap.

LSPatch Support & In-App Settings (Rootless Environments)

Fully supports non-rooted environments via LSPatch in both Integrated Mode and Manager Mode

  • In-App Settings Injection: When using LSPatch Integrated Mode, module settings inject natively inside Swift Backup's settings menu under Settings → SwiftBackupPrem

  • Root Service Crash Fix: Resolves crashes when running libsu daemon processes for root backups under LSPatch by automatically isolating daemon execution inside a private Linux mount namespace


Local Account Cloud Features

Cloud backup creation, cloud file uploads, and cloud backup restores for offline and local accounts without requiring Google Sign-In or a Firebase project

  • Database Virtualization: Virtualizes Firebase Realtime Database reads and writes in memory and syncs metadata to cloud provider instead of firebase

Build & Performance Optimizations

  • Reduced APK Footprint: Optimized APK size through R8 full mode, locale resource filtering, and packaging exclusions.
  • 16 KB Page-Size Kernel Alignment: Enforces 16 KB native alignment for Android 15+ kernel compatibility.

Launcher Icon Visibility Toggle

  • Hide Launcher Icon: Added an option to hide the companion app's icon from your home screen and app drawer.
    When hidden, the companion app remains accessible directly via LSPosed Manager, your Xposed module list, or Swift Backup's native settings under Integrated Mode.

Full Changelog: 301-3.0.1...310-3.1.0

Assets

2

3.0.1

Stable

8/31/2026, 4:28:34 PM

What's Changed in v3.0.1

Backup Migration & Cloud Discovery Isolation (Hotfix)

• Strict Inactivity When Toggled Off: All backup migration, cloud discovery, and experimental features default to disabled (false) and execute zero background hooks, scans, or runtime intercepts when toggled off.

• Realtime DB Snapshot & Metadata Injection: Bound all cloud metadata decoding, synthetic snapshot injection, and stats overrides strictly to the Realtime DB Snapshot Injection toggle (enableSnapshotInjection).

• Local Backup Hooks Removal: Removed background metadata reconstruction hooks and disk scans for local backups—local migration now performs clean, on-demand metadata synthesis natively within the migration engine.

• Guarded Firebase Synchronization: Strictly bound RTDB metadata syncing and the "Sync Now" action to the syncMetadataToFirebase setting, preventing any unsolicited network sync when disabled.

• Cascading Preferences Reset: Disabling Custom Firebase cleanly deactivates and resets all child cloud migration and sync preferences.

Full Changelog: https://github.com/Xposed-Modules-Repo/io.github.s1ddhants1.swiftbackupprem/commits/301-3.0.1

Assets

1

3.0.0

Stable

8/31/2026, 1:52:00 PM

What's Changed in v3.0.0

Local Backup Migration Engine (Major Feature)

• Cross-Account & Encryption Migration: Seamlessly migrate and re-encrypt local backups across accounts (Anonymous UID, Custom UIDs, or Unencrypted mode) with automated Conceal key derivation.
• Batch Descriptor Re-encryption: Reconstruct and update .dat, .extdat, and .xml backup descriptors for effortless restoration on any account.

Backup Migrator Hub (Tabbed Management)

• Tabbed Interface: Consolidated Cloud Discovery & Injection and the new Local Backup Migration into a unified, tabbed hub.
• Multi-Provider Cloud Discovery: Support scanning backups across Google Drive, OneDrive, Dropbox, Box, pCloud, S3, and WebDAV.
• Remote APK Manifest Inspection: Range-based parsing of APK manifests to index versions without downloading full packages.

Note

Advisory on Discovered Backup Injection: Discovered backup injection relies on synthetic Firebase snapshot hooks that are vulnerable to breaking in newer Swift Backup versions. It is strongly recommended to use this feature once to sync metadata to your custom Firebase instance from old backups, and ditch the discovery/injection flow in favor of native custom Firebase sync thereafter.

Core Architecture & Polish

• Dynamic Hook Resolution: Enhanced DexKit class resolution and runtime method matching across Swift Backup updates.
• Domain Use Cases & Testing: Refactored migration and sync flows into modular domain use cases with expanded unit test coverage.
• Telegram Support: Added community and support links to the About screen.

Full Changelog: https://github.com/Xposed-Modules-Repo/io.github.s1ddhants1.swiftbackupprem/commits/300-3.0.0

Assets

1

2.4.0

Stable

8/24/2026, 10:52:09 AM

What's Changed in v2.4.0

UI & Architecture Improvements

  • Complete UI Overhaul: Redesigned and modernized the entire user interface, including the guided setup wizard, settings cards, and About screen.
  • Streamlined Codebase: Refactored hook registration, target class resolution, and module lifecycle management.
  • Expanded Test Coverage: Added dedicated unit test suites for cloud discovery, backup rebuilding, and OAuth scope hooks.

Experimental Settings

  • Google Drive Cloud Backup Discovery & Restoration Toggle (Experimental)
    • OAuth Scope Expansion: Dynamically expands authorization scopes to enable Google Drive access.
    • Live Cloud Discovery: Discovers and indexes existing cloud backups directly from Google Drive.
    • Automated Backup Rebuild: Reconstructs metadata and descriptors for cloud restores.

Full Changelog: s1ddhants1/SwiftBackupPrem@v2.3.1...v2.4.0

Assets

1

2.3.1

Stable

8/20/2026, 3:16:29 PM

What's Changed in v2.3.1

  • Modular Hook Architecture: Decoupled monolithic hooking logic into dedicated, isolated handlers (AuthBypass, PremiumFeature, FirebaseInit, TelemetrySuppression, ExitProtection) with cached DexKit bytecode resolution.
  • Modular Guided Setup Wizard: Deconstructed the setup wizard into independent, maintainable composable steps.
  • Random SHA-1 Fingerprint Generator: Reverted to generating random valid SHA-1 fingerprints in the setup wizard, preventing Google Cloud OAuth registration conflicts caused by duplicate SHA-1 certificates.
  • Kotlin DSL & Build Tooling: Migrated the entire build configuration to Gradle Kotlin DSL (.gradle.kts) and upgraded Gradle Wrapper to v9.7.0.
  • CI/CD Modernization: Upgraded GitHub Actions to Node 24 native versions and separated release builds (R8-optimized APK + ProGuard mapping) from debug artifacts.
  • Expanded Test Coverage: Added comprehensive unit test suites covering configuration persistence, class resolution, telemetry suppression, and UI state flows.

Full Changelog: s1ddhants1/SwiftBackupPrem@v2.3.0...v2.3.1

Assets

1

2.3.0

Stable

8/17/2026, 3:15:52 PM

What's Changed in v2.3.0

Modern LibXposed API Migration

  • LibXposed Modern Architecture: Migrated fully from the legacy Xposed API (api-82.jar) to the modern LibXposed API (io.github.libxposed:api:100) with unified hook interfaces and modern service integration.
  • Framework Compatibility: Requires modern Xposed / LSPosed implementations (e.g. LSPosed, LSPosed Irena, Zygisk Next, etc.) that support modern LibXposed specifications.
  • Active Connection Status Card: Added a real-time framework detection card to the UI dashboard showing whether the module is currently active and bound to the framework.
  • Adaptive Settings Access: Dynamic access to settings controls based on active framework connectivity.

Removal of Auto Backup Feature

  • Archiving & Auto Backup Stripped: Removed legacy automated module APK and configuration archiving logic and associated DexKit signature patterns.
  • Leaner Core: Focused strictly on core premium unlocking, telemetry suppression, and custom Firebase backend synchronization to maximize performance, reliability, and minimize hook footprint.

Optimizations & Enhancements

  • Modular Firebase Configuration Engine: Fully refactored google-services.json parsing into a dedicated, clean, and isolated module with unit tests.
  • Enhanced Configuration Import/Export: Added robust JSON schema validation, Firebase metadata preservation, and migration support for sbp_config.json.
  • UI & Interaction Polish:
    • Resolved Snackbar overlap issues on devices with gestures / bottom insets.
    • Smoothed UI animations, background file processing feedback, and text field ergonomics.
  • Performance & Codebase Hygiene: Refactored DexKit class scanning and removed legacy reflection artifacts for faster load times.

Full Changelog: s1ddhants1/SwiftBackupPrem@v2.2.0...v2.3.0

Assets

1

2.2.0

Stable

8/16/2026, 6:22:32 PM

What's Changed in v2.2.0

  • Enable Premium Toggle: Added a master toggle to enable or disable premium features on-demand with active runtime state enforcement.
  • Disable Telemetry & Tracking: Added an option to block Firebase Analytics, Crashlytics, Sessions, Installations, and Google DataTransport.
  • Config Import / Export: Updated sbp_config.json import/export to include the new toggle settings.
  • UI & Layout: Reordered settings for better clarity and standardized Material 3 card styles.
  • Reliability & IPC: Improved XSharedPreferences reload handling and synchronous preference persistence across processes.

Full Changelog: s1ddhants1/SwiftBackupPrem@v2.1.1...v2.2.0

Assets

1

2.1.1

Stable

8/16/2026, 4:51:48 PM

What's Changed in v2.1.1 (Hotfix)

  • Fixed App Stuck on Splash Screen & System.exit Calls:
    • Neutralized System.exit and Runtime.exit traps that abruptly terminated the process on startup.
    • Added dedicated mapping and DexKit dynamic discovery for AuthUser (d45 in v5.1.0) and AnonUser (b45 in v5.1.0).
    • Ensured MFirebaseUser getters return a valid fallback user when null, preventing startup assertion aborts.
  • Fixed Premium Reverting When Custom Firebase is Off:
    • Mapped and hooked HomeViewModel (c64) to prevent Firebase purchase listener callbacks from resetting premium status.
    • Hooked SwiftApp's premium LiveData instance (SwiftApp.a / ex6) to permanently maintain active Premium state.
  • Enhanced DexKit Class Discovery: Robust fallback heuristics for obfuscated classes across multiple Swift Backup versions.
  • UI & Performance Refinements: Cleaner logging and improved startup reliability.

Full Changelog: s1ddhants1/SwiftBackupPrem@v2.1.0...v2.1.1

Assets

1

2.1.0

Stable

8/16/2026, 4:51:37 PM

What's Changed in v2.1.0

  • Swift Backup v5.1.0+ Compatibility: Updated obfuscated class search and DexKit hooks to support Swift Backup v5.1.0+.
  • UI Design Overhaul: Introduced an interactive Guided Setup Wizard inside a smooth accordion container for Firebase credentials, with Material 3 design throughout the app.
  • Quality of Life Tweaks:
    • Quick Action Bar: Added persistent Force Stop and Open App action buttons pinned at the bottom of the Settings screen.
    • Full Settings Backup: Configuration Export & Import now saves and restores all toggles (Enable premium features, Custom firebase app) alongside Firebase credentials.
  • Dedicated About Page: Added a standalone About screen featuring app details, version info, license details, and developer credits.

Full Changelog: s1ddhants1/SwiftBackupPrem@v2.0.4...v2.1.0

Assets

1