New in version 0.3.0
* Retention only removes a profile's own snapshots now. It used to match
any snapshot carrying the profile's name, so a repository shared with a
desktop could have its history pruned by the phone.
* New: count tag combinations separately, keeping a backup you start by
hand apart from a scheduled one.
* Snapshot times are shown in this device's time zone, not UTC.
* A failed configuration write can no longer leave the file missing.
* Scheduling background activity fixes.
ResticDroid backs your phone up with restic, the open-source backup program, to
storage you control: Backblaze B2, S3-compatible object storage, a REST server,
or a folder on an SD card. Everything is encrypted and deduplicated on
the device before it is sent, so the storage provider only ever holds
ciphertext.
The restic binary is compiled from source as part of the F-Droid build and runs
as a child process. The snapshots it writes are ordinary restic snapshots: you
can open them with restic on a desktop, and nothing about them depends on this
app. If ResticDroid disappears tomorrow, your backups do not become unreadable.
Backup profiles
A profile says what to back up, where to send it, and when. Start from one of
the ready-made sets — photos and media, documents and downloads, installed apps,
or all of shared storage — and adjust it.
Conditions for scheduled runs
Only while charging. Only on an unmetered network. Only on Wi-Fi networks you
name. Only above a battery level you choose. These become system constraints, so
the phone is not woken up to discover it cannot run.
Repositories
Backblaze B2, S3 and S3-compatible services, Azure Blob Storage, Google Cloud
Storage, OpenStack Swift, a restic REST server, or a local folder. Create a new
repository from the app, or point it at one that already exists.
SFTP and rclone are not offered: restic implements those by running the "ssh"
and "rclone" programs, which Android does not have. Use a REST server or an
S3-compatible gateway instead.
Security
Repository passwords and API keys live in the Android keystore, hardware-backed
on devices that have a secure element, and never appear in the configuration
files. Backups and restores that you start yourself can be gated behind your
fingerprint, or the repository password. Scheduled runs are not prompted, because a backup
that waits for a fingerprint at 3am is a backup that does not happen.
Configuration you can read
Everything you configure is plain text under /storage/emulated/0/ResticDroid -
one file per profile, one per repository. Edit it in any text editor, over USB
or on the phone, and the app picks the change up immediately. There is no
database, and nothing to import or export.
No recursive backups
A repository stored on the device is excluded from every backup automatically,
whether or not it is the one being written to. You do not have to remember to
write that rule yourself.
What it does not do
App data cannot be backed up without root, and ResticDroid does not use root or
pretend otherwise. It backs up the APKs of apps you installed, so a new phone
can be rebuilt, but their data stays where it is.
Privacy
No analytics, no crash reporting, no advertising identifiers, no Google Play
services. The app connects to nothing except the repositories you configure.
Donate
Versions
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.
Download F-Droid
-
x86_64
This version requires Android 8.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
access location in the background
This app can access location at any time, even while the app is not in use.
-
access approximate location only in the foreground
This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
-
access precise location only in the foreground
This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "dataSync"
Allows the app to make use of foreground services with the type "dataSync"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
android.permission.MANAGE_EXTERNAL_STORAGE
-
show notifications
Allows the app to show notifications
-
query all packages
Allows an app to see all installed packages.
-
read the contents of your shared storage
Allows the app to read the contents of your shared storage.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
use biometric hardware
Allows the app to use biometric hardware for authentication
-
use fingerprint hardware
Allows the app to use fingerprint hardware for authentication
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
modify or delete the contents of your shared storage
Allows the app to write the contents of your shared storage.
-
io.github.jayxt.resticdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
15 MiB
PGP Signature
|
Build Log
-
arm64-v8a
This version requires Android 8.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
access location in the background
This app can access location at any time, even while the app is not in use.
-
access approximate location only in the foreground
This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
-
access precise location only in the foreground
This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "dataSync"
Allows the app to make use of foreground services with the type "dataSync"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
android.permission.MANAGE_EXTERNAL_STORAGE
-
show notifications
Allows the app to show notifications
-
query all packages
Allows an app to see all installed packages.
-
read the contents of your shared storage
Allows the app to read the contents of your shared storage.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
use biometric hardware
Allows the app to use biometric hardware for authentication
-
use fingerprint hardware
Allows the app to use fingerprint hardware for authentication
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
modify or delete the contents of your shared storage
Allows the app to write the contents of your shared storage.
-
io.github.jayxt.resticdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
14 MiB
PGP Signature
|
Build Log
-
armeabi-v7a
This version requires Android 8.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
access location in the background
This app can access location at any time, even while the app is not in use.
-
access approximate location only in the foreground
This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
-
access precise location only in the foreground
This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "dataSync"
Allows the app to make use of foreground services with the type "dataSync"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
android.permission.MANAGE_EXTERNAL_STORAGE
-
show notifications
Allows the app to show notifications
-
query all packages
Allows an app to see all installed packages.
-
read the contents of your shared storage
Allows the app to read the contents of your shared storage.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
use biometric hardware
Allows the app to use biometric hardware for authentication
-
use fingerprint hardware
Allows the app to use fingerprint hardware for authentication
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
modify or delete the contents of your shared storage
Allows the app to write the contents of your shared storage.
-
io.github.jayxt.resticdroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
15 MiB
PGP Signature
|
Build Log