NeoApplications / Neo-Backup

backup manager for android
GNU Affero General Public License v3.0
2.37k stars 120 forks source link

[Bug] Error trying to restore fingerprint data #744

Open furopi opened 1 year ago

furopi commented 1 year ago

I'm trying to restore my fingerprint backup, everytime I'm getting the error below. Or am I doing something wrong? Help much appreciated 💗

Screenshot_20230403-190441

hg42 commented 1 year ago

what about more info?

which version of NB?

e.g. backup vs restore: is it the same device? (and which?) the same ROM? (and which?)

also when files are mentioned in the error message, it's obvious, that you have a look, if they exist...

hg42 commented 1 year ago

as far as I interpret the code, the "needed" files (or their names) represent the files in the system. They need to be a subset of the files in the backup.

Then this seems to be wrong:

if (filesInBackup != null
    && (filesInBackup.size != expectedFiles.size
    || !areBasefilesSubsetOf(expectedFiles, filesInBackup))
) { ... }

subset usually means, the set can be smaller than the other set. If that is the case, comparing the size doesn't make sense.

Though it is questional if that's the intended meaning.

In your case user.db is in the backup but not in the system.

I guess, it will be created, if you teach a fingerprint (assuming you did not do that before). Can you check that? The special backups are a bit simplistic.

I guess it should have

furopi commented 1 year ago

I tried adding 1 finger and restored after, but same error. Un the end I set up everything manually. I thought this function could have been a nice feature, does it work on other devices?

I'm using a Poco F3 with A13 SuperiorOS

hg42 commented 1 year ago

I added it some time ago based on my device (Realme X2, rmx1993).

We never got enough feedback to go a step further...

We would need users that analyze their devices. Which files need to be saved and restored?

generally fp data is vendor and model specific. Even if it works for changing ROMs, it will usually not work when changing device models.

additionally the special packages framework isn't flexible enough to support different devices without coding.

I think, we should first add a scriptable plugin system. I have started experiments on that topic, but it will be a long way...