-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] V0 full encryption + support v1 + better arg handling + better logging + extra bip39 validation #16
base: master
Are you sure you want to change the base?
Conversation
… is now the parent dir of the encrypted backup
…thout extension on encryption
this is exciting to see! i'll be testing this out and will report my experience here. |
Awesome contribution, thanks a lot! I just browsed through a bit and wondered if it would make sense to split the v0/v1 parts into separate files instead of mixing both into huge files. |
Yeah, was I thinking there might be utility in having it as one file, like just download the file and use it. Currently that doesn't work because of the protocol buffer modules, which I was thinking of adapting to be put inline in the file. But thinking more about it, even then there's still the non-builtin dependencies, makes it not as simple as downloading or transferring a single file. So yeah, it makes more sense to break it out. I'm not sure I'll get to this soon though. |
tested this out, unfortunately it aborts when running i've verified that golang seedvault-extractor extracts this backup correctly, though it does skip a number of packages in unsupported states. here's the output of the failure:
seems to fail while attempting to extract org.connectbot. perhaps a hint is that seedvault-extractor skips this package with the reason:
|
This is odd. I thought I'd read that STOPPED apps do not get backed up. So there shouldn't be a backup data file for this app. Yet the code path taken indicated that there is such a file. I understand you to be saying that seedvault-extractor just skips this backup. It could be that there should be a backup, but that there has been some corruption of the encrypted file. I think that would produce a similar error. I've added a change that will catch the exception you're hitting, output an error message, and continue on. The error message will be of the form Also please tell me what versions you are running for python and the various modules. Here's mine:
And I'm running Python 3.10.12 on an ubuntu derivative, and have tested on Python 3.11.2. tink version 1.9.0 is working for me as well. If you versions do not match, please update them to those versions (perhaps in a virtual env if needed) and retest. Also, note that multiple |
a9e3b47
to
07db9d8
Compare
@khimaros Looking at this again, I have many apps in the |
07db9d8
to
bfbc34a
Compare
Could it be that an app was backed up, then later entered the stopped state, so it is in |
Mmmh, looks like this MR is stalled? Could this be made its own fork, as the repo owner doesn't seem to react? (although I find seedvault horrible to use - no 'manual only backups', no 'backup all user data with the directory structure that is on the device', no 'I don't want encryption' choice, no 'backup to computer via mtp or whatever' (but you have to find a usb c adapter, and a usb stick, or need to waste tons of energy and bandwidth and space to backup into nextcloud, or have to own a device that has an sd card slot, or need to waste space on the actual drive, where it's not safe anyway - I have a laptop, and want to use it!). It's the worst piece of backup software I've ever encountered, but I don't have / want root, so this is what I'm stuck with, as apparently, adb backup doesn't work anymore, according to old deprecation messages. If you have any tips on how to backup the system to a (linux) pc directly, I'll take that.) |
This is a major upgrade and refactoring that adds support for full V0 backup encryption, V1 backup decryption, better logging, and argument parsing. Included are the changes from #10. This should be backwards compatible with existing decrypted backups. Major refactoring is done such that there are now a class for the decryptor and encryptors. The method naming scheme was left as is, but that leaves much to be desired. This fixes #14.