2019-10-29 02:57:47 +01:00
# Seedvault
2024-04-11 22:11:41 +02:00
[![Build ](https://github.com/seedvault-app/seedvault/actions/workflows/build.yml/badge.svg )](https://github.com/seedvault-app/seedvault/actions/workflows/build.yml)
2018-11-14 00:12:05 +01:00
2017-09-21 04:42:15 +02:00
A backup application for the [Android Open Source Project ](https://source.android.com/ ).
2021-08-28 14:40:07 +02:00
If you are having an issue/question, please look at our [FAQ ](../../wiki/FAQ ).
2021-03-05 18:05:04 +01:00
## Components
* [Local Contacts Backup ](contactsbackup ) - an app that backs up local on-device contacts
* [Storage library ](storage ) - a library handling efficient backup of files
* [Seedvault app ](app ) - the main app where all functionality comes together
2017-10-13 04:56:47 +02:00
## Features
2019-11-30 20:32:39 +01:00
- 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.
2017-10-13 04:56:47 +02:00
2020-07-27 10:48:15 +02:00
## Requirements
2020-09-17 14:06:48 +02:00
2022-09-13 19:53:10 +02:00
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
2023-10-07 21:00:19 +02:00
- This current branch `android14` is meant for usage with Android 14
- This is indicated by the version name starting with `14` , and the version code starting with `34` - the Android 14 API version
2020-09-17 14:06:48 +02:00
2021-04-19 23:28:37 +02:00
For older versions of Android, check out [the branches ](https://github.com/seedvault-app/seedvault/branches ).
2020-07-27 10:48:15 +02:00
2022-09-13 19:53:10 +02:00
Trying to use an older branch on a newer version may lead to issues and is not something we can support.
2017-10-13 04:56:47 +02:00
## Getting Started
2021-04-19 23:28:37 +02:00
- Check out [the wiki ](https://github.com/seedvault-app/seedvault/wiki ) for information on building the application with
2017-10-13 04:56:47 +02:00
AOSP.
2017-11-09 06:08:29 +01:00
## What makes this different?
2019-12-20 17:55:38 +01:00
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.
2017-10-13 05:54:55 +02:00
2019-06-12 14:19:38 +02:00
## Permissions
2019-11-30 20:32:39 +01:00
* `android.permission.BACKUP` to back up application data.
2020-10-19 20:44:36 +02:00
* `android.permission.ACCESS_NETWORK_STATE` to check if there is internet access when network storage is used.
2019-11-30 20:32:39 +01:00
* `android.permission.MANAGE_USB` to access the serial number of USB mass storage devices.
2020-09-02 19:37:02 +02:00
* `android.permission.WRITE_SECURE_SETTINGS` to change system backup settings and enable call log backup.
2020-09-10 14:26:55 +02:00
* `android.permission.QUERY_ALL_PACKAGES` to get information about all installed apps for backup.
2019-12-20 17:55:38 +01:00
* `android.permission.INSTALL_PACKAGES` to re-install apps when restoring from backup.
2021-01-19 13:14:52 +01:00
* `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.
2023-10-07 20:50:26 +02:00
* `android.permission.FOREGROUND_SERVICE_DATA_SYNC` to do periodic storage backups without interruption.
2020-10-21 22:19:30 +02:00
* `android.permission.MANAGE_DOCUMENTS` to retrieve the available storage roots (optional) for better UX.
2021-08-11 11:54:28 +02:00
* `android.permission.USE_BIOMETRIC` to authenticate saving a new recovery code
2021-06-30 03:33:25 +02:00
* `android.permission.INTERACT_ACROSS_USERS_FULL` to use storage roots in other users (optional).
2022-08-23 15:59:37 +02:00
* `android.permission.POST_NOTIFICATIONS` to inform users about backup status and errors.
2019-06-12 14:19:38 +02:00
2019-11-30 20:32:39 +01:00
## Contributing
2021-01-11 20:38:46 +01:00
Bug reports and pull requests are welcome on GitHub at https://github.com/seedvault-app/seedvault.
2020-09-24 20:45:59 +02:00
2023-09-10 04:25:36 +02:00
See [DEVELOPMENT.md ](app/development/DEVELOPMENT.md ) for information on developing Seedvault locally.
2020-09-24 20:45:59 +02:00
This project aims to adhere to the [official Kotlin coding style ](https://developer.android.com/kotlin/style-guide ).
2019-06-12 14:19:38 +02:00
2020-10-05 15:41:07 +02:00
## Third-party tools
2021-09-02 14:29:05 +02:00
> **⚠ 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.
2020-10-05 15:41:07 +02:00
The [Seedvault backup parser ](https://github.com/tlambertz/seedvault_backup_parser )
2023-05-19 15:07:16 +02:00
allows you to decrypt and inspect your backups (version 0 backup).
2020-10-05 15:41:07 +02:00
It can also re-encrypt them.
2023-05-19 15:07:16 +02:00
The [Seedvault extractor ](https://github.com/jackwilsdon/seedvault-extractor )
allows you to decrypt and inspect your backups from newer versions of Seedvault (version 1 backup).
It is currently work-in-progress.
2017-09-21 04:42:15 +02:00
## License
2019-12-23 02:20:12 +01:00
This application is available as open source under the terms of the [Apache-2.0 License ](https://opensource.org/licenses/Apache-2.0 ).
2023-03-06 18:42:21 +01:00
## Funding
### Calyx Institute
This project is primarily developed and maintained by the [Calyx Institute ](https://calyxinstitute.org/ )
for usage in [CalyxOS ](https://calyxos.org/ ).
### NGI0 PET Fund
This project was funded through the [NGI0 PET Fund ](https://nlnet.nl/project/Seedvault/ ),
a fund established by [NLnet ](https://nlnet.nl )
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.