FirmwareValidator: automatically validate previously validated image on revert #2225
+57
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2213
When a firmware is validated, its commit hash is now saved in littlefs (
/.system/autovalidator.dat
)On startup, the firmware now checks its hash against the one in the file and if they are identical and the image is not validated yet, it automatically does so.
This means that on revert to a previously validated firmware (obviously without validating the current one), the old image will self validate.
There are a lot of changed files, because the validator now needs file system access and therefore needs to be constructed earlier and passed down into
DisplayApp
andSystemTask
. I subjectively chose to put it next tosettingsController
wherever possible, but if there is any rule where to put it, the change is easy.This needs a small change in InfiniSim, PR there is: InfiniTimeOrg/InfiniSim#167