Clean up backup transport initialization logic

This commit makes creating new RestoreSets explicit.
Initializing a backup transport now actually cleans its data as the AOSP
documentation demands. This should be fine as we usually do a fresh
backup after a new initialization.
Contrary to before, an initialization does not create new RestoreSets
anymore, but works within the existing set. For now, only manually
choosing a new storage location creates a new RestoreSet.
26 files changed
tree: a08dfd39ea23f7e830950a6a93f0a8a4cfcc26b0
  1. .idea/
  2. app/
  3. gradle/
  4. .gitignore
  5. .travis.yml
  6. Android.mk
  7. build.gradle
  8. CHANGELOG.md
  9. deploy-prebuilt.sh
  10. gradle.properties
  11. gradlew
  12. gradlew.bat
  13. LICENSE
  14. permissions_com.stevesoltys.seedvault.xml
  15. README.md
  16. settings.gradle
  17. whitelist_com.stevesoltys.seedvault.xml
README.md

Seedvault

Build Status

A backup application for the Android Open Source Project.

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 10

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.MANAGE_DOCUMENTS to retrieve the available storage roots.
  • android.permission.MANAGE_USB to access the serial number of USB mass storage devices.
  • android.permission.WRITE_SECURE_SETTINGS to change system backup settings.
  • android.permission.INSTALL_PACKAGES to re-install apps when restoring from backup.

Contributing

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

License

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