A backup application for the Android Open Source Project.
Find a file
Torsten Grote ba6dc2ff91
Merge pull request #553 from seedvault-app/feature/e2e-test
Add end-to-end emulator test running on CI
2023-09-25 07:27:26 -03:00
.github/workflows Update possible github actions 2023-08-03 01:14:16 +08:00
.idea Add end-to-end emulator test running on CI 2023-09-14 18:11:45 +00:00
.reuse Make contactsbackup REUSE compliant 2023-03-09 02:42:03 +05:30
app Switch ANDROID_SDK_HOME to ANDROID_HOME 2023-09-22 04:12:53 +00:00
contactsbackup Drop packageName from manifests for tests 2023-08-03 00:08:57 +08:00
gradle Add end-to-end emulator test running on CI 2023-09-14 18:11:45 +00:00
libs Upgrade more dependencies for Android 13 2022-08-23 11:44:18 -03:00
LICENSES Make storage REUSE compliant 2023-03-09 02:42:03 +05:30
storage Bump to AGP and Gradle 8.x 2023-08-03 00:56:59 +08:00
.cirrus.yml Address review comments, add screen recording, use test backup data 2023-09-14 18:11:45 +00:00
.editorconfig Improve .editorconfig setup 2021-08-25 18:24:53 +03:00
.gitignore Add .idea copyright configuration 2023-03-09 02:42:03 +05:30
allowlist_com.stevesoltys.seedvault.xml Android.bp: whitelist -> allowlist 2022-09-14 00:10:44 +05:30
Android.bp Properly pre-grant notification permission 2022-09-14 00:10:44 +05:30
build.gradle Bump to AGP and Gradle 8.x 2023-08-03 00:56:59 +08:00
CHANGELOG.md Bump version to 13-3.3 2023-01-11 19:23:02 +05:30
default-permissions_com.stevesoltys.seedvault.xml Pre-grant ACCESS_MEDIA_LOCATION permission 2023-01-06 00:15:03 +05:30
gradle.properties Add end-to-end emulator test running on CI 2023-09-14 18:11:45 +00:00
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 Add newline at the end of all files 2021-08-25 18:25:00 +03: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 Update permissions for log feature 2022-12-01 06:23:35 +05:30
README.md Add support for local development with an emulator 2023-09-14 17:33:30 +00:00
settings.gradle Add end-to-end emulator test running on CI 2023-09-14 18:11:45 +00:00

Seedvault

Build

A backup application for the Android Open Source Project.

If you are having an issue/question, please look at our FAQ.

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

SeedVault is developed alongwith AOSP releases

We update it every time Google releases a new Android version, make any changes required for basic functionality, and any improvements possible through API changes in the OS.

This means that for ROMs using SeedVault it's recommended to use the same branch as your android version

  • This current branch android13 is meant for usage with Android 13
  • This is indicated by the version name starting with 13, and the version code starting with 33 - the Android 13 API version

For older versions of Android, check out the branches.

Trying to use an older branch on a newer version may lead to issues and is not something we can support.

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.
  • android.permission.USE_BIOMETRIC to authenticate saving a new recovery code
  • android.permission.INTERACT_ACROSS_USERS_FULL to use storage roots in other users (optional).
  • android.permission.POST_NOTIFICATIONS to inform users about backup status and errors.

Contributing

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

See DEVELOPMENT.md for information on developing Seedvault locally.

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

Third-party tools

⚠ WARNING: the Seedvault developers make no guarantees about external software projects. Please be aware that disclosing your secret recovery key to other software has security risks.

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

The Seedvault extractor allows you to decrypt and inspect your backups from newer versions of Seedvault (version 1 backup). It is currently work-in-progress.

License

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

Funding

Calyx Institute

This project is primarily developed and maintained by the Calyx Institute for usage in CalyxOS.

NGI0 PET Fund

This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310.