A backup application for the Android Open Source Project.
Find a file
Torsten Grote 1ff8e54748 Re-initialize backup location when changing recovery code
* delete all storage backups for current user
* clears the storage backup cache
* start a new app data restore set and initializes it

The reason is that old backups won't be readable anymore with the new key. We also can't delete other backups safely as we did before, because we can't be sure that they don't belong to a different device or user.
2021-07-05 20:08:29 +05:30
.github/workflows Move CI to GitHub Actions 2020-11-10 16:34:40 -05:00
.idea Upgrade gradle and test libraries 2021-07-05 20:08:29 +05:30
app Re-initialize backup location when changing recovery code 2021-07-05 20:08:29 +05:30
contactsbackup Add storage library (and demo app) 2021-07-05 20:08:29 +05:30
gradle Upgrade gradle and test libraries 2021-07-05 20:08:29 +05:30
libs Remove 'host_supported: true' from Android.bp files 2020-10-07 19:01:39 +05:30
storage Allow using the same storage location on different devices or user profiles 2021-07-05 20:08:29 +05:30
.editorconfig Enable automatic coding style linting with ktlint (also on CI) 2020-10-07 19:44:05 +05:30
.gitignore Add user dictionary to repo for spellchecker 2021-07-05 20:08:29 +05:30
Android.bp Add storage library (and demo app) 2021-07-05 20:08:29 +05:30
build.gradle Upgrade gradle and test libraries 2021-07-05 20:08:29 +05:30
CHANGELOG.md Switch all text references to github.com/seedvault-app 2021-04-20 03:59:01 +05:30
gradle.properties Add storage library (and demo app) 2021-07-05 20:08:29 +05:30
gradlew Add experimental support for standalone builds 2018-11-07 22:04:37 -05:00
gradlew.bat Add experimental support for standalone builds 2018-11-07 22:04:37 -05:00
LICENSE Update license to Apache-2.0 2019-12-22 20:20:19 -05:00
logcat-verbose.sh Add script to turn on verbose logging for backup related tags 2020-10-23 07:37:16 -03:00
permissions_com.stevesoltys.seedvault.xml Add storage library (and demo app) 2021-07-05 20:08:29 +05:30
README.md add READMEs and tie them together in main README 2021-07-05 20:08:29 +05:30
settings.gradle Add storage library (and demo app) 2021-07-05 20:08:29 +05:30
whitelist_com.stevesoltys.seedvault.xml Make MANAGE_DOCUMENTS permission optional 2020-10-23 07:37:16 -03:00

Seedvault

Build

A backup application for the Android Open Source Project.

Components

Features

  • Backup application data to a flash drive.
  • Restore application data from a flash drive.
  • User-friendly encryption using a mnemonic phrase (BIP39).
  • Automatic daily backups that run in the background.

Requirements

  • Android 11

For older versions of Android, check out the branches.

Getting Started

  • Check out the wiki for information on building the application with AOSP.

What makes this different?

This application is compiled with the operating system and does not require a rooted device for use. It uses the same internal APIs as adb backup which is deprecated and thus needs a replacement.

Permissions

  • android.permission.BACKUP to back up application data.
  • android.permission.ACCESS_NETWORK_STATE to check if there is internet access when network storage is used.
  • android.permission.MANAGE_USB to access the serial number of USB mass storage devices.
  • android.permission.WRITE_SECURE_SETTINGS to change system backup settings and enable call log backup.
  • android.permission.QUERY_ALL_PACKAGES to get information about all installed apps for backup.
  • android.permission.INSTALL_PACKAGES to re-install apps when restoring from backup.
  • android.permission.MANAGE_EXTERNAL_STORAGE to backup and restore files from device storage.
  • android.permission.ACCESS_MEDIA_LOCATION to backup original media files e.g. without stripped EXIF metadata.
  • android.permission.FOREGROUND_SERVICE to do periodic storage backups without interruption.
  • android.permission.MANAGE_DOCUMENTS to retrieve the available storage roots (optional) for better UX.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/seedvault-app/seedvault.

This project aims to adhere to the official Kotlin coding style.

Third-party tools

The Seedvault backup parser allows you to decrypt and inspect your backups. It can also re-encrypt them.

License

This application is available as open source under the terms of the Apache-2.0 License.