High-performance, root-powered Android backup and restore core engine for Omni-Sync.
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.
- 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
BackupTriggerReceiverfor 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.jsonduring operations. - 100% Local & Private: Absolutely zero data collection, zero telemetry, and zero cloud dependencies.
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
- Android Studio Ladybug (or newer) / Android SDK 34+
- JDK 17
- NDK (Side by side) 26.1.10909125+
- CMake 3.22.1+
cd Android-Core/source
# Build debug APK (arm64-v8a FOSS debug)
./gradlew :app:assembleArm64-v8aFossDebug
# Build release APK
./gradlew :app:assembleArm64-v8aFossReleaseGenerated APKs will be located at:
app/build/outputs/apk/arm64-v8aFoss/debug/
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
Licensed under the GNU General Public License v3.0 (GPL-3.0). Part of the Omni-Sync project engineered by Arvind Ji.