A backup application for the Android Open Source Project.
Find a file
Torsten Grote e2f0d19f77
Pretend to make successful @pm@ backup when no backup is possible
This is the same behavior as Google backup when it has no internet connection and after extensive research the only option we can keep the system from considering the backup state to be compromised.

K/V backups are run at least every day, no matter what backup interval we set in settings and when they run, we don't get asked before, if now is a good time for backups. So we need to fake an OK for @pm@ backup and can error out afterwards without compromising state.
2020-10-23 07:33:59 -03:00
.idea Android Studio 4.1 and changes to test files 2020-10-22 08:00:54 -03:00
app Pretend to make successful @pm@ backup when no backup is possible 2020-10-23 07:33:59 -03:00
contactsbackup Add backup of local contacts as an extra APK 2020-10-22 08:29:23 -03:00
gradle Fix dependency issues by strictly requiring specific versions 2020-10-07 19:01:39 +05:30
libs Remove 'host_supported: true' from Android.bp files 2020-10-07 19:01:39 +05:30
.editorconfig Enable automatic coding style linting with ktlint (also on CI) 2020-10-07 19:44:05 +05:30
.gitignore Enable automatic coding style linting with ktlint (also on CI) 2020-10-07 19:44:05 +05:30
.travis.yml Also complile the instrumentation test sources in CI 2020-10-13 16:07:18 -03:00
Android.bp Add backup of local contacts as an extra APK 2020-10-22 08:29:23 -03:00
build.gradle Android Studio 4.1 and changes to test files 2020-10-22 08:00:54 -03:00
CHANGELOG.md Version bump - 1.0.0 2020-03-07 15:41:49 -05:00
gradle.properties Upgrade gradle 2020-09-11 19:04:38 +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
permissions_com.stevesoltys.seedvault.xml Re-install backed-up APKs before restoring from backup 2020-01-14 07:45:37 -03:00
README.md Request backoff when asked to backup to network storage while no internet available 2020-10-23 07:33:58 -03:00
settings.gradle Add backup of local contacts as an extra APK 2020-10-22 08:29:23 -03:00
whitelist_com.stevesoltys.seedvault.xml Rebrand application as 'Seedvault' 2019-10-28 21:57:47 -04:00

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 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_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 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.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/stevesoltys/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.