Commit graph

610 commits

Author SHA1 Message Date
Torsten Grote
392809274c
Merge pull request #563 from seedvault-app/bugfix/binder-exception-too-many-packages
Fix binder exception when restoring a large number of applications
2023-11-27 08:43:08 -03:00
Steve Soltys
b498dab9b1 Apply latest code review suggestions 2023-11-26 14:51:49 -05:00
Oliver Scott
97d2d18a73
fixup! Allow secondary user backup to USB
Issue: calyxos#1058
Change-Id: I4aaadef5954e9c091f7048bffd8e0ed700fdd2e6
2023-11-01 17:19:17 -04:00
Steve Soltys
b1a2c6d4cf Apply code review suggestions 2023-11-01 00:10:00 -04:00
Steve Soltys
6c7afd5f55 Fix binder exception when restoring a large number of applications 2023-10-31 21:38:36 -04:00
t-m-w
a091142a3f Allow restoring data for a greater number of apps
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
2023-10-31 21:38:36 -04:00
Steve Soltys
8297bb7087 Fix and improve E2E tests 2023-10-17 21:24:38 -04:00
Torsten Grote
cb95444ad4
Bump minSdk to 33 and upgrade unit test dependencies 2023-10-10 15:44:53 -03:00
Torsten Grote
74566b902a
Upgrade kotlin-bip39-jvm to 1.0.6
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.
2023-10-10 15:44:52 -03:00
Torsten Grote
bc90378edf
Merge pull request #579 from seedvault-app/staging/android14-bp
Get app working in Android 14, built via Android.bp
2023-10-10 15:42:29 -03:00
Chirayu Desai
6cb3b30b84
restore: Runtime-registered broadcasts receivers must specify export behavior
See: https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported
Change-Id: I6f80a060370a0b202c277924ea8cbf565bc29d6e
2023-10-10 12:08:19 -03:00
Chirayu Desai
aa0e82cfca ApkInstaller: Supress NewApi for
* 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
2023-10-09 00:16:15 +05:30
Steve Soltys
bf5dc1958c Switch to GitHub actions for E2E tests 2023-10-09 00:01:26 +05:30
Chirayu Desai
fcdacf22a7 14: Add new permission FOREGROUND_SERVICE_DATA_SYNC
* Android.bp build means we get set to targetSdk 34 already

Fixes: Starting FGS with type dataSync targetSDK=34 requires permissions
See: https://developer.android.com/about/versions/14/changes/fgs-types-required#data-sync
Change-Id: I69932d778e870535522e08dff131f1bb1d128955
2023-10-08 00:39:29 +05:30
Chirayu Desai
e6f32510d5 Bump version to 14-3.3
* Android 14 is here!

Change-Id: Ic4249bb1d2a3ac03011f5b7608534ecd526e99c6
2023-10-08 00:39:29 +05:30
Michael Bestas
a83e36634c seedvault: Enable monochrome icon
Just use foreground icon for now
2023-09-26 02:36:50 +05:30
Michael Bestas
09d6131a1c seedvault: Update app icon
* Regenerate in android studio as a single xml instead of png
* Remove roundIcon, this was only used on sdk 25
* Use device accent for icon background
2023-09-26 02:36:50 +05:30
Hosted Weblate
f30acd8b2d Import translations from Weblate
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: František Oboňa <frantisekobona@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Micovec <jiri.vokrinek@email.cz>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/cs/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/sk/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/uk/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2023-09-25 23:24:03 +05:30
Steve Soltys
6eaba0b87a Wait until storage location is initialized for e2e test 2023-09-25 22:52:01 +05:30
Steve Soltys
29bd71bcc9 Intercept and assert on application data in e2e test 2023-09-21 06:51:43 +00:00
Steve Soltys
04c5089113 Start recording screen again if we get cut off after 3 minutes 2023-09-14 18:42:22 +00:00
Steve Soltys
59cef31183 Address review comments, add screen recording, use test backup data 2023-09-14 18:11:45 +00:00
Steve Soltys
f1238977d0 Add end-to-end emulator test running on CI 2023-09-14 18:11:45 +00:00
Torsten Grote
1e69831244 Improving support for missing MANAGE_DOCUMENTS permission 2023-09-14 17:23:08 +00:00
t-m-w
208dbd6a60 Support a lack of MANAGE_DOCUMENTS permission
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
2023-09-14 17:22:50 +00:00
Aayush Gupta
4a31035585 Drop packageName from manifests for tests
Tests are Gradle-only and keeping this in manifest results in namespace collision
Ref: https://developer.android.com/build/configure-app-module#change-namespace-for-testing

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-08-03 00:08:57 +08:00
Michael Bestas
90c8a3fb12 Remove androidx.annotation.VisibleForTesting.PRIVATE usage
VisibleForTesting defaults to private anyway, fixes build in 13 QPR3.

Change-Id: Icdbbd63f1f0fde2148491feefbc7221e91590881
2023-06-14 15:37:50 +05:30
Hosted Weblate
5448ef8652 Import translations from Weblate
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Pander <pander@users.sourceforge.net>
Co-authored-by: Ram <airavatam@tutanota.com>
Co-authored-by: Yuya <yuyaj@tutanota.com>
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/ja/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/hr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/ml/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ml/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2023-05-27 04:02:43 +05:30
Hosted Weblate
8bea1be060 Import translations from Weblate
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/
Translation: CalyxOS/Seedvault
2023-03-29 19:49:31 +05:30
Hosted Weblate
80d3b0e880 Import translations from Weblate
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/
Translation: CalyxOS/Seedvault
2023-03-29 04:28:27 +05:30
Hosted Weblate
be5d2e0d53 Import translations from Weblate
Co-authored-by: Dan <denqwerta@gmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Leon Omelan <rozpierog@gmail.com>
Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Pander <pander@users.sourceforge.net>
Co-authored-by: Reikimann <krellegaming@gmail.com>
Co-authored-by: Tom Sawyer <translate@grymkoll.simplelogin.com>
Co-authored-by: Translator-3000 <weblate.m1d0h@8shield.net>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Zkdc <Zkdc2345@qq.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: gnu-ewm <gnu.ewm@protonmail.com>
Co-authored-by: nautilusx <translate@disroot.org>
Co-authored-by: slundi <slundi@gmail.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: Óscar Fernández Díaz <oscfdezdz@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/gl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/it/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_PT/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/sv/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/uk/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/da/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/nl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/nl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/pl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/pt/
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
2023-03-29 03:16:45 +05:30
Torsten Grote
9ae32a9bac Redesign About dialog 2023-03-10 00:07:24 +05:30
Michael Bestas
0e147786b4 Remove compatibility symlinks for weblate translations
Weblate uses the correct locales now
2023-03-09 04:00:02 +05:30
Chirayu Desai
23abc02d69 Disable screenshots on more recovery code screens
* Basically try to cover all screens that may have a recovery code

Fixes: #506
Change-Id: If0143b71596ff470a04982d8f87b7a622d362309
2023-01-20 23:21:16 +05:30
Chirayu Desai
eebeff90ff Bump version to 13-3.3
* Release early, release often

Change-Id: Id408dd7463a5c9a51dafea0e45cbda122ba26866
2023-01-11 19:23:02 +05:30
Chirayu Desai
ebed17ee58 Mark Nextcloud as not recommended
* 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
2023-01-11 19:19:41 +05:30
t-m-w
5d0aca1b49 Warn before turning off backups
Let the user know that turning off backups will require a new backup
set to be created.

Requires: https://github.com/seedvault-app/seedvault/pull/496

Change-Id: I22a1cebd272ac43cab6c68b99ace5919d6a7a9f5
2023-01-06 20:09:38 +05:30
Torsten Grote
87a800438b Always start a new RestoreSet when initializing the device
This avoids deleting the current backup when the user disables backups (or the system decides to do a random re-init).
2023-01-06 20:09:16 +05:30
Denham McLaren
bedba071df Translated using Weblate (English (Australia))
Currently translated at 100.0% (17 of 17 strings)

Translated using Weblate (English (Australia))

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (English (Australia))

Currently translated at 100.0% (182 of 182 strings)

Translated using Weblate (English (Australia))

Currently translated at 10.9% (20 of 182 strings)

Co-authored-by: Denham McLaren <denhamrock@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/en_AU/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/en_AU/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/en_AU/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2023-01-06 04:19:45 +05:30
Translator-3000
2685d57bda Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Translator-3000 <weblate.m1d0h@8shield.net>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/it/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/it/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/it/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2023-01-06 04:19:45 +05:30
Yaron Shahrabani
6a12cf9480 Translated using Weblate (Hebrew)
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
Егор Ермаков
45349e2e07 Translated using Weblate (Russian)
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Егор Ермаков <eg.ermakov2016@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
Dan
b7f187451f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (17 of 17 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (1 of 1 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Dan <denqwerta@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/uk/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/uk/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/uk/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
2023-01-06 04:19:45 +05:30
nautilusx
2166cae00a Translated using Weblate (German)
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: nautilusx <translate@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
Oğuz Ersen
5c4da3ffa6 Translated using Weblate (Turkish)
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
gallegonovato
43ca12686f Translated using Weblate (Spanish)
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
TobiGr
c43274e6a0 Translated using Weblate (German)
Currently translated at 99.4% (181 of 182 strings)

Co-authored-by: TobiGr <tobigr@mail.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
Eric
3e25c3f54f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Eric <hamburger1024@duck.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
Gediminas Murauskas
2d2e9dacb6 Translated using Weblate (Lithuanian)
Currently translated at 100.0% (182 of 182 strings)

Co-authored-by: Gediminas Murauskas <muziejusinfo@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/lt/
Translation: CalyxOS/Seedvault
2023-01-06 04:19:45 +05:30
Torsten Grote
4b9e2bb9f3 Show foreground notification right away when doing manual backup 2023-01-06 00:02:58 +05:30