If an app being restored was originally installed with F-Droid Basic,
try to install it using F-Droid Basic again.
Change-Id: Ib067389ba20d74596892e24efd561ab2918d62cb
Restore app data in smaller batches when performing a full restoration
from a backup set, to prevent a Binder exception that causes the
process to fail entirely.
Android may encounter this exception when trying to call the
transport.startRestore() method if too many packages are involved; in
testing, 300 is an example of too many. Instead of using
IRestoreSession.restoreAll(), use restorePackages() and provide the
package names in batches of 100.
This issue reveals itself when using SeedVault with the D2D patch and
with an OS, such as stock Pixel OS, that includes an abundance of
packages. (Prior to this patch, the call to restoreAll() meant that the
framework would request data restoration for all packages installed,
even if they were not in the metadata.)
In logs, this issue appears as follows:
```
I BackupManagerService: Full restore; asking about 300 apps
W BpBinder: Large outgoing transaction of 528540 bytes, interface descriptor <uncached descriptor>, code 14
E JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 528540)
E BackupManagerService: Unable to contact transport for restore: data parcel size 528540 bytes
```
Change-Id: Ibb5bb4572d9e873beccd6056da5fe3ae4dce71c2
Bip39ComparisionTest was run before and after upgrading org.bitcoinj:bitcoinj-core to latest version to ensure that kotlin-bip39 is still behaving the same.
A small tweak in WordListTest was needed because WorldList constructor was made internal.
* Pre-34, this was marked as @hide and @TestApi
* We were using it as a system app with hidden APIs allowed,
and having added the framework android.jar to gradle
* 91fa0b1298
made it public, so lint now complains. Silence that.
Change-Id: I5a1ec9847a25a0798726af3867d7660db1528a00
When `android.permission.MANAGE_DOCUMENTS` is not granted, Seedvault
prompts to select a storage location. Do not insist on resolving the
storage's actual root, as it will likely (or perhaps always) fail.
Use a fake storage root as is done for USB and app-based options.
Known issues:
* Selected location is assumed not to be USB and not to require
network access in its storage options.
Change-Id: I357b4c68673d71c087be41e9c94c2841c1d6658e
* We've had a love/hate relationship with the combination of
SAF + Nextcloud app + Nextcloud server
* SAF is quite limiting, and that causes it's own issues
* On top of that, Nextcloud app has it's own issues. We've
even sent patches for some things, but there's only so much one can do
https://github.com/nextcloud/android/pulls?q=is%3Apr+author%3Agrote
* With the DAVx5 WebDAV support, it seems to work better.
* However, most recently a server side change broke things entirely, with either apps
https://github.com/seedvault-app/seedvault/issues/490#issuecomment-1368032414
* Due of all of this, it just leads to a bad backup experience.
As such, let's just say this is not recommended at all entirely
* Hopefully in the future we'll be able to support more options
Change-Id: I0b46dd11df7c31606131bf311583fe4777536463
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (179 of 179 strings)
Co-authored-by: 이정희 <daemul72@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ko/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ko/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (1 of 1 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/gl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/gl/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (French)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Maxime Leroy <lisacintosh@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: kbci_wcn <kbci_wcn@aleeas.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ca/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ca/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Russian)
Currently translated at 98.8% (177 of 179 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Егор Ермаков <eg.ermakov2016@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ru/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Czech)
Currently translated at 97.2% (174 of 179 strings)
Translated using Weblate (Czech)
Currently translated at 96.6% (173 of 179 strings)
Translated using Weblate (Czech)
Currently translated at 99.4% (169 of 170 strings)
Co-authored-by: Micovec <jiri.vokrinek@email.cz>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/cs/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/cs/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/el/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Óscar Fernández Díaz <oscfdezdz@tuta.io>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/zh_Hans/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/he/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (German)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (German)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (German)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: nautilusx <translate@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/de/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/tr/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
* We already pre-fill the code on debug builds to make testing easier
* Allow screenshots too so we don't have to note down the code right away
when testing
Change-Id: Ie9cc3080616b78a6e5f9b427c080f10c146a036d
MR #151 implemented a fallback if MANAGE_DOCUMENTS is not granted,
which falls back to show a file chooser to the user to manually
select the storage root.
Document this behavior in the manifest as well, as the permission
causes some certification tests to fail (#453).
Change-Id: I3271b7969aacc014349766a022f13a00bea9ff85
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
additionally adding a test to ensure the storage provider is excluded.
Otherwise, when the storage provider (i.e. DAVx5 or Nextcloud) is installed,
it will be terminated, and the restoration process will be interrupted.
Change-Id: Ic1be201b673d718b416009ff61f5d975c89b6a62
* Pressing "Backup now" should not just ignore you when it's not actually
enabled
* Add a toast message telling you it's not enabled
Fixes: #390
Change-Id: I5d698a244652e094b0acfc42cdea017a0af9a20b
* New SetupWizard uses external/setupdesign (sud) and
external/setupcompat (suc) to achieve the desired looks
* It prevents proper previews when included in any app, though, so
we better try achieving the same by manually styling the activities
for 12
* This patch mimics the design by applying styles similar to the ones
from sud, sometimes reusing parts taken from there
Change-Id: Iccf588e5239aeb00645f97b095910986f32c52d0
By default, Android exposes USB devices only to the main user.
In order to query, read and write to it, the signature permission INTERACT_ACROSS_USERS_FULL (optional) is granted to create Seedvault's context as the system user.
Issue: calyxos#437
Issue: https://github.com/seedvault-app/seedvault/issues/77
Change-Id: I0b1b4c8c5aeeb226419ff94e15f631ebe1db66df
Currently translated at 100.0% (16 of 16 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 87.5% (148 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 80.4% (136 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 71.0% (120 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 20.7% (35 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 15.3% (26 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 5.9% (10 of 169 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1 of 1 strings)
Translated using Weblate (Catalan)
Currently translated at 4.7% (8 of 169 strings)
Co-authored-by: kbci_wcn <kbci_wcn@aleeas.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ca/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/ca/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ca/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
Currently translated at 99.4% (168 of 169 strings)
Translated using Weblate (French)
Currently translated at 97.6% (165 of 169 strings)
Co-authored-by: Armand LB <armandleborgne@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
Currently translated at 98.8% (167 of 169 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (16 of 16 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 43.7% (7 of 16 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1 of 1 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.8% (167 of 169 strings)
Co-authored-by: Gabriel Cardoso <g.cardoso@mailfence.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/pt_BR/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1 of 1 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (164 of 164 strings)
Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/zh_Hans/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (164 of 164 strings)
Co-authored-by: Óscar Fernández Díaz <oscfdezdz@tuta.io>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (164 of 164 strings)
Translated using Weblate (Hebrew)
Currently translated at 95.7% (157 of 164 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translation: CalyxOS/Seedvault
Currently translated at 100.0% (169 of 169 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (16 of 16 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (164 of 164 strings)
Added translation using Weblate (Greek)
Translated using Weblate (Greek)
Currently translated at 100.0% (1 of 1 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (164 of 164 strings)
Added translation using Weblate (Greek)
Translated using Weblate (Greek)
Currently translated at 99.3% (163 of 164 strings)
Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/el/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (160 of 160 strings)
Co-authored-by: Eric <spice2wolf@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
Change-Id: I61376609ee1b59f103fa469790127ae36c4fc47a
Currently translated at 100.0% (160 of 160 strings)
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translation: CalyxOS/Seedvault
Change-Id: I509a1c362e1e96e5ac4967e00071b286c675178d
On Android 11 this worked fine, but on Android 12 onStart() happens before activity results get delivered. We finish the activity when receiving a cancelled result. However, when onStart() gets called before we know the result, we relaunch an activity required for provisioning again instead of finishing.
* Bump version following versioning scheme
* 3.0 now following new backup format
* Add initial entry to changelog
Change-Id: Ifca1b3feac0f510890450a1999b42897894d58ee
Before, we were faking a backup and just returned true, but remembering that next time, we need to do a fresh non-incremental @pm@ backup.
Now, we backup to local cache, but don't upload it. On next run, when we can do backups again, we will upload the updated cache. This simplifies things and reduces the special logic required.
This will only hide installed apps from naive attackers as the APKs are still not encrypted and even then other attacks would be possible.
However, it allows us to simplify our storage plugin API.
We ask the user to generate a new key, because actively asking for the old one is training bad security habits, but technically verifying the old key will also work.
* 'master' of https://github.com/seedvault-app/seedvault: (50 commits)
Bump version to 11-2.2
Changelog: Update till 11-2.1
Restrict exported components
Allow launching restore through a dialer code
Add expert settings with an option for unlimited quota
Prevent screenshots of recovery code
Use clearer more generic strings
Ask for system authentication before storing a new recovery code
Split up validating, verifying and storing of recovery code
Disable Nextcloud restore when not installed and no store available
Disable spell-checker on recovery code input
Add warning for third-party tools to README
document potential information leakage through the long-lived SQL caches
Provide an overview over key derivations
Compares kotlin-bip39 library with bitcoinj library
Link FAQ in Readme to make it more discoverable
Move LocalContactsBackup to product partition
Add newline at the end of all files
Improve .editorconfig setup
Don't backup on metered networks
...
Conflicts:
app/src/main/res/values-de/strings.xml
app/src/main/res/values-es/strings.xml
app/src/main/res/values-pt/strings.xml
app/src/main/res/values-zh-rCN/strings.xml
Conflicts resolved by simply checking out translations from android11,
since they are not modified in master at all.
Change-Id: I0a83c72dbc78b38985b46f9b75ce92e27acd2e03