A backup application for the Android Open Source Project.
bc24c7804d
* We better not overuse metered networks as such connections * are usually sensitive to heavy data usage due to monetary costs and/or data limitations. |
||
---|---|---|
.github/workflows | ||
.idea | ||
app | ||
contactsbackup | ||
gradle | ||
libs | ||
storage | ||
.editorconfig | ||
.gitignore | ||
Android.bp | ||
build.gradle | ||
CHANGELOG.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
logcat-verbose.sh | ||
permissions_com.stevesoltys.seedvault.xml | ||
README.md | ||
settings.gradle | ||
whitelist_com.stevesoltys.seedvault.xml |
Seedvault
A backup application for the Android Open Source Project.
Components
- Local Contacts Backup - an app that backs up local on-device contacts
- Storage library - a library handling efficient backup of files
- Seedvault app - the main app where all functionality comes together
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.