Skip to content

Latest commit

 

History

History

Android-Core

Folders and files

README.md

Jigar DataBackup (Android-Core)

📱 Jigar DataBackup

High-performance, root-powered Android backup and restore core engine for Omni-Sync.

Release License Platform


⚡ Overview

Jigar DataBackup is the on-device engine (com.jigar.databackup) that powers Omni-Sync's high-speed local data backups. Engineered with 31 modular Kotlin components, native C++ JNI utilities, and libsu root service integration, it enables headless programmatic backups over ADB as well as a standalone Jetpack Compose interface.

Key Capabilities

  • Root-Powered Data Extraction: Deep access to /data/data, /data/user_de, APKs, external storage, SMS, MMS, call logs, contacts, and Wi-Fi configurations.
  • Root Solution Support: Fully compatible with Magisk, KernelSU, and APatch.
  • Native Zstandard & LZ4 Compression: High-compression ratio and multi-threaded throughput via native C++ binaries on-device.
  • Headless Orchestration: Implements BackupTriggerReceiver for headless CLI/GUI orchestration without requiring UI interaction on the device.
  • Real-Time Telemetry Watchdog: Emits granular JSON progress status to /storage/emulated/0/DataBackup/.omni_status.json during operations.
  • 100% Local & Private: Absolutely zero data collection, zero telemetry, and zero cloud dependencies.

🏗️ Architecture

Android-Core/source/
├── app/                           # Application entrypoint & headless BackupTriggerReceiver
├── core/
│   ├── common/                    # Shared models, dispatchers, extensions
│   ├── data/                      # Repositories, room database, data managers
│   ├── database/                  # Room schemas and migrations
│   ├── datastore/                 # Proto DataStore preferences
│   ├── hiddenapi/                 # Android Hidden API bypass & reflection helpers
│   ├── model/                     # Domain data structures & backup metadata
│   ├── network/                   # Local network transport clients (WebDAV/SMB/FTP/SFTP)
│   ├── rootservice/               # AIDL root service interface (IRemoteRootService)
│   ├── service/                   # Foreground backup & restore worker services
│   └── util/                      # Native compression and file utilities
├── feature/
│   ├── flavor/                    # FOSS and Premium flavor targets
│   └── main/                      # Compose UI screens (list, history, settings, processing)
└── native/                        # C++ JNI native library (libnative) with Zstandard/LZ4

🚀 Building from Source

Prerequisites

  • Android Studio Ladybug (or newer) / Android SDK 34+
  • JDK 17
  • NDK (Side by side) 26.1.10909125+
  • CMake 3.22.1+

Build Commands

cd Android-Core/source

# Build debug APK (arm64-v8a FOSS debug)
./gradlew :app:assembleArm64-v8aFossDebug

# Build release APK
./gradlew :app:assembleArm64-v8aFossRelease

Generated APKs will be located at: app/build/outputs/apk/arm64-v8aFoss/debug/


📡 Headless Intent Contract

Omni-Sync triggers and controls the on-device backup process via ADB broadcast commands:

adb shell am broadcast \
    -a com.jigar.databackup.ACTION_START_BACKUP \
    -n com.jigar.databackup/.receiver.BackupTriggerReceiver \
    --es backup_mode "full" \
    --es compression "zstd" \
    --es target_path "/storage/emulated/0/DataBackup" \
    --ez backup_apps true \
    --ez backup_apk true \
    --ez backup_data true \
    --ez backup_user true \
    --ez backup_user_de true \
    --ez backup_storage true \
    --ez backup_contacts true \
    --ez backup_call_logs true \
    --ez backup_messages true \
    --es packages "all"

Real-time progress is streamed by the app to: /storage/emulated/0/DataBackup/.omni_status.json


📜 License

Licensed under the GNU General Public License v3.0 (GPL-3.0). Part of the Omni-Sync project engineered by Arvind Ji.