Download
depot / guides / android-termux

A depot puller in your pocket

Yes, this works: an Android phone, Termux, and the full DepotDownloader pulling Steam depots over Wi-Fi. It's part party trick, part genuinely useful escape hatch — and entirely dependent on knowing three or four quirks in advance. I set this up on my own phone to test it, so here's the setup that actually worked for me and the list of things that bit me along the way.

01Why you'd want this

Honest answer first: most of the time, you wouldn't — any laptop does this faster and with less ceremony. But there's one scenario where the phone earns its place, and it's a very this-site scenario: the archive-it-now emergency. You're away from your machines, you learn a manifest you care about still gets a request code — a game's delisting, an update is landing tomorrow, the status page just turned a shade redder — and the window won't wait for the weekend. A phone with Termux and enough free storage is a real depot-pulling machine in that moment. Beyond that: grabbing workshop items or small config depots on the go, and the simple satisfaction of it working at all. If your portable machine is a handheld rather than a phone, the Steam Deck guide covers running the tool there, where you get a real Linux userland and none of the PRoot tax.

02How it works — and why PRoot is involved

DepotDownloader's Linux ARM64 build expects a regular Linux userland — glibc, the standard dynamic linker. Android has neither in the place programs look: its libc is Bionic, and a glibc-linked binary greets you with "cannot execute: required file not found". The community fix is TermuxDepotDownloader: a script that installs PRoot (a no-root containerization layer) with a minimal Alpine Linux environment inside Termux, and puts DepotDownloader inside that. You get the genuine, unmodified tool — same flags, same behaviour, same error catalogue — running in a tiny Linux bubble your phone doesn't need to be rooted for.

03The install

Step 1 — get the right Termux. Not the Play Store one: that build is frozen years out of date and the bootstrap will fail on it. Install Termux from F-Droid or the project's GitHub releases.

Step 2 — storage access. Inside Termux, run termux-setup-storage and grant the permission, so downloads can land somewhere you can actually reach from the rest of the phone.

Step 3 — the bootstrap one-liner:

$ bash <(curl -sSL "https://raw.githubusercontent.com/TheKingFireS/TermuxDepotDownloader/alpine/installproot.sh")

It fetches PRoot, the Alpine image and DepotDownloader, and wires up a depotdownloader wrapper command. If the package steps die with mirror errors — a Termux classic — run termux-change-repo, pick another mirror, and rerun the script. That mirror error is exactly what bit me on my first run; switching to a different mirror cleared it on the second try.

04Using it

$ depotdownloader -app 220 -depot 221 -username you -dir HL2 -validate

From here it's the same tool this whole site documents — manifest downgrades, anonymous servers, all of it. Phone-specific advice: passwords with special characters need quoting (the shell is still a shell), or sidestep typing entirely — -remember-password after the first login means one painful thumb-typed password ever (what that stores). One genuinely awkward note: -qr is the wrong tool on the phone itself — the QR renders on the same screen the Steam app would need to scan. On a phone, the password prompt is the practical route.

05The quirk list

  • Play Store Termux. Worth repeating because it's the #1 failure: if the bootstrap dies immediately, check where Termux came from. F-Droid or GitHub, nothing else.
  • Sleep kills downloads. Android dozes background apps mid-pull. Run termux-wake-lock before a big download (and termux-wake-unlock after), or keep the screen on and the phone plugged in — a multi-gigabyte depot is a battery event.
  • Storage reality. Game depots are desktop-sized; your phone isn't. Check free space first, point -dir at shared storage you can offload from, and treat the phone as a courier — pull, transfer to real storage, delete.
  • Flag parsing oddities. The wrapper has shown an occasional "Error: -app not specified!" on commands that look correct — reordering flags (app first) has been the community workaround. It's a wrapper quirk, not a DepotDownloader bug.
  • Maintenance honesty. TermuxDepotDownloader is a small community script, updated occasionally rather than continuously — the bundled DepotDownloader may trail the latest release. The DIY fallback if the script breaks: proot-distro with a regular distro and the official linux-arm64 build inside it — same architecture, more typing.
  • Slow is normal. PRoot taxes syscalls and phone flash isn't NVMe. It'll finish; it won't race your desktop.

Stuck on something that doesn't look Termux-specific? Then it probably isn't — the 401 diagnostic and login error decoder apply on a phone exactly as they do anywhere else. If it were my emergency archive run, I'd keep the phone plugged in with a wake-lock held and treat it strictly as a courier — it got the job done for me, but I wouldn't make it my main rig.