Skip to content
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

Wip/hughsie/fwupd sync.service #6337

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Conversation

hughsie
Copy link
Member

@hughsie hughsie commented Nov 8, 2023

Type of pull request:

…ranch

This allows the device to set a branch (e.g. the modem carrier configuration)
and for the client to be able to *downgrade* the firmware version to make the
device work.
@hughsie hughsie requested a review from superm1 November 8, 2023 15:06
@hughsie hughsie self-assigned this Nov 8, 2023
@hughsie
Copy link
Member Author

hughsie commented Nov 8, 2023

@superm1 insane?

Copy link
Member

@superm1 superm1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens when PK authentication is required? There could potentially be devices that need PK in the update.

@hughsie
Copy link
Member Author

hughsie commented Nov 8, 2023

What happens when PK authentication is required

Ohh for downgrade -- maybe we could run the -sync service as root always?

@superm1
Copy link
Member

superm1 commented Nov 8, 2023

What happens when PK authentication is required

Ohh for downgrade -- maybe we could run the -sync service as root always?

A service that runs as root and potentially fetches stuff from the web? I'm a bit wary of that.

@hughsie
Copy link
Member Author

hughsie commented Nov 8, 2023

A service that runs as root and potentially fetches stuff from the web? I'm a bit wary of that.

Ew, indeed -- agreed. I guess it could work for things we already have in the cache -- e.g. an "offline only" mode -- we already store the firmware .cab for all modem carrier configs and so that's more likely than you'd expect. Similarly for a BKC, in that case a directory remote is going to be much more common as you probably don't want random things downloading GBs of data without some kind of user confirmation.

@superm1
Copy link
Member

superm1 commented Nov 8, 2023

How about instead having a mode for the daemon to auto-sync without a client?

@superm1
Copy link
Member

superm1 commented Nov 8, 2023

Thought about it more, here's my idea.

When a bkc is specified in fwupd.conf you change fwupd refresh service behavior to cache not just metadata but also anything that is part of the bkc.

The daemon reads the same key and if those devices show up will automatically upgrade/downgrade to match them. It will also forbid clients from upgrading/downgrading them manually.

@hughsie
Copy link
Member Author

hughsie commented Jul 24, 2024

@superm1 I'm struggling with the idea of the daemon doing anything itself -- so far the story is that daemon is "dumb" and just listens for requests from the client. It feels wrong for the daemon to get the device hotplug event and then just start deploying without any kind of user notification. The same can be said of this PR of course.

@superm1
Copy link
Member

superm1 commented Jul 24, 2024

Well the important part is that it's only a manual opt in and that a log is saved somewhere of everything that happens.

That's why I think only doing it with a BKC for example makes sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

2 participants