Deck mode: the four helpers the client really calls, at the path it calls them

On device the client's console log showed the calls: /usr/bin/steamos-polkit-helpers/steamos-update,
steamos-select-branch, jupiter-biosupdate and jupiter-dock-updater - the polkit-helpers path, not
/usr/bin. The missing steamos-update there was the 'Update Error' dialog. Stubs at both paths now.

Also seen on device: -steamdeck alone opts the install into the steamdeck_stable branch too, so the
branch guard is what keeps a session from reinstalling; and on the publicbeta channel Deck mode
reports installed version 0 at every start and reinstalls the same client (rc=42, the launch URL
lost with it), while on steamdeck_publicbeta the second launch comes up with no restart at all.
This commit is contained in:
The412Banner committed 2026-09-23 09:12:14 -04:00
1 parent 3492229a00
commit 773f4a6e6d
5 files changed
+33

No files matched your search

@@ -44,6 +44,12 @@ object SessionFiles {
"usr/bin/jupiter-biosupdate" to "usr/bin/jupiter-biosupdate",
"usr/bin/steamos-polkit-helpers/steamos-priv-write" to "usr/bin/steamos-polkit-helpers/steamos-priv-write",
"usr/bin/steamos-polkit-helpers/steamos-set-timezone" to "usr/bin/steamos-polkit-helpers/steamos-set-timezone",
// On device the client called these four by their polkit-helpers path, not /usr/bin: the
// "Update Error" dialog was steamos-update missing there.
"usr/bin/steamos-polkit-helpers/steamos-update" to "usr/bin/steamos-polkit-helpers/steamos-update",
"usr/bin/steamos-polkit-helpers/steamos-select-branch" to "usr/bin/steamos-polkit-helpers/steamos-select-branch",
"usr/bin/steamos-polkit-helpers/jupiter-biosupdate" to "usr/bin/steamos-polkit-helpers/jupiter-biosupdate",
"usr/bin/steamos-polkit-helpers/jupiter-dock-updater" to "usr/bin/steamos-polkit-helpers/jupiter-dock-updater",
)
// The desktop's launcher and labwc defaults, only where the desktop package is installed:
// staging them into a runtime without it would make the desktop look present when it is not.
@@ -0,0 +1,3 @@
#!/bin/sh
# No Deck BIOS here. The client calls this in Deck mode; a clean exit is "nothing to do".
exit 0
@@ -0,0 +1,4 @@
#!/bin/sh
# No Deck dock here. The client calls this from the polkit-helpers directory in Deck mode; a
# clean exit is "nothing to update".
exit 0
@@ -0,0 +1,11 @@
#!/bin/sh
# The SteamOS update-branch selector the client calls in Deck mode. The session forces the client
# branch on the command line and keeps package/beta in step with it, so a selection here would
# only start the restart loop the session script describes. List and report the stable branch;
# accept and ignore a choice.
case "${1:-}" in
-l) printf 'rel\n' ;;
-c) printf 'rel\n' ;;
*) : ;;
esac
exit 0
@@ -0,0 +1,9 @@
#!/bin/sh
# What the Steam client calls in Deck mode (from /usr/bin/steamos-polkit-helpers/, seen in its
# console log on device; a copy sits in /usr/bin as well) to look for a SteamOS update. There is no SteamOS
# here: the answer is "no update", which is exit 7 in SteamOS's convention, and the client moves
# on. --supports-duplicate-detection is a capability probe and answers yes. Staged from the apk.
case "${1:-}" in
--supports-duplicate-detection) exit 0 ;;
esac
exit 7