Open-source project
mrrfv/open-android-backup avatar
mrrfv/open-android-backup

Open Android Backup: encrypted ADB backups without root

Back up your device without vendor lock-ins, using insecure software or root. Supports encryption and compression out of the box. Works cross-platform.

1,425 stars68 forksCSSGPL-3.0

At a glance

What is it?
Open Android Backup combines a shell script, ADB and a Flutter companion app to produce encrypted, compressed Android backups on Linux, macOS and Windows. It supports restoring several data classes without relying on the deprecated `adb backup` command, but app data and MMS attachments are not included.
Who is it for?
Open Android Backup fits users who need local, non-vendor-controlled archives for apps, contacts and internal files, and who can accept the stated restore boundaries. It is unsuitable for complete app-state recovery or SMS archiving with attachments.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 40 days ago.
What is it written in?
Mainly CSS, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Open Android Backup Captures on Android

Open Android Backup addresses a specific gap between ordinary file copying and vendor-controlled device migration tools. It creates a local archive from an Android device connected through ADB, with no root requirement and no dependency on the removed `adb backup` command. The intended users are Android owners who want control over their backup files, plus engineers or technical users who need a scriptable process that does not depend on a proprietary backup format.

The project separates captured data by whether it can be restored. Apps can be restored, although their data is excluded because of system limitations. Internal storage, including pictures, downloads, videos and Signal backups when enabled, can also be restored. Contacts are exported in vCard format and are restorable.

SMS messages and call logs occupy a narrower category. The README says SMS messages are exported as CSV, while call logs are written to a text file. Users can inspect these files by opening the backup archive with 7-Zip, but the project cannot restore either category to a device at present. MMS attachments are not saved with SMS messages. This distinction is the main adoption boundary: Open Android Backup can preserve several common device categories, but it is not a complete Android image or a full-fidelity account of everything stored on the phone.

ADB Extraction, Companion App and Archive Flow

The core script is built around ADB rather than the deprecated `adb backup` command. For data that ordinary ADB access cannot reach, the bundle includes a native companion app under `companion_app/`. The repository layout also separates reusable functions into `functions/`, platform launch material into `backup.sh` and `backup-windows.ps1`, and optional extension logic into `hooks.example.sh`.

The resulting archive is compressed with 7-Zip and can use configurable compression settings. The README states that backups and their metadata are encrypted by default. This matters because internal storage can include personal documents and media, while contacts and exported message data may also be sensitive. The project also offers secure erasure of unencrypted temporary files created during the process. Those temporary files are important to the design: extraction and compression are intermediate operations, and encrypted final output does not mean that every temporary copy is automatically protected.

Open Android Backup does not require a proprietary archive format. According to the README, an archive can be opened with 7-Zip even if the script itself can no longer run. That gives the output a degree of tool independence, although file-level readability does not make every exported data type restorable. CSV SMS records and text call logs remain ordinary exports, while apps, internal storage and vCard contacts participate in the documented restore path.

Wireless backups are supported, allowing the phone to remain in normal use during the operation. The exact transport, supported ADB connection modes and companion-app communication sequence are not documented in the README excerpt, so the article cannot establish their implementation details.

Linux and Nix Installation for the First Backup

For Debian or Ubuntu, the documented dependency installation is a single package command. It installs ADB, 7-Zip and the terminal utilities used by the script, along with optional tools including `secure-delete` and `zenity`.

bash
sudo apt update; sudo apt install p7zip-full adb curl whiptail pv bc secure-delete zenity

After that command completes, download the Open Android Backup bundle from the project's Releases page rather than taking `master`. The README reserves `master` for development and labels experimental builds as heavily discouraged. Extract the release bundle, enable Android developer options and USB debugging, connect the device, and start the script:

bash
./backup.sh

The script presents an interactive process rather than requiring a documented set of command-line flags for the first run. The reader should expect to authorize the ADB connection on the phone and answer prompts from the terminal interface.

Nix and NixOS users have a shorter documented route. From the repository, the flake development shell provides the required dependencies without changing system packages:

bash
nix develop
./backup.sh

The README notes that `nix develop` may require retrying with `--extra-experimental-features 'nix-command flakes'`. It does not document a production or end-user bundle through Nix, so this path is presented as a development shell that can also run the script.

macOS and Windows Entry Points

On macOS, Open Android Backup depends on Homebrew packages and explicitly rejects the outdated Bash shipped with the operating system by default. The documented package set installs Android platform tools, 7-Zip, progress and terminal utilities, plus GNU core utilities. If Homebrew is already installed, these are the two commands:

bash
brew install --cask android-platform-tools
brew install p7zip pv bash dialog coreutils

After downloading a release bundle, the documented first command is:

bash
/opt/homebrew/bin/bash ./backup.sh

That absolute path matters because the README says the default macOS Bash is incompatible. The macOS testing coverage is also described as limited, making this platform a less settled adoption target than the detailed Linux path.

Windows uses the Windows Subsystem for Linux, but the supplied bundle includes `backup-windows.ps1`, which users are instructed to run from File Explorer with PowerShell. The repository also contains `windows-dependencies/`. The documented Windows preparation requires only the WSL installation step, followed by downloading and extracting a release bundle. If PowerShell reports an error, the README directs the user to the Developer Settings related to PowerShell and, when necessary, to the file's Properties and the `Unblock` control under Security. The README does not provide a complete headless PowerShell command for a first backup, so the right-click workflow is the verifiable procedure.

Encryption, Compression, Hooks and Their Costs

Encryption and compression are built into the normal backup design rather than added by an external packaging format. Users can configure 7-Zip compression, which can reduce archive size at the cost of additional processing. The README does not document the available compression levels, memory requirements or expected archive sizes for particular datasets, so those trade-offs cannot be quantified here.

Hooks are an extension point for steps that require root or work only on particular devices. A user writes or downloads one, renames it to `hooks.sh` and places it beside the backup script. Hooks are not loaded automatically; the script asks permission before touching them. That prompt is a control, not a sandbox. The README explicitly warns that an untrusted hook has the same access to the phone and computer as Open Android Backup and could backdoor or wipe a device.

For hook developers, the documented convention is to store files under `./backup-tmp/Hooks/<hook name>/` and create the directory first. A restore hook is expected to inspect the extracted archive, where backups are extracted to `./backup-tmp`, before acting. These conventions couple custom scripts to the project's temporary directory and restore lifecycle. They are useful for device-specific procedures, but they also make backup creation dependent on third-party shell code that reviewers must inspect.

The repository was not archived, and the last push was on 2026-09-13. Recent stable releases include `v1.2.3` on 2026-04-11, `v1.2.2` on 2026-01-24 and `v1.2.0` on 2025-08-23. That history indicates recent project activity, but it does not establish a fixed support period. Upgrading requires choosing a release bundle and reviewing changes between tags, especially if hooks or extracted archive layouts depend on project conventions. The project is licensed under `GPL-3.0`; distributors and integrators should examine the license text for their specific use and distribution model.

Why Open Android Backup Differs from Vendor and Full-Image Tools

The closest alternative is a vendor-provided device transfer or cloud backup service. Those products commonly present a guided migration interface and may handle categories through operating-system integrations that a standalone script cannot access. Open Android Backup instead produces local files through ADB, keeps the workflow cross-platform and stores data in standard archives that 7-Zip can inspect. Its tradeoff is narrower coverage. App data is absent, SMS export omits MMS attachments, and SMS and call logs are view-only.

A second alternative is a root-based backup tool that attempts deeper filesystem extraction. That approach may reach data outside the project's documented scope, but it adds root requirements and device-specific risk. Open Android Backup explicitly avoids root. Its companion app is used for data that is not normally accessible through ADB, but the README does not claim unrestricted filesystem capture. Users who need every application database, every message attachment or a byte-for-byte device image should not treat this project as a replacement for those deeper backup methods.

The format decision is also a practical difference. Standard 7-Zip archives, CSV exports, vCard files and text files can outlive the originating script, but they may require manual conversion or inspection rather than a single universal restore button. Open Android Backup is most appropriate when local ownership, documented exclusions and selective restoration matter more than exhaustive capture.

Editorial conclusion

Open Android Backup fits users who need local, non-vendor-controlled archives for apps, contacts and internal files, and who can accept the stated restore boundaries. It is unsuitable for complete app-state recovery or SMS archiving with attachments. Before adoption, verify that `adb backup` is authorized on the device, review the release bundle and hooks, and confirm that the requested data categories match the project's documented exclusions.

Frequently asked questions

Does Open Android Backup require root?

No. The project states that it backs up Android devices without root, although a user-supplied hook may add device-specific steps that require root.

Can Open Android Backup restore app data, SMS messages and call logs?

Apps can be restored, but their data is not included because of system limitations. SMS messages and call logs are exported for viewing, but they cannot currently be restored, and MMS attachments are not saved.

Are Open Android Backup archives encrypted?

The README states that backups and their metadata are encrypted. Data is also compressed with 7-Zip, with configurable compression settings.

Which platforms does Open Android Backup support?

The project documents Linux, macOS and Windows. Windows uses WSL during setup and a supplied PowerShell entry script, while macOS requires Homebrew and a newer Bash at `/opt/homebrew/bin/bash`.

Official sources

  1. License: GPL-3.0
  2. mrrfv/open-android-backup on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mrrfv-open-android-backup.svg)](https://hysenlabs.com/projects/mrrfv-open-android-backup)

Was this useful?