Deck mode passes -steamdeck alone: -steamos3 opted the install into the steamdeck_stable branch and started the restart loop Bannerlator hit on device (38996ea1). The SteamOS helpers the client calls in that mode - the two Armada found it needs under steamos-polkit-helpers and the three under /usr/bin - are staged from the apk as no-op stubs. The client branch on disk is kept in step with the one forced on the command line, and an update that cannot install stops the session after three restarts instead of looping for ever. The Steam cog gets a Client branch row: public beta (every session so far) or Steam Deck public beta, the channel Armada bootstraps from. The client reads /sys/class/power_supply/BAT<n>/; Android's supply is called battery and laid out differently, so the Quick Access Menu had no battery. BatteryComponent writes BAT0 and BAT1 from Android's battery API every five seconds - status, percentage, charge, energy, power and time to empty - into a directory bound over /sys/class/power_supply.
SteamDeck
Run Valve's native ARM64 Steam client on an Adreno Android device. Steam runs in a Linux runtime under proot, with gamescope and an in-app Vulkan compositor. Windows games use Valve's ARM64 Proton and FEX. A desktop with LXQt, Firefox, and emulators is also available.
Requirements and install
Use Android 9 or newer on a supported Adreno device (730 or newer, or 8xx). Mali, Xclipse, PowerVR, and Adreno 710 are unsupported. No root is required. Allow about 3 GB for the runtime and 1.1 GB more for the desktop and emulators. Install the APK from Releases, install the Linux runtime, then press Play and sign in. Steam downloads on first launch. Install Desktop & apps to use the desktop and emulators.
On Android 12+, if Steam exits without a log, turn off Restrict child processes in Developer options.
Build
Run tools/build_local.sh with Docker and the Android SDK/NDK installed. The APK is written to app/build/outputs/apk/release/app-release.apk. To install it on an attached device, run tools/deploy_local.sh.
Limits
Compatibility and performance vary by device; hardware validation is limited. Desktop compositing uses software rendering. Firefox sandboxing is reduced under proot. See the session logs in Download/SteamDeck/ when diagnosing problems.
Credits and licence
GPL-3.0. Runtime, shim, input, and controller work build on WinNative and Bannerlator (maxjivi05); audio, gamepad, and session foundations build on Winlator (brunodev85). See LICENSE. Steam and Proton belong to Valve Corporation; this project is not affiliated with Valve.