Commit graph

752 commits

Author SHA1 Message Date
Torsten Grote
674568ca11 Use new storage API for full backups 2021-10-13 16:15:20 +05:30
Torsten Grote
4bdaaa0ce9 Make RestoreCoordinator use the new storage API with salt and backup type
This breaks restores until all the other required changed have been implemented.
2021-10-13 16:15:20 +05:30
Torsten Grote
75cf014e5d Add crypto method to get salted names for package data and APKs
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.
2021-10-13 16:15:20 +05:30
Torsten Grote
793663acb5 Add salt and backup type to metadata 2021-10-13 16:15:20 +05:30
Torsten Grote
39cb0c6443 Factor getting secure random bytes into Crypto interface 2021-10-13 16:15:20 +05:30
Torsten Grote
a77d927624 Remove deprecated methods from BackupPlugin 2021-10-13 16:15:20 +05:30
Torsten Grote
db4103e752 Move code to get available backups from RestorePlugin to BackupPlugin 2021-10-13 16:15:20 +05:30
Torsten Grote
5d1e3debd1 Define new and simpler BackupPlugin API
leaving the old one in place still
2021-10-13 16:15:20 +05:30
Torsten Grote
2932af463c Check version of backup files against expected version from metadata
and throw security exception if it does not match
2021-10-13 16:15:20 +05:30
Torsten Grote
5523e57fe7 Add current metadata to RestoreCoordinator state
so we know which backup version we need to expect during restore
2021-10-13 16:15:20 +05:30
Torsten Grote
bcb245531c Refactor fetching of restorable backups
so that we don't go through the BackupManager API, but use RestoreCoordinator directly
2021-10-13 16:15:20 +05:30
Torsten Grote
aeafc80bb9 Clean up after moving all backup code to new v1 version 2021-10-13 16:15:20 +05:30
Torsten Grote
f4dc776ed3 Do full backups with new version 1 with new crypto
Restoring still supports version 0 with old crypto
2021-10-13 16:15:20 +05:30
Torsten Grote
0c3ea7679b Do K/V backup with new version 1 with new crypto
Restoring still supports version 0 with old crypto
2021-10-13 16:15:20 +05:30
Torsten Grote
3ffb79b04f Write metadata with new version 1
Reading still supports version 0
2021-10-13 16:15:20 +05:30
Torsten Grote
0f241f7d25 Ensure that we have the main key for v1 crypto
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.
2021-10-13 16:15:20 +05:30
Torsten Grote
7dceb98670 Add test for decrypting and reading version 0 metadata 2021-10-13 16:15:20 +05:30
Torsten Grote
b707d7f9d0 Add test for full and k/v restore of version 0 backups 2021-10-13 16:15:20 +05:30
Michael Bestas
1cae6dc60e Bump version to 11-2.3
Change-Id: I792a1b1039f2ffcf23301334914b9c1fc75244ef
2021-10-05 01:34:35 +05:30
Michael Bestas
bfdf69c2f0 Switch all translations references to github.com/seedvault-app
Change-Id: I400b831c64ca72aa07940e323885595e864b2745
2021-10-05 01:34:35 +05:30
Michael Bestas
dce3ad244d Fix translations after replacing novacrypt BIP39 library
Change-Id: Ie8fe00a8d870374ce86c3766307f954dc9d259ba
2021-10-05 01:34:35 +05:30
Chirayu Desai
88f44a9f66 Merge branch 'master' of https://github.com/seedvault-app/seedvault into android11-11-2.2-merge
* '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
2021-09-29 19:52:03 +05:30
Chirayu Desai
08abcb63d7 Bump version to 11-2.2
User-facing changes:
* Don't backup on metered networks
* Disable spell-checker on recovery code input
* Disable Nextcloud restore when not installed and no store available
* Ask for system authentication before storing a new recovery code
* Prevent screenshots of recovery code
* Add expert settings with an option for unlimited quota
* Allow launching restore through a dialer code
* Restrict exported components

Others:
* Improve .editorconfig setup
* Move LocalContactsBackup to product partition
* Link FAQ in Readme to make it more discoverable
* Compares kotlin-bip39 library with bitcoinj library
* Provide an overview over key derivations
* document potential information leakage through the long-lived SQL caches
* Add warning for third-party tools to README

Change-Id: I095af13d0ff010c9602bc323267c074ce7d019a2
2021-09-29 19:33:45 +05:30
flawedworld
b2cd3c76a3 Restrict exported components
Change-Id: I30e5f530b6814acd4d3940279de6100f82e68445
2021-09-29 18:57:14 +05:30
Chirayu Desai
38f01765ec Allow launching restore through a dialer code
* We don't show Restore in menu by default since it's
  not the best idea to restore a running system
* However, at the same time, it's good to have a way to do
  that for those who'd like to restore anyway, and the only
  current way is adb, which is not ideal
* Dialing "*#*#RESTORE#*#*" will launch the restore activity

Change-Id: I258fead82f7e916a4de0b314e1840d7aa4b3746c
2021-09-29 18:57:14 +05:30
Torsten Grote
a5a3a85c6c Add expert settings with an option for unlimited quota
Change-Id: Iebaea41ce4e69912f7cb723bd92e94e4396aa657
2021-09-28 22:02:04 +05:30
Torsten Grote
d2a748c34a Prevent screenshots of recovery code
This is may be inconvenient for some people, but it is way more secure as screenshots can be accessed by malicious apps that look our for BIP39 codes. Better to store the code on paper.
2021-09-24 02:55:56 +05:30
Torsten Grote
3b1a4e3881 Use clearer more generic strings 2021-09-24 02:55:56 +05:30
Torsten Grote
6e838978e3 Ask for system authentication before storing a new recovery code
This will help to prevent data extraction via seedvault when somebody gets hold of an unlocked phone. However, it will not help against someone able to force you to provide fingerprints or other device secrets.
2021-09-24 02:55:56 +05:30
Torsten Grote
e0f728205d Split up validating, verifying and storing of recovery code 2021-09-24 02:55:56 +05:30
Alex
5bca365c14 Translated using Weblate (Tamil)
Currently translated at 97.7% (132 of 135 strings)

Co-authored-by: Alex <alexraj2003@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ta/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Shanavas
28e02a144a Translated using Weblate (Malayalam)
Currently translated at 12.5% (17 of 135 strings)

Co-authored-by: Shanavas <shanavas.m2@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ml/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
bruh
9fde673be6 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: bruh <quangtrung02hn16@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/vi/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Maciej Błędkowski
584c76e0af Translated using Weblate (Polish)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Maciej Błędkowski <mble@tuta.io>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
ssantos
a9f10b4749 Translated using Weblate (Portuguese)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Kaantaja
18ce429db5 Translated using Weblate (Finnish)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Kaantaja <ufdbvgoljrjkrkyyub@ianvvn.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fi/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Tymofii Lytvynenko
b4e5d1a9d3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (135 of 135 strings)

Translated using Weblate (Ukrainian)

Currently translated at 25.9% (35 of 135 strings)

Co-authored-by: Tymofii Lytvynenko <till.svit@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/uk/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Gediminas Murauskas
ac3f996660 Translated using Weblate (Lithuanian)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Gediminas Murauskas <muziejusinfo@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/lt/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Óscar Fernández Díaz
f7ab10f526 Translated using Weblate (Spanish)
Currently translated at 100.0% (135 of 135 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
2021-09-24 02:54:42 +05:30
František Oboňa
710a9c39bf Translated using Weblate (Slovak)
Currently translated at 99.2% (134 of 135 strings)

Translated using Weblate (Slovak)

Currently translated at 11.8% (16 of 135 strings)

Co-authored-by: František Oboňa <frantisekobona@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/sk/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
oksya8and8
d175c3f5c8 Translated using Weblate (Japanese)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: oksya8and8 <darknessyasuko@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ja/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Taro Tanaka
f74f27bd6a Translated using Weblate (Japanese)
Currently translated at 31.8% (43 of 135 strings)

Co-authored-by: Taro Tanaka <anon_japan@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ja/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Yuya Shimbori
7f0d9a8ce2 Translated using Weblate (Japanese)
Currently translated at 29.6% (40 of 135 strings)

Co-authored-by: Yuya Shimbori <yuyaj@tutanota.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ja/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
ibukinus
fef672d875 Translated using Weblate (Japanese)
Currently translated at 20.0% (27 of 135 strings)

Co-authored-by: ibukinus <myon.ibuki@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ja/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Algustionesa Yoshi
ce3d440e3d Translated using Weblate (Indonesian)
Currently translated at 48.1% (65 of 135 strings)

Co-authored-by: Algustionesa Yoshi <algustionesa@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/id/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Noway Imtellingyouidiot
f4c6047919 Translated using Weblate (Hungarian)
Currently translated at 48.1% (65 of 135 strings)

Co-authored-by: Noway Imtellingyouidiot <johns.videos+weblate@mailbox.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/hu/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Shashi A
a11298c263 Translated using Weblate (Telugu)
Currently translated at 95.5% (129 of 135 strings)

Translated using Weblate (Telugu)

Currently translated at 65.1% (88 of 135 strings)

Co-authored-by: Shashi A <bitcoinbabu401@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/te/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Yurical
4605e2d853 Translated using Weblate (Korean)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Yurical <yurical1@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ko/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Allan Nordhøy
4ba0456971 Translated using Weblate (Norwegian Bokmål)
Currently translated at 69.6% (94 of 135 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nb_NO/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Oğuz Ersen
5a7d109e11 Translated using Weblate (Turkish)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Artem
6e1d2f9055 Translated using Weblate (Russian)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Artem <Localizer_in_Russian@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Eric
087f8b726c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Eric <spice2wolf@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
nautilusx
25e2ca8b7d Translated using Weblate (German)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: nautilusx <translate@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Chirayu Desai
77b8ac9a50 Deleted translation using Weblate (Spanish (Argentina))
Deleted translation using Weblate (Uyghur)

Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
2021-09-24 02:54:42 +05:30
Weblate
6f7c1c2000 Added translation using Weblate (Spanish (Argentina))
Added translation using Weblate (Uyghur)

Co-authored-by: Weblate <noreply@weblate.org>
2021-09-24 02:54:42 +05:30
Alexandre Brochand
da4a58810b Translated using Weblate (French)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Alexandre Brochand <armandleborgne@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
ArunJRK
55d7d62624 Translated using Weblate (Tamil)
Currently translated at 1.4% (2 of 135 strings)

Co-authored-by: ArunJRK <Arun.jrk99@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ta/
Translation: CalyxOS/Seedvault
2021-09-24 02:54:42 +05:30
Michael Bestas
26516d72a2 Disable Nextcloud restore when not installed and no store available
Attempting to install Nextcloud in SetupWizard on a device
that has no app store installed results in a crash.
Disable the option and use an appropriate summary.

Change-Id: Ie3dff8d85ed68b27858fa37b3efb97eb345fa372
2021-09-24 02:53:10 +05:30
Torsten Grote
71f7fd8474 Disable spell-checker on recovery code input
to prevent potential cloud learning or otherwise leaking code
2021-09-24 02:52:06 +05:30
Torsten Grote
d6a95e40ec Compares kotlin-bip39 library with bitcoinj library
to ensure that kotlin-bip39 is not malicious and can be upgraded safely
2021-09-24 00:02:43 +05:30
Torsten Grote
b149195e7a
Merge branch 'master' into code-style 2021-09-08 05:37:02 -03:00
Michael Bestas
532ed5e3f1
Add newline at the end of all files
Change-Id: I85718a4d8254d27e36f1712e4430e82863ba721e
2021-08-25 18:25:00 +03:00
Luca Stefani
bc24c7804d Don't backup on metered networks
* We better not overuse metered networks as such connections
* are usually sensitive to heavy data usage due to monetary costs and/or data limitations.
2021-08-25 14:59:49 +02:00
Chirayu Desai
96ffcc258d Bump version to 11-2.1
* Only change here is the BIP39 dependency replacement, however
  I'm still bumping version so that it's easy to figure out in case
  there ever was a build with just 2.0 and not this due to whatever reason

Change-Id: I9783d5e038d002e871c09be6fe61174c5a5b901f
2021-07-06 00:02:14 +05:30
Torsten Grote
05640ebb63 Replace novacrypt BIP39 library with the zcash one
which is MIT licensed instead of GPLv3

Change-Id: I30041de5ab1c1f8c7d5f57d6c60e28300a285259
2021-07-05 23:50:18 +05:30
Chirayu Desai
fd4c92bd84 SeedVault 2.0: Now with storage backup!
Change-Id: Ifd639c3c9205b417d1ec37c8e7a11a2119b5cb48
2021-07-05 22:35:08 +05:30
Torsten Grote
d13b9ea3fd Always run storage backups in a foreground service
otherwise we get killed for using too much CPU
2021-07-05 20:08:29 +05:30
Torsten Grote
26e35e1820 Make 'skip' buttons bigger so they are easier to tap 2021-07-05 20:08:29 +05:30
Torsten Grote
a4cbb0b6df Only request app backup when it is actually enabled 2021-07-05 20:08:29 +05:30
Torsten Grote
1ff8e54748 Re-initialize backup location when changing recovery code
* delete all storage backups for current user
* clears the storage backup cache
* start a new app data restore set and initializes it

The reason is that old backups won't be readable anymore with the new key. We also can't delete other backups safely as we did before, because we can't be sure that they don't belong to a different device or user.
2021-07-05 20:08:29 +05:30
Torsten Grote
347d2a316f Allow using the same storage location on different devices or user profiles
Previously, we would put our files directly in the root of the storage location and delete any existing backups there. When used by different devices or user profiles, these would keep deleting each other's backups.
2021-07-05 20:08:29 +05:30
Torsten Grote
342bd2068a Clear existing storage snapshots from storage medium
because that scenario isn't supported at the moment
2021-07-05 20:08:29 +05:30
Torsten Grote
e21207de32 Only require network for storage backups when storage needs network 2021-07-05 20:08:29 +05:30
Torsten Grote
b8ac11e724 apply ktlint to storage.lib as well 2021-07-05 20:08:29 +05:30
Torsten Grote
d6bd36ad8b Backup now: run storage backup before app backup 2021-07-05 20:08:29 +05:30
Torsten Grote
9ca6cf2aae Allow to skip app restore to reach file restore 2021-07-05 20:08:29 +05:30
Torsten Grote
bdefb04a0d Add UI for restoring files after app restore 2021-07-05 20:08:29 +05:30
Torsten Grote
fa123f07a0 Improve finding restore sets
now that we store more things in the same folder
2021-07-05 20:08:29 +05:30
Torsten Grote
5b2b75047e handle storage backup when USB is used as target 2021-07-05 20:08:29 +05:30
Torsten Grote
6c633b70c3 Add storage library (and demo app)
and use for periodic files backup
2021-07-05 20:08:29 +05:30
Torsten Grote
1cd3a3a0e6 Fix log message when canceling full backup 2021-07-05 20:08:29 +05:30
Chirayu Desai
cda1e0c98e
Merge branch 'android11' into android11-merge-master/11-1.2 2021-07-05 19:46:24 +05:30
Chirayu Desai
5bfc5da3f7 Bump version to 11-1.2
Change-Id: I3817cf2320379504a8205125e7fa4894e3e57deb
2021-07-05 19:38:58 +05:30
Dhina17
7f9c2b4eb1 colors: Sync with Settings theme
Change-Id: I69366b7744a76658607bd48a81e06975c4c6060c
2021-07-05 19:20:08 +05:30
Torsten Grote
11564c8c35 Make recovery code fit on smaller screens 2021-07-05 18:56:01 +05:30
Chirayu Desai
d7e2cd67e9 l10n: zh-rCN: Fix xliff:g
Change-Id: I2506aa8f92ec57bd2bb1a1426c45742a283b1400
2021-07-05 18:21:48 +05:30
Chirayu Desai
c102fb5166 l10n: my: Remove English strings
* Only added since I couldn't figure out how to delete this translation from weblate

Change-Id: I8127dbee63a9dcf15ef8d404ce4313a52d7ca4b4
2021-07-05 18:21:48 +05:30
Chirayu Desai
12fe1ef6ef l10n: fi,it: Fix < and >
Change-Id: I28b19ca0de11eb07d233416271fd5f5a0fd76ac3
2021-07-05 18:21:48 +05:30
Chirayu Desai
bf70bec4f0 Translated using Weblate (Burmese)
Currently translated at 51.1% (69 of 135 strings)

Translated using Weblate (Burmese)

Currently translated at 50.3% (68 of 135 strings)

Translated using Weblate (Burmese)

Currently translated at 48.8% (66 of 135 strings)

Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/my/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Daisuke Masamura
3c2eeb089f Translated using Weblate (Japanese)
Currently translated at 17.7% (24 of 135 strings)

Co-authored-by: Daisuke Masamura <weblate.p1q2j@8shield.net>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ja/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
matuo
cb967f874f Translated using Weblate (Japanese)
Currently translated at 17.7% (24 of 135 strings)

Co-authored-by: matuo <longman.longest@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ja/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Daimar Stein
964f13c63e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Daimar Stein <570cxat11@relay.firefox.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Artem
71c016e68c Translated using Weblate (Russian)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Artem <KovalevArtem.ru@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Michael Bestas
abfc82c981 Translated using Weblate (Greek)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
m4sk1n
8ee9b2555a Translated using Weblate (Polish)
Currently translated at 99.2% (134 of 135 strings)

Translated using Weblate (Polish)

Currently translated at 51.8% (70 of 135 strings)

Co-authored-by: m4sk1n <me@m4sk.in>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Jim_Di
c26b679804 Translated using Weblate (Russian)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Jim_Di <jim_digriz@bk.ru>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Jan Myler
50427c0493 Translated using Weblate (Czech)
Currently translated at 99.2% (134 of 135 strings)

Co-authored-by: Jan Myler <weblate@jm24.4wrd.cc>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/cs/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Alexandre Brochand
d1465d085d Translated using Weblate (French)
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Alexandre Brochand <armandleborgne@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Iris S
b9e0d163d9 Translated using Weblate (Greek)
Currently translated at 99.2% (134 of 135 strings)

Co-authored-by: Iris S <iris.sousouni@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Óscar Fernández Díaz
247775c77c Translated using Weblate (Spanish)
Currently translated at 100.0% (135 of 135 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (135 of 135 strings)

Translated using Weblate (Spanish)

Currently translated at 97.0% (131 of 135 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
2021-07-05 18:13:56 +05:30
Oscar Nydza
cd3d0bc493 Translated using Weblate (Spanish)
Currently translated at 100.0% (135 of 135 strings)

Translated using Weblate (Spanish)

Currently translated at 97.0% (131 of 135 strings)

Translated using Weblate (Spanish)

Currently translated at 91.8% (124 of 135 strings)

Co-authored-by: Oscar Nydza <onn.tico@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
ssantos
d20cdb2112 Translated using Weblate (Portuguese)
Currently translated at 88.8% (120 of 135 strings)

Translated using Weblate (Portuguese (Portugal))

Currently translated at 88.1% (119 of 135 strings)

Translated using Weblate (Portuguese)

Currently translated at 88.8% (120 of 135 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_PT/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Nikita Epifanov
31ad6afe2e Translated using Weblate (Russian)
Currently translated at 97.7% (132 of 135 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Eric
c3baa62d3c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)

Co-authored-by: Eric <spice2wolf@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Chaitanya Chowdary
a20bd468c8 Translated using Weblate (Telugu)
Currently translated at 20.0% (27 of 135 strings)

Translated using Weblate (Telugu)

Currently translated at 21.7% (27 of 124 strings)

Co-authored-by: Chaitanya Chowdary <chaitanyachowdaryy@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/te/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Przemysław Kuciel
ab67ab62aa Translated using Weblate (Polish)
Currently translated at 27.4% (34 of 124 strings)

Co-authored-by: Przemysław Kuciel <kludummy@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
nader ahmed
a082b3c603 Translated using Weblate (Arabic)
Currently translated at 12.0% (15 of 124 strings)

Co-authored-by: nader ahmed <naderabdalmonem0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ar/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Daniel Martins
8b44197837 Translated using Weblate (Portuguese)
Currently translated at 99.1% (123 of 124 strings)

Co-authored-by: Daniel Martins <daniel.tritone@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Joel D'Silva
06104068e5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: Joel D'Silva <jdms.contato@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Antoine Manderlier
3cb4a21a11 Translated using Weblate (French)
Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: Antoine Manderlier <antoine.manderlier@posteo.net>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Zkdc
06b58dc78c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (124 of 124 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: Zkdc <Zkdc2345@qq.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Reza Almanda
4e528f60af Translated using Weblate (Indonesian)
Currently translated at 20.1% (25 of 124 strings)

Co-authored-by: Reza Almanda <rezaalmanda27@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/id/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Nekromanser
9dbf3077b6 Translated using Weblate (Finnish)
Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: Nekromanser <ari.taitto@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fi/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Zeyarpo
2f9d3da39e Translated using Weblate (Burmese)
Currently translated at 52.4% (65 of 124 strings)

Co-authored-by: Zeyarpo <zeyar.po@foodpanda.com.mm>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/my/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Óscar Fernández Díaz
0497d0d546 Translated using Weblate (Spanish)
Currently translated at 100.0% (124 of 124 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
2021-07-05 18:13:56 +05:30
IT
2657744382 Translated using Weblate (Russian)
Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: IT <it@hardened.space>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Allan Nordhøy
db4303af8c Translated using Weblate (Norwegian Bokmål)
Currently translated at 79.0% (98 of 124 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nb_NO/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
luizagdelima
181460fe01 Translated using Weblate (Portuguese (Portugal))
Currently translated at 4.0% (5 of 124 strings)

Co-authored-by: luizagdelima <2191250@iscap.ipp.pt>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_PT/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Oymate
34c7d3ff15 Translated using Weblate (Bengali)
Currently translated at 4.0% (5 of 124 strings)

Co-authored-by: Oymate <dhruboadittya96@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/bn/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Yurical
2cec239322 Translated using Weblate (Korean)
Currently translated at 94.8% (128 of 135 strings)

Translated using Weblate (Korean)

Currently translated at 95.9% (119 of 124 strings)

Co-authored-by: Yurical <yurical1@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ko/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
S
532f0e82e0 Translated using Weblate (Italian)
Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: S <sandro.campi@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/it/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
joaooliva
9db3c9c8f1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.5% (111 of 124 strings)

Co-authored-by: joaooliva <joaooliva@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
nautilusx
339a433b44 Translated using Weblate (German)
Currently translated at 100.0% (135 of 135 strings)

Translated using Weblate (German)

Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: nautilusx <translate@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Oğuz Ersen
42edf5e01d Translated using Weblate (Turkish)
Currently translated at 100.0% (135 of 135 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (124 of 124 strings)

Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translation: CalyxOS/Seedvault
2021-07-05 18:13:56 +05:30
Chirayu Desai
02c7ba28b9 On phones we tap, not click!
Change-Id: Id0f0587b5174810de9e7d8036ca7e1264ea43c76
2021-05-26 23:07:25 +05:30
Michael Bestas
ee61be8361 Fix a couple camel case issues in strings
* This should finally cover all strings
2021-05-26 22:52:19 +05:30
Michael Bestas
d53f0fcde2 Switch all text references to github.com/seedvault-app 2021-04-20 03:59:01 +05:30
Chirayu Desai
0e3147b365 Bump to 11-1.1
Also bump contactsbackup to keep the version consistent

Change-Id: I334cd6ea92b241f0ab57a68f05f9b15894b3f543
2021-04-16 23:04:30 +05:30
Chirayu Desai
54ae006652 Change signing configuration to use AOSP platform key
* https://stackoverflow.com/a/40145242

Change-Id: I12d09f299f4f0f7d8879a631d4f3298a18409683
2021-04-16 23:04:30 +05:30
Torsten Grote
100a99484a Store main key also when verifying recovery code
in case it wasn't stored before
2021-04-16 23:04:30 +05:30
Torsten Grote
c8a7e763d6 Store main key for key derivations from 512-bit BIP39 recovery code
This main key will be used later to derive sub-keys for other crypto operations.
2021-04-16 23:04:30 +05:30
Torsten Grote
6a5eaea2fd Use a TestApp for UnitTests so we can use different modules for injection 2021-04-16 23:04:30 +05:30
Torsten Grote
e8fbc3fbe7 Don't crash when storage app gets uninstalled 2021-04-16 23:04:30 +05:30
Torsten Grote
1bbaf3f55b Fix camel case in recovery code strings 2021-04-16 23:04:30 +05:30
Torsten Grote
4271fd6005 Delete all backups (if possible) when user generates a new recovery code 2021-04-16 23:04:30 +05:30
Torsten Grote
395cc4c899 Allow user to generate new recovery code 2021-04-16 23:04:30 +05:30
Torsten Grote
d64413a7c3 Allow user to verify existing recovery code 2021-04-16 23:04:30 +05:30
Torsten Grote
9bba81ed5c Add message to AssertionError to track down why it happens 2021-04-16 23:04:30 +05:30
Michael Bestas
af45233e02 strings: Avoid using camel case
Change-Id: I0365a381f4c2f28d3d61b4f90c66af9e557a50d2
2021-04-16 23:04:30 +05:30
Chirayu Desai
d5b32d1410 Bump to 11-1.1
Also bump contactsbackup to keep the version consistent

Change-Id: I334cd6ea92b241f0ab57a68f05f9b15894b3f543
2021-04-16 22:49:43 +05:30
Chirayu Desai
b08b1f55f7 Change signing configuration to use AOSP platform key
* https://stackoverflow.com/a/40145242

Change-Id: I12d09f299f4f0f7d8879a631d4f3298a18409683
2021-03-05 02:37:27 +05:30
Torsten Grote
43dbcdfa79
Merge branch 'master' into main-key 2021-02-17 08:19:54 -03:00
Torsten Grote
68543dcb91
Store main key also when verifying recovery code
in case it wasn't stored before
2021-02-15 12:16:27 -03:00
Torsten Grote
851407037e
Store main key for key derivations from 512-bit BIP39 recovery code
This main key will be used later to derive sub-keys for other crypto operations.
2021-02-15 12:16:27 -03:00
Torsten Grote
2cd2f73241
Use a TestApp for UnitTests so we can use different modules for injection 2021-02-15 12:16:27 -03:00
Torsten Grote
fcd8afe072
Don't crash when storage app gets uninstalled 2021-02-09 15:37:05 -03:00
Torsten Grote
263531fec9 Fix camel case in recovery code strings 2021-01-20 03:44:01 +05:30
Torsten Grote
f758bb3110 Delete all backups (if possible) when user generates a new recovery code 2021-01-20 03:44:01 +05:30
Torsten Grote
ca2a56f023 Allow user to generate new recovery code 2021-01-20 03:44:01 +05:30
Torsten Grote
9dc29e4b0a Allow user to verify existing recovery code 2021-01-20 03:44:01 +05:30
Torsten Grote
b7aedda90c
Add message to AssertionError to track down why it happens 2020-12-18 08:45:18 -03:00
Michael Bestas
4906a00786 strings: Avoid using camel case
Change-Id: I0365a381f4c2f28d3d61b4f90c66af9e557a50d2
2020-11-26 01:26:37 +05:30
Michael Bestas
34dcc083d4 Fix translations for master branch
Change-Id: Ic0a03f6806cce85b00e22dfe70c2d9b1a27b5602
2020-11-26 00:49:04 +05:30
Pera Petrovic
e8de37c549 Translated using Weblate (Serbian (latin))
Currently translated at 8.7% (10 of 114 strings)

Co-authored-by: Pera Petrovic <srdjan.todorovic.872019@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/sr_Latn/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Milo Ivir
b0b4391606 Translated using Weblate (Croatian)
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/hr/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
caioau
68c1029633 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: caioau <caioau@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Michael Bestas
fe94d45f25 Compatibility symlinks for weblate translations
* Map weblate locale code to AOSP locale

Change-Id: I9e03b48ca00d8446416681a48c1ad3c2f5f63c42
2020-11-26 00:49:04 +05:30
Michael Bestas
3803a22dfe Fix broken translations
Change-Id: I5c3aa867cbc3952c1ea19b85bc3694476e69be7d
2020-11-26 00:49:04 +05:30
Óscar Fernández Díaz
663d12db4a Translated using Weblate (Spanish)
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: Óscar Fernández Díaz <oscfdezdz00@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
sock-et
c3e4e62374 Translated using Weblate (Italian)
Currently translated at 60.5% (69 of 114 strings)

Co-authored-by: sock-et <inline.py@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/it/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Yurical
a42aa90594 Translated using Weblate (Korean)
Currently translated at 94.7% (108 of 114 strings)

Translated using Weblate (Korean)

Currently translated at 88.5% (101 of 114 strings)

Co-authored-by: Yurical <yurical1@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ko/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Eric
8387ee09ae Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: Eric <spice2wolf@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
tamer dab
2570befba8 Translated using Weblate (Arabic)
Currently translated at 8.7% (10 of 114 strings)

Translated using Weblate (Hebrew)

Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: tamer dab <dabsantamer@yahoo.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ar/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
LOyoujoLI
09888a228d Translated using Weblate (Russian)
Currently translated at 96.4% (110 of 114 strings)

Co-authored-by: LOyoujoLI <minion2018@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Kyuzial
51f8a29316 Translated using Weblate (French)
Currently translated at 99.1% (113 of 114 strings)

Co-authored-by: Kyuzial <kyuzial@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
nautilusx
3189773443 Translated using Weblate (German)
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: nautilusx <mail.ka@mailbox.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Nikita Epifanov
5fef513d86 Translated using Weblate (Russian)
Currently translated at 94.7% (108 of 114 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Michael Bestas
d357b68a91 Translated using Weblate (Greek)
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Oğuz Ersen
1b991dd83b Translated using Weblate (Turkish)
Currently translated at 100.0% (114 of 114 strings)

Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Atrate
9c4be5194e Translated using Weblate (Polish)
Currently translated at 25.0% (28 of 112 strings)

Translation: CalyxOS/Seedvault
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
2020-11-26 00:49:04 +05:30
Allan Nordhøy
4f9c13657b Translated using Weblate (Norwegian Bokmål)
Currently translated at 78.5% (88 of 112 strings)

Translation: CalyxOS/Seedvault
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nb_NO/
2020-11-26 00:49:04 +05:30
ssantos
36bb4c6494 Translated using Weblate (Portuguese)
Currently translated at 97.3% (109 of 112 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Atrate
d1225ef61b Translated using Weblate (Polish)
Currently translated at 22.3% (25 of 112 strings)

Co-authored-by: Atrate <Atrate@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pl/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Milo Ivir
7199e78e6b Translated using Weblate (Croatian)
Currently translated at 100.0% (112 of 112 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/hr/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Yaron Shahrabani
607df522af Translated using Weblate (Hebrew)
Currently translated at 100.0% (112 of 112 strings)

Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translation: CalyxOS/Seedvault
Change-Id: Id58ce22954ae88f5856ae64879c7fbd56b2d1a62
2020-11-26 00:49:04 +05:30
Chirayu Desai
9ce543812f Translated using Weblate (French)
Currently translated at 80.3% (90 of 112 strings)

Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Nikita Epifanov
746882587b Translated using Weblate (Russian)
Currently translated at 100.0% (112 of 112 strings)

Translated using Weblate (Russian)

Currently translated at 98.2% (110 of 112 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2020-11-26 00:49:04 +05:30
Torsten Grote
c885499faf
Remove string that isn't needed anymore and change one 2020-11-25 08:41:46 -03:00
Torsten Grote
4ea563f8a3
Handle local contacts backup specially in app list
as it might not be installed
2020-11-18 17:21:10 -03:00
Torsten Grote
14f6e5ad93
Adapt main screen to new design 2020-11-18 17:14:24 -03:00
Torsten Grote
020a50533c
exclude apps from backup: react also when only switch is tapped
Fixes #83
2020-11-18 17:05:26 -03:00
Torsten Grote
b1a0c1b2e2
Group app status list into three sections
* important system apps
* user apps
* apps not allowing backup
2020-11-18 16:35:45 -03:00
Steve Soltys
9daaeea55d Move CI to GitHub Actions 2020-11-10 16:34:40 -05:00
Torsten Grote
7694eb3cf9 Move to different versioning scheme and show version in About dialog 2020-10-29 20:50:53 +05:30
Torsten Grote
81cd67217b Show backup status of select system apps 2020-10-29 20:23:01 +05:30
Torsten Grote
e9f3c08220
Make MANAGE_DOCUMENTS permission optional
for those who can not or do not want to use it

Fixes #58
2020-10-23 07:37:16 -03:00
Torsten Grote
f5e9c30d17
Also check internet access when determining whether backup storage is available
This commit also refactors the code in SettingsFragment and moves it into the SettingsViewModel.
The UsbMonitor turned out not to be reliable in determining changes to USB storage, so it was replaced with a ContentObserver which works for other storage types as well.
2020-10-23 07:34:00 -03:00
Torsten Grote
82048f2754
Don't mess with backup system settings as they can't be used to reliably prevent automatic updates anyway 2020-10-23 07:34:00 -03:00
Torsten Grote
e2f0d19f77
Pretend to make successful @pm@ backup when no backup is possible
This is the same behavior as Google backup when it has no internet connection and after extensive research the only option we can keep the system from considering the backup state to be compromised.

K/V backups are run at least every day, no matter what backup interval we set in settings and when they run, we don't get asked before, if now is a good time for backups. So we need to fake an OK for @pm@ backup and can error out afterwards without compromising state.
2020-10-23 07:33:59 -03:00
Torsten Grote
141fe7575d
Check also availability of internet access when using online storage
This moves these availability checks into the Storage class, so they can be used in various places without duplicating code.
2020-10-23 07:33:59 -03:00
Torsten Grote
0a2131e108
Check availability of storage on IO thread 2020-10-23 07:33:59 -03:00
Torsten Grote
7401ead553
Request backoff when asked to backup to network storage while no internet available
K/V backups are normally only attempted when charging and having an (un-metered) internet connection. However, if the system could not do a backup for more than a day, it ignores these requirements and still attempts a backup run. If a backup storage is used that is only accessible on the internet, but there is no internet connection, the backup attempt will fail. Therefore, we check if our storage requires the internet and if so, we treat it similar to a removable storage, by rejecting backup attempts and suppressing error notifications.
2020-10-23 07:33:58 -03:00
Torsten Grote
f356f56746
Demote hard name checks to IOExceptions
because it turns out SAF naming things 'null' is a thing
2020-10-23 07:33:58 -03:00
Torsten Grote
2aa3a1b4be
When opening app status from notification, ensure the settings are below
so back navigation works as expected
2020-10-23 07:33:58 -03:00
Torsten Grote
df788ba9a4
Don't assume backup is running when success or error notifications are shown 2020-10-23 07:33:56 -03:00
Torsten Grote
2cde417c8c
Add config option to re-install apps with feature modules only on same device
There is a possibility that incompatible APK splits make a an app crash when starting after re-installing it.
With that config option each OEM can decide with they want to take this risk or not.
2020-10-22 08:00:55 -03:00
Torsten Grote
e6723093c9
Android Studio 4.1 and changes to test files 2020-10-22 08:00:54 -03:00
Torsten Grote
a833df2165
Show dialog explaining auto-restore after a restore failed due to not all apps being installed 2020-10-22 08:00:54 -03:00
Torsten Grote
0f0f198228
Add unit tests for re-installing apps with APK splits 2020-10-13 16:19:05 -03:00
Torsten Grote
608e67cb65
Refactor existing ApkRestore unit tests to make adding new ones easier 2020-10-13 16:19:05 -03:00
Torsten Grote
b3db859b40
Re-install APK splits if they are compatible and have proper hash 2020-10-13 16:07:19 -03:00
Torsten Grote
68a6403c4b
Add a compatibility checker for APK splits
that tries to figure out compatibility only based on the name of the split.
This is not an exact science and there might be errors, but we hope to correctly identify most cases that matter in practice.
2020-10-13 16:07:19 -03:00
Torsten Grote
3487c91ba3 Do not re-install apps that require splits
The app will be shown as failed during restore and the user will be given the opportunity to re-install it manually via an installed ap store
2020-10-13 18:32:04 +05:30
Torsten Grote
643247b600 Change UI for re-installation of system apps
We are re-installing system apps if they are present on the restore device as a system app and have a newer version code.
Before, when one of those conditions is not true, we were showing a failure and gave the user the option to re-install the app from an app store.
Now, we don't offer the manual re-install option anymore and only show a success when a newer or same version of the system app is already installed.
2020-10-13 18:32:04 +05:30
Torsten Grote
0971c5db19 Do not back up APKs of test-only apps, as we can not re-install them anyway
The flag to allow installation gets filtered out after we set it:
http://aosp.opersys.com/xref/android-11.0.0_r5/xref/frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java#544
2020-10-13 18:32:04 +05:30
Torsten Grote
0a8a286826 Update state of opt-out apps, even if they never had any state 2020-10-13 18:32:04 +05:30
Torsten Grote
a9402f4644 Update app install state after user comes back from manually installing an app
This way, the list of failed apps ideally keeps shrinking, allowing the user to see which apps are still left in a failed state.
2020-10-13 18:32:04 +05:30
Torsten Grote
1a81e2ddd6 If possible, open the app store an app was originally installed with
When an app fails to install during restore, we offer the option to manually install it.
If this doesn't happen with the same app store,
it is likely that the installed app will have a different signature (e.g. Aurora vs. F-Droid).
If the signature doesn't match, the data restore will fail.
Therefore, we attempt to let the user only use the same store for re-install.

There's a known issue that F-Droid doesn't report the proper package name:
https://gitlab.com/fdroid/fdroidclient/-/issues/2085
2020-10-13 18:32:04 +05:30
Torsten Grote
d6cb34c211 Allow the user to manually re-install apps before data restore starts
When one or more apps fail to install, the user is shown a dialog explaining that we need the apps installed in order for restore to work.
After the dialog is dismissed, the list of apps is resorted so failed apps are at the top. They are made clickable and the user is brought to an app store to re-install them.
2020-10-13 18:32:04 +05:30
Torsten Grote
747384fb59 Refactor InstallResult to be more extensible 2020-10-13 18:32:04 +05:30
Torsten Grote
f45411d81b Refactor code related to APK installs as preparation for upcoming changes 2020-10-13 18:32:04 +05:30
Torsten Grote
9830d2db95 Show different app state messages for backup and restore 2020-10-13 18:32:04 +05:30
Torsten Grote
3a31e09a04 Back up split APKs as well and store them in the metadata
This will enable us to check compatibility of the splits with the restore device and if compatible, re-install them.
2020-10-13 18:32:04 +05:30
Torsten Grote
af2bf4f60a Support APK splits in metadata 2020-10-13 18:32:04 +05:30
Torsten Grote
46e8a46c63 Pull out code in ApkBackup and ApkRestore into own methods 2020-10-13 18:32:04 +05:30
Torsten Grote
741e5ef1a0 Fix storage chooser title if the translation is long 2020-10-08 19:27:51 +05:30
Torsten Grote
9ae3c6e835 Add some documentation to the transport methods 2020-10-08 19:27:51 +05:30
Torsten Grote
fbdfa40300 Load app status data off the UI thread
Previously, the data was loaded on the UI thread which produced a
visible freeze after clicking "App backup status".
2020-10-08 19:27:51 +05:30
Torsten Grote
0612f79195 Fix or permit certain disk reads on UI thread 2020-10-08 19:27:51 +05:30
Torsten Grote
1d2c74bf2c Ensure that metadata cache streams get closed 2020-10-08 19:27:51 +05:30
Torsten Grote
4387353227 Enable StrictMode for userdebug builds 2020-10-08 19:27:51 +05:30
Torsten Grote
948cd597d8 Show proper transport labels for OS transport selection
If an AOSP-based ROM allows the user to choose a backup transport, these labels will be shown.
2020-10-08 19:27:51 +05:30
Torsten Grote
6c531066e7 Enable automatic coding style linting with ktlint (also on CI)
This way the coding style is guaranteed to stay consistent.
2020-10-07 19:44:05 +05:30
Torsten Grote
53937bda2f Auto-format code style of all files to match official style
This also adds a note to the README
and the Android Studio coding style files.
2020-10-07 19:44:05 +05:30
Torsten Grote
55909ce305 Fix lint issues with translations and ignore missing translations
as weblate doesn't seem to have a way to only import completed
translations.
2020-10-07 19:01:39 +05:30
Torsten Grote
d2ed3a10f0 Fix dependency issues by strictly requiring specific versions
Otherwise gradle pulls in newer versions of some libraries that require
a newer Kotlin version at runtime and then make the app crash.

This also moves the dependency declarations into a dedicated file.
2020-10-07 19:01:39 +05:30
Torsten Grote
57f404281c Fix lint warnings 2020-10-07 19:01:39 +05:30
Torsten Grote
af4b6807f2 Fix compile warnings on AOSP 11 2020-10-07 19:01:39 +05:30
Torsten Grote
ceac5fc5ce Clean up koin-android dependencies and upgrade koin 2020-10-07 19:01:39 +05:30
Torsten Grote
cfcf7b35ba Clean up BIP39 dependencies 2020-10-07 19:01:39 +05:30
Torsten Grote
6cde6be997 Sync AndroidX dependencies with those available in AOSP 2020-10-07 19:01:39 +05:30
Torsten Grote
8f91138e9f Remove dependency on commons-io library 2020-10-07 19:01:39 +05:30
Torsten Grote
8bdbe6d681 Handle new FLAG_DATA_NOT_CHANGED for K/V backups 2020-10-07 19:01:39 +05:30
Torsten Grote
25695d72b8 Fix storage selection screen (icon color and available bytes) 2020-10-07 19:01:39 +05:30
Torsten Grote
918d7a712a Add QUERY_ALL_PACKAGES permission which is now needed on Android 11 2020-10-07 19:01:39 +05:30
Torsten Grote
6e58ec0340 Fix instrumentation tests on Android 11 2020-10-07 19:01:39 +05:30
Torsten Grote
45ac8883a0 Fix roboelectric unit tests 2020-10-07 19:01:39 +05:30
Torsten Grote
415b5729d5 Bump AOSP versions for gradle build 2020-10-07 19:01:39 +05:30
Torsten Grote
ca309df03d Upgrade AOSP libraries for gradle build 2020-10-07 19:01:39 +05:30
Chirayu Desai
680ad8b7db Fix translations manually, replacing &lt;&gt; by <>
* Previous attempt via weblate failed, let's just do it here this way
2020-09-25 20:05:15 +05:30
Hosted Weblate
7af61ac92d Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Chirayu Desai
ddc13516d3 Translated using Weblate (French)
Currently translated at 80.3% (90 of 112 strings)

Translated using Weblate (Icelandic)

Currently translated at 81.8% (90 of 110 strings)

Translated using Weblate (Spanish (American))

Currently translated at 80.9% (89 of 110 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 78.1% (86 of 110 strings)

Translated using Weblate (French)

Currently translated at 81.8% (90 of 110 strings)

Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es_US/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/is/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nb_NO/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
ssantos
d1e4cdb137 Translated using Weblate (Portuguese)
Currently translated at 100.0% (110 of 110 strings)

Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Milo Ivir
688753d55f Translated using Weblate (Croatian)
Currently translated at 100.0% (110 of 110 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/hr/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Michael Bestas
4dbb73aaaf Translated using Weblate (Greek)
Currently translated at 100.0% (110 of 110 strings)

Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
H
1aef02e1ed Translated using Weblate (Spanish)
Currently translated at 99.0% (109 of 110 strings)

Co-authored-by: H <joaquinfc@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Nikita Epifanov
a0c70293aa Translated using Weblate (Russian)
Currently translated at 100.0% (110 of 110 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Samuel Carvalho de Araújo
fc35acadb9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)

Co-authored-by: Samuel Carvalho de Araújo <samuelnegro12345@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Hosted Weblate
f636831f9e Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (108 of 108 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 79.6% (86 of 108 strings)

Translated using Weblate (Spanish)

Currently translated at 99.0% (107 of 108 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 72.2% (78 of 108 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (108 of 108 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 14.8% (16 of 108 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 94.4% (102 of 108 strings)

Translated using Weblate (Russian)

Currently translated at 7.4% (8 of 108 strings)

Translated using Weblate (Russian)

Currently translated at 6.4% (7 of 108 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 3.7% (4 of 108 strings)

Translated using Weblate (German)

Currently translated at 70.3% (76 of 108 strings)

Translated using Weblate (Icelandic)

Currently translated at 100.0% (108 of 108 strings)

Translated using Weblate (Spanish (American))

Currently translated at 97.2% (105 of 108 strings)

Translated using Weblate (Spanish)

Currently translated at 34.2% (37 of 108 strings)

Translated using Weblate (Italian)

Currently translated at 60.1% (65 of 108 strings)

Translated using Weblate (Italian)

Currently translated at 38.8% (42 of 108 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 94.4% (102 of 108 strings)

Translated using Weblate (German)

Currently translated at 10.1% (11 of 108 strings)

Translated using Weblate (French)

Currently translated at 100.0% (108 of 108 strings)

Translated using Weblate (French)

Currently translated at 65.7% (71 of 108 strings)

Added translation using Weblate (Dutch)

Added translation using Weblate (Zulu)

Added translation using Weblate (Chinese (Traditional, Hong Kong))

Added translation using Weblate (Chinese (Traditional))

Added translation using Weblate (Chinese (Simplified))

Added translation using Weblate (Vietnamese)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Urdu)

Added translation using Weblate (Ukrainian)

Added translation using Weblate (Turkish)

Added translation using Weblate (Tagalog)

Added translation using Weblate (Thai)

Added translation using Weblate (Telugu)

Added translation using Weblate (Tamil)

Added translation using Weblate (Swahili)

Added translation using Weblate (Swedish)

Added translation using Weblate (Serbian (latin))

Added translation using Weblate (Serbian)

Added translation using Weblate (Albanian)

Added translation using Weblate (Slovenian)

Added translation using Weblate (Slovak)

Added translation using Weblate (Sinhala)

Added translation using Weblate (Romanian)

Added translation using Weblate (Portuguese (Portugal))

Added translation using Weblate (Portuguese (Brazil))

Added translation using Weblate (Portuguese)

Added translation using Weblate (Polish)

Added translation using Weblate (Punjabi)

Added translation using Weblate (Odia)

Added translation using Weblate (Nepali)

Added translation using Weblate (Burmese)

Added translation using Weblate (Malay)

Added translation using Weblate (Marathi)

Added translation using Weblate (Mongolian)

Added translation using Weblate (Malayalam)

Added translation using Weblate (Macedonian)

Added translation using Weblate (Latvian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lao)

Added translation using Weblate (Kyrgyz)

Added translation using Weblate (Korean)

Added translation using Weblate (Kannada)

Added translation using Weblate (Central Khmer)

Added translation using Weblate (Kazakh)

Added translation using Weblate (Georgian)

Added translation using Weblate (Japanese)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Indonesian)

Added translation using Weblate (Armenian)

Added translation using Weblate (Hungarian)

Added translation using Weblate (Croatian)

Added translation using Weblate (Galician)

Added translation using Weblate (French (Canada))

Added translation using Weblate (Finnish)

Added translation using Weblate (Persian)

Added translation using Weblate (Basque)

Added translation using Weblate (Estonian)

Added translation using Weblate (English (India))

Added translation using Weblate (English (United Kingdom))

Added translation using Weblate (English (Canada))

Added translation using Weblate (English (Australia))

Added translation using Weblate (Danish)

Added translation using Weblate (Czech)

Added translation using Weblate (Catalan)

Added translation using Weblate (Bosnian)

Added translation using Weblate (Bengali)

Added translation using Weblate (Bulgarian)

Added translation using Weblate (Belarusian)

Added translation using Weblate (Azerbaijani)

Added translation using Weblate (Assamese)

Added translation using Weblate (Amharic)

Added translation using Weblate (Afrikaans)

Added translation using Weblate (Spanish (American))

Added translation using Weblate (Spanish)

Added translation using Weblate (Arabic)

Added translation using Weblate (Italian)

Added translation using Weblate (Hebrew)

Added translation using Weblate (Norwegian Bokmål)

Added translation using Weblate (Hindi)

Added translation using Weblate (Russian)

Added translation using Weblate (German)

Added translation using Weblate (Gujarati)

Added translation using Weblate (French)

Translated using Weblate (Greek)

Currently translated at 29.6% (32 of 108 strings)

Added translation using Weblate (Greek)

Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Catherine Pierattini <catherine.pierattini@gmail.com>
Co-authored-by: CatieC <catie@calyxinstitute.org>
Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
Co-authored-by: Daniel <dan.ef1999@gmail.com>
Co-authored-by: H <joaquinfc@protonmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Meili Huang <meilihuang1216@gmail.com>
Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Co-authored-by: Mordur Aslaugarson <mordur@1984.is>
Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Co-authored-by: Robin Kunze <robinkunze@outlook.com>
Co-authored-by: Samuel Carvalho de Araújo <samuelnegro12345@gmail.com>
Co-authored-by: Santiago Cruz <scruz4@tuta.io>
Co-authored-by: Weblate <noreply@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/es_US/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/is/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/it/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translation: CalyxOS/Seedvault
2020-09-25 20:05:15 +05:30
Torsten Grote
e3406613a6 Always show Nextcloud as an option, offer to install or set up account
Outside of SetupWizard restore, we don't offer to set up an account,
because we don't know if one already exists and the app was locked with
a passcode.
2020-09-25 06:05:47 +05:30
Torsten Grote
c5aca6dd51 Fix status reporting of failed system app restore 2020-09-25 05:55:40 +05:30
Torsten Grote
d7ca8151fd User-initiated backups should also be incremental 2020-09-25 05:55:40 +05:30
Torsten Grote
8185b6af6e Bring the user to app system settings when long tapping apps 2020-09-25 05:55:40 +05:30
Torsten Grote
7f4761816e Show a different text for stopped apps in app backups status page 2020-09-25 05:55:40 +05:30
Torsten Grote
77550a9860 Treat stopped apps different from opt-out apps
Apps that have FLAG_STOPPED will not get backed up, just like apps
without flag ALLOW_BACKUP will not get backed up.
In the UI both cases are shown the same way: app does not allow backup
This can be confusing for the user as it is not true for stopped apps.
Therefore, this commit introduces a new stopped state for apps,
so we can differentiate between both cases.
2020-09-25 05:55:40 +05:30
Torsten Grote
3e176c8e1c Fix opt-out apps showing up as not yet backed up
This bug also caused APKs of opt-out apps not getting backed up.
2020-09-25 05:55:40 +05:30
Torsten Grote
9f2b56e4ce Fix bug where we could not do two subsequent restores
This probably never showed in practice, but it can be triggered easily
when testing with `adb shell bmgr restore`.
2020-09-18 00:22:45 +05:30
Torsten Grote
b594d30e2c Fix auto-service warning in instrumentation tests 2020-09-17 06:06:14 +05:30
Torsten Grote
9f49a39514 Don't use Kotlin reflection if not really necessary 2020-09-17 06:06:14 +05:30
Torsten Grote
42ab8ffba5 Cache folder contents in K/V backup/restore
This speeds up things significantly and was needed due to poor
performance of call log backup.
2020-09-17 06:06:14 +05:30
Michael Bestas
239b83196f Make seedvault compile in AOSP properly
* Add Android.bp to compile using AOSP build system instead of gradle
* Add prebuilt external libs that are not available on AOSP

Fixes #97

Co-authored-by: Chirayu Desai <chirayudesai1@gmail.com>
2020-09-11 19:04:38 +05:30
Michael Bestas
eb15fa93ed Upgrade androidx-lifecycle-livedata to 2.3.0-alpha05
* All previous aar versions have their modified date set to 0 which trigger
  the following openjdk bug:
  https://bugs.openjdk.java.net/browse/JDK-8184940
  This fixes the following compilation error while building in AOSP environment:

    java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0
2020-09-11 19:04:38 +05:30
Michael Bestas
4283630e26 Drop dependency on kotlin-android-extensions
* Not available on AOSP.
2020-09-11 19:04:38 +05:30
Torsten Grote
5afcd0d6e6 Don't use BuildConfig, because it is only available for gradle builds
and not in AOSP builds which will break
2020-09-11 19:04:38 +05:30
Torsten Grote
1cdc2be930 Don't let the user start a new backup when one is already in progress 2020-09-11 19:04:38 +05:30
Torsten Grote
43b24b5c29 Show notification for backup running in the background
The system triggers backup jobs periodically or when a package is
announcing that its data has changed. So far we were not showing
notifications for those. This commit shows a notification with an
indeterminate progress bar as we don't have any information about how
many packages will get backed up.
2020-09-11 19:04:38 +05:30
Torsten Grote
a39f697a96 Enable backup of call logs
It turned out that call log backup is already in AOSP, but it is
disabled by an undocumented flag. This commit sets this flag (for new
and existing installs) to enable call log backup.
2020-09-11 19:04:38 +05:30
Torsten Grote
79aaaf5908 When restoring, set token from RestoreSet as new token 2020-09-11 19:04:38 +05:30
Torsten Grote
1b9a4feddd Clean up backup transport initialization logic
This commit makes creating new RestoreSets explicit.
Initializing a backup transport now actually cleans its data as the AOSP
documentation demands. This should be fine as we usually do a fresh
backup after a new initialization.
Contrary to before, an initialization does not create new RestoreSets
anymore, but works within the existing set. For now, only manually
choosing a new storage location creates a new RestoreSet.
2020-09-11 19:04:38 +05:30
Torsten Grote
80187c8c70 Show percentages in progress notification and x of n status at the end
Fine-grained progress reporting causes apps to show up twice which is
confusing. Also @pm@ metadata and opt-out APKs are too much detail for
normal users. So we decided to only show a percentage in the progress
notification.

When the backup finished, the app now shows "x of n apps backed up"
which is more positive when the previous negative message of how many
apps were not backed up.

Some further minor tweets were done to app counting to report proper
totals.
2020-09-11 19:04:38 +05:30
Torsten Grote
983f917391 Let backup notification report more fine-grained progress
This adds @pm@ record backup and APK backup of opt-out apps to the
progress reporting since these two operations are slow when using a
cloud storage SAF backend.
2020-09-11 19:04:38 +05:30
Torsten Grote
7bda3eb12b Improve DocumentsProvider tests against Nextcloud 2020-09-11 19:04:38 +05:30
Torsten Grote
25962ed307 Explain better how we force initialization via the SettingsManager 2020-09-11 19:04:38 +05:30
Torsten Grote
3a717b109d Make app blacklist accessible by multiple threads
Might fix #83
2020-09-11 19:04:38 +05:30
Torsten Grote
73e969a0bd Only consider apps that really opt-out of backup for early APK backup 2020-09-11 19:04:38 +05:30
Torsten Grote
e7a13fdb5c Ensure streams get closed eventually 2020-09-11 19:04:38 +05:30
Torsten Grote
91daa8e051 Fix icon color of storage locations (Nextcloud icon got tinted) 2020-09-11 19:04:38 +05:30
Torsten Grote
e138e0a4e2 Make PluginTest work for Nextcloud as well
Only issue left was a different maximum file name length for Nextcloud
2020-09-11 19:04:38 +05:30
Torsten Grote
7fdefda85f Replace all instances of DocumentFile#findFile with #findFileBlocking
Also start sticking closer to the official Kotlin formatting style
2020-09-11 19:04:38 +05:30
Torsten Grote
f7df78d2f3 Check for loading cursor also when checking if files exist
Loading cursors can happen with cloud-based documents providers
such as Nextcloud.
When they return a cursor that is still loading,
we might continue with stale information.
So now we wait for a loading cursor to be fully loaded
before continuing.
2020-09-11 19:04:38 +05:30
Torsten Grote
b1b522807c Add test to reproduce the loading cursor phenomena with Nextcloud
See: https://commonsware.com/blog/2019/12/14/scoped-storage-stories-listfiles-woe.html
2020-09-11 19:04:38 +05:30
Torsten Grote
b505425525 Add instrumentation tests for storage plugin (SAF) 2020-09-11 19:04:38 +05:30
Torsten Grote
f68095a463 Upgrade gradle 2020-09-11 19:04:38 +05:30
Michael Bestas
46cd13a55c String improvements
* Don't use camel case, following AOSP applications
* Set app name and Nextcloud as untranslatable
2020-09-11 19:04:38 +05:30
Robin Schneider
a51fcfc0b4 Remove wrongly inserted "g" char from AndroidManifest.xml
Introduced in: 78e217c7d8
2020-09-11 19:04:38 +05:30
Steve Soltys
78e217c7d8 Bump version code in Android manifest 2020-03-07 15:46:02 -05:00
Steve Soltys
bd52749c76 Version bump - 1.0.0 2020-03-07 15:41:49 -05:00
Torsten Grote
65905a7160
Hide navigation bar in SetupWizard for more visual consistency 2020-01-22 12:31:14 -03:00
Torsten Grote
3cdd381b51
Don't cache notification builders to always show the right icon 2020-01-22 12:25:32 -03:00
Torsten Grote
c52d372442
Don't make the app immersive in SetupWizard
Fixes third item in #63
2020-01-20 11:58:38 -03:00
Torsten Grote
324da2a9e9
Allow the user to exclude apps from backup
Closes #70
2020-01-20 11:58:38 -03:00
Torsten Grote
c92b9a3606
Credit Glenn Sorrentino on About page 2020-01-20 10:01:44 -03:00
Torsten Grote
5d38f061d9
Make some app status list tweaks suggested by our designer Glenn 2020-01-20 09:53:51 -03:00
Torsten Grote
a98364efbe
Back up APKs as early as possible to not miss any
Fixes #68
2020-01-18 16:42:26 -03:00
Torsten Grote
fcf17fe23a
Show list of apps and their backup status 2020-01-18 16:38:55 -03:00
Torsten Grote
de16032905
Don't use wildcard imports, because they are considered harmful 2020-01-14 15:40:56 -03:00
Torsten Grote
6ed522bfb7
Show one single progress bar in the notification
Also don't show individual package results,
but a single dismissible status notification in the end.

Closes #59, #61
2020-01-14 15:18:16 -03:00
Torsten Grote
2bcf82d607
Show heads-up notification when auto-restore fails due to removed storage 2020-01-14 10:17:38 -03:00
Torsten Grote
783e676be2
Optimize the restore of a single application (e.g. auto restore)
This restores only the @pm@ keys that are really needed
and thus speeds up installation with auto restore considerably
when using cloud storage such as NextCloud for example.
2020-01-14 10:17:37 -03:00
Torsten Grote
43184f4d23
Add note to auto-restore setting in case removable storage is used
This warns the user that auto-restore will only work when their storage
is plugged in.
2020-01-14 10:17:37 -03:00
Torsten Grote
22be36e2a7
When an app could not be restored, show the likely reason for it 2020-01-14 10:11:17 -03:00
Torsten Grote
74183d40d6
Add system app flag to metadata and check before installing system apps
that they are present as an older system app on the restore system.

Also ignore system apps without data to backup.
2020-01-14 10:11:17 -03:00
Torsten Grote
2a4ff39531
Simplify PackageService and use standard PackageManager
@stevesoltys this removes your old way of retreiving installed packages
via getInstalledPackages(0, UserHandle.USER_SYSTEM) as I couldn't find a
difference to the official way.

Also IGNORED_PACKAGES isn't needed anymore since
filterAppsEligibleForBackupForUser() already filters those out.
2020-01-14 07:45:41 -03:00
Torsten Grote
fea53a759f
Also back-up APKs of apps that are not allowed to have their data backed up 2020-01-14 07:45:41 -03:00
Torsten Grote
3d296e1335
Also back up APKs of apps that have no data or are above quota
This should also affect apps that have other errors during the backup
process, but it does not affect apps that opt-out of backup completely.

First part of #65
2020-01-14 07:45:41 -03:00
Torsten Grote
3f73119b52
Show restore data progress bar and improve readability of log messages 2020-01-14 07:45:40 -03:00
Torsten Grote
1924db7779
Move date restore view state into ViewModel to survive configuration changes 2020-01-14 07:45:40 -03:00
Torsten Grote
5632f11878
Show when package restore failed 2020-01-14 07:45:40 -03:00
Torsten Grote
9f01d09962
Don't get or write to full backup output stream before we are not sure there will be data to write 2020-01-14 07:45:39 -03:00
Torsten Grote
7b27242625
Show apps that we could not restore data for 2020-01-14 07:45:39 -03:00
Torsten Grote
690017c050
Only back up APK and write metadata when app was actually backed up
Apps that have nothing to back up start a backup but then get a call to cancelFullBackup()
and never even call finishBackup().
Do not write metadata for such apps, the call got moved to finishBackup().
2020-01-14 07:45:39 -03:00
Torsten Grote
2f352fe828
Show list of packages that we could restore data for 2020-01-14 07:45:39 -03:00
Torsten Grote
96a4642f4f
Show list of re-installed apps and let the user review it before restoring data 2020-01-14 07:45:38 -03:00
Torsten Grote
debaca0e2c
Ignore RestoreSets with no last backup time 2020-01-14 07:45:38 -03:00
Torsten Grote
f562857514
Expose APK backup feature as a setting, so the user can disable it
The user might not want to have their apps copied to the storage,
because it is very slow or for other reasons.
2020-01-14 07:45:38 -03:00
Torsten Grote
7605762631
Re-install backed-up APKs before restoring from backup 2020-01-14 07:45:37 -03:00
Torsten Grote
569e3db385
Fix device initialization and generation of new backup tokens 2020-01-14 07:45:37 -03:00
Torsten Grote
81c2031ce7
Back up APKs to storage (when they changed) and save metadata about them 2020-01-14 07:45:37 -03:00
Torsten Grote
b9cac5ea87
Introduce MetadataManager to handle all metadata related to backups
This now updates the metadata on remote storage and internal cache
after each successful package backup.
2020-01-14 07:45:36 -03:00
Torsten Grote
e1d55c8a4e
Add information about packages to backup metadata
This will be needed when backing up APKs.

ATTENTION: This is a breaking change, we only do because the app hasn't
been released.
2020-01-14 07:45:36 -03:00
Steve Soltys
01098a4d97
Merge pull request #60 from grote/check-messages
Encrypt values of key/value backups with multiple segments if needed
2019-12-22 20:24:33 -05:00
Torsten Grote
58a8f29b51
Encrypt values of key/value backups with multiple segments if needed
This turned out to be necessary, because some values on production
devices are exceeding the maximum segment size.
2019-12-19 08:55:57 -03:00
Torsten Grote
177e714001
Add error messages for unexpected state to ease debugging 2019-12-18 15:50:34 -03:00
Torsten Grote
94c7663daf
Use dependency injection with Koin 2019-12-17 09:56:45 -03:00
Torsten Grote
137e8033a7
Update time of backup progress notifications 2019-12-16 09:11:53 -03:00
Torsten Grote
d30cb309ca
Be more forgiving when checking available restore sets 2019-12-16 09:11:53 -03:00
Torsten Grote
440491425a
Work around DocumentFile bug happening with cloud-based DocumentsProviders
These might return outdated or now content when queried,
then check their cloud storage and report back with up-to-date content.
We now detect this (when looking for backups on newly setup storage)
and wait until the content has been loaded before acting on the
response.

This is affecting and was tested with NextCloud.
2019-12-16 09:11:52 -03:00
Torsten Grote
bbc8bdfaa5
Allow the user to leave the recovery code input if called from setup wizard 2019-12-11 13:48:00 -03:00
Torsten Grote
791f68300d
Allow to setup NextCloud account during restore
This is especially useful when restore is only allowed during
SetupWizard and the backup was stored on a NextCloud account.
2019-12-11 13:48:00 -03:00
Steve Soltys
cf86c57760
Merge pull request #52 from grote/about-page
Add About page
2019-12-07 15:13:01 -05:00
Torsten Grote
88a250ff5c
Use separate dev config and document existing config
Attention: This also changes the action to launch restore activity
2019-12-06 12:33:50 -03:00
Torsten Grote
49ce4b393f
Add a configurable white-list for backup storage 2019-12-06 12:21:49 -03:00
Torsten Grote
3093e3a789
Add About DialogFragment reachable from main overflow menu 2019-12-06 09:31:48 -03:00
Steve Soltys
32f558faf1 Rebrand application as 'Seedvault' 2019-10-28 21:57:47 -04:00
Torsten Grote
c9a29810fc
Remove unused code and resources 2019-09-25 11:04:24 -03:00
Torsten Grote
d81c355799
Advance a step when returning to SetupWizard from restore 2019-09-25 11:04:23 -03:00
Torsten Grote
470b5a2ccf
Tolerate backup attempts when flash drive is not plugged in
Also remove hardcoding of PACKAGE_MANAGER_SENTINEL constant
2019-09-23 10:29:01 -03:00
Torsten Grote
08018fcc9b
Do not allow manual backup/restore operations when removable storage is not available 2019-09-23 10:10:28 -03:00
Torsten Grote
cc2bb4a651
When selecting USB storage, do a backup right away
This is because USB drives are rarely plugged in,
so we should use every chance we get to do a backup.
2019-09-23 10:10:27 -03:00
Torsten Grote
26f23e95fe
Disable automatic backups when a removable USB flash drive is used
as storage location.

The backup backoff time is not reliable for this as the system still
attempts to backup the magic @pm@ package without checking for the
backoff value.
2019-09-23 10:10:27 -03:00
Torsten Grote
2c4d44c5b9
Grant MANAGE_USB permission, so we can get USB serial numbers
This is needed to reliably identify USB mass storage devices.
If someone has several identical thumb drives,
this prevents a backup from being performed when non-backup drives get attached.
2019-09-23 10:10:27 -03:00
Torsten Grote
007dd7759d
Save the time of the last backup and only do automatic flash drive backups once a day
This commit also turns SettingsManager into a class, so we can mock
and later also inject it.
2019-09-23 10:10:27 -03:00
Torsten Grote
b0386c8b66
Start backup automatically when flash drive used for backup is plugged in 2019-09-23 10:10:26 -03:00
Torsten Grote
650642068e
Don't try to do backups if storage is not available 2019-09-23 10:10:26 -03:00
Torsten Grote
bf28bc3338
Truncate files when writing to them explicitly
For some reason this wasn't an issue on Pie,
but an instrumentation test caught the change in behavior on Q.
2019-09-20 09:42:59 -03:00
Torsten Grote
e659892278
Fix CI by running tests with newer Java version, but target JDK 8 2019-09-19 12:52:31 -03:00
Torsten Grote
37ffacbafe
Upgrade to Android 10 (Q)
If somebody wants the backup app to work on a lower Android version,
they need to maintain a branch for that which uses and targets the old API.
2019-09-19 09:17:42 -03:00
Torsten Grote
8adb94c6c9
Explicitly tint storage root icons for system dark theme 2019-09-19 07:54:28 -03:00
Torsten Grote
0e5f9cff0f
Remove the progress bar for restore operation as progress reporting is bugyy
This also adds an additional warning when the user is using ejectable storage
2019-09-18 09:26:32 -03:00
Torsten Grote
55d92aec39
Adapt UI and text to the different use-cases (backup vs. restore) 2019-09-17 15:48:59 -03:00