Commit graph

434 commits

Author SHA1 Message Date
Michael Bestas
d0cf968d06
Improve .editorconfig setup
Add rules for all the project files.
Inspired by android studio editorconfig, results in
all files containing newlines at the end of file for
consistent code style throughout the app.

Change-Id: Ifc98fcf75f8e78526a0e186b2b14d44f0f7e45ac
2021-08-25 18:24:53 +03: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
23e8f6503c Upgrade storage lib after recent set of changes 2021-07-05 20:08:29 +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
056bdc3bf3 Fix crash that happens when starting RestoreActivity without key
This instantiates all sorts of classes down to Restore which accessed the streamKey that is still unavailable at this point. Now it is only instantiated lazily when actually starting a restore.
2021-07-05 20:08:29 +05:30
Torsten Grote
781bcd28d3 Remove storage snapshots from list if we can't decrypt them 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
a762d1b64e Upgrade gradle and test libraries 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
f373f4bb97 release 0.9.7 of storage demo app 2021-07-05 20:08:29 +05:30
Torsten Grote
801dcc42ed add READMEs and tie them together in main README 2021-07-05 20:08:29 +05:30
Torsten Grote
e77d5cad2c Update storage design document and add some TODOs to the code 2021-07-05 20:08:29 +05:30
Torsten Grote
858954e82d Add user dictionary to repo for spellchecker 2021-07-05 20:08:29 +05:30
Torsten Grote
0aee5cc2aa Provide correct version to associated data 2021-07-05 20:08:29 +05:30
Torsten Grote
e7a8ad50e8 Add version number to chunks cache
so we can later do in-place version upgrades and find out which chunks we need to store new versions for
2021-07-05 20:08:29 +05:30
Torsten Grote
61fe823a04 Check that version in snapshot matches the one in chunks 2021-07-05 20:08:29 +05:30
Torsten Grote
be9a84d704 Add storage design document 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
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
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
Torsten Grote
28f9447317 Also consider contacts with account 'com.android.contacts' for backup
In our tests with CalyxOS, all local contacts had a null account, but for some reason on LineageOS, those contacts have 'com.android.contacts'. So we now consider this as well.
2021-04-16 23:30:43 +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
Torsten Grote
e38f958f9c
Merge pull request #220 from chirayudesai/aosp-key
Change signing configuration to use AOSP platform key
2021-03-05 13:49:37 -03:00
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
ecdc0c2716
Merge pull request #209 from grote/main-key
Store main key for key derivations from 512-bit BIP39 recovery code
2021-02-17 09:41:16 -03:00
Torsten Grote
43dbcdfa79
Merge branch 'master' into main-key 2021-02-17 08:19:54 -03:00
Torsten Grote
a0bf7b6ae3
Merge pull request #206 from grote/content-provider-removed-crash
Don't crash when storage app gets uninstalled
2021-02-17 08:19:25 -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