celzero / rethink-app

DNS over HTTPS / DNS over Tor / DNSCrypt client, WireGuard proxifier, firewall, and connection tracker for Android.
https://rethinkfirewall.com/
Apache License 2.0
2.61k stars 132 forks source link

A more "portable" more complete backup format #1470

Open weedy opened 1 month ago

weedy commented 1 month ago

I recently got bitten updating from v0.5.5a to and again yesterday from v0.5.5i to v0.5.5j. Both times needing to rollback and restore but still reconfigure a bunch of proxies and exclusions.

Could you not just copy/paste sqlite databases and use something else for the data storage? If I forget to backup on the old version first I have a 90% chance of the data restore failing (ie: yesterdays j -> i downgrade) and then I have to start from scratch.

Also backing up blocklist if you're running them locally would be nice. I normally have to restore settings twice because it doesn't accept the settings the first time.

ignoramous commented 1 month ago

So sorry. Backup and restore relies on a lot of stars aligning just right for it to work. I can assure you that in our tests, they work more often than not, but we don't test it exhaustively.

Could you not just copy/paste sqlite databases and use something else for the data storage?

Could, but who's going to spend time implementing it? ;) It isn't as trivial as it may sound, and unfortunately we've got other more pressing bugs to fix.

Could you not just copy/paste sqlite databases and use something else for the data storage?

That's what the system does (which is why it is also limited; for ex, doesn't work when downgrading).

Also backing up blocklist if you're running them locally would be nice.

You mean on-device blocklists? Those are 100mb+. Though, it is a good point that we should let users optionally choose to either back it up or not.

I normally have to restore settings twice because it doesn't accept the settings the first time.

On-device blocklists settings or you mean something else?

weedy commented 1 month ago

My biggest pain point is forgetting to do a backup just before an upgrade. So yeah, backups not working for downgrades sucks.

Yes, because I use on device block lists it's doesn't restore properly before I download the lists again.

ignoramous commented 1 month ago

My biggest pain point is forgetting to do a backup just before an upgrade

I guess #896 might bring some respite.

pandadeepimpact commented 2 weeks ago

Backup and restore relies on a lot of stars aligning just right for it to work. I can assure you that in our tests, they work more often than not, but we don't test it exhaustively.

Would it be possible to break the backup into several parts? I'm just thinking that if each backup covers a small area rather than the entire app, fewer no. of stars need to align for them to work. This might also make some parts of the backup movable in other phones or between versions.

ignoramous commented 2 weeks ago

It is possible, yes.

backup movable in other phones

The reason we aren't able to make backups work across devices is, for whoever it fails, they don't share much data/information with us so we can reproduce it ourselves and fix it. Backups across devices doesn't fail at all when we try it.

As for backups across versions, that is super hard to make it work due to the complexity involved.

pandadeepimpact commented 2 weeks ago

The reason we aren't able to make backups work across devices is, for whoever it fails, they don't share much data/information with us so we can reproduce it ourselves and fix it. Backups across devices doesn't fail at all when we try it.

Maybe because such situations are rare in the first place? With the current backup configuration (full only), the only scenario I can think of where I would need to move a backup to another phone is when I replace my device.

Though I actually have encountered that situation, but never thought of transferring the backup since a lot of apps are different between the 2 phones, where I simply assumed the chance of failure or corruption to be high. Sorry about that...

ignoramous commented 2 weeks ago

never thought of transferring the backup since a lot of apps are different between the 2 phones

It should work despite this. For apps that are common, the settings should have been restored. If not, it is a bug which you should file, with hopefully the database (if possible) and logs so we can see what's going on.