pithos/mobile/android
Local Dev 083a2e1db8 Pithos for Android: the browser app on a phone, with Save to Pithos
A first Pithos app for phones. It runs the browser app in a WebView and
answers the page's own files from the APK under the gateway's origin, so
the page stays the same-origin client it was designed as and the files
are still encrypted and decrypted in the page.

What the phone adds: "Save to Pithos" in other apps' share menus (the
files wait in a bar until a folder is open), downloads written to the
Downloads folder, the system file picker for uploads, and outside links
opened in the phone's browser.

The browser app learns the two hooks (window.PithosAndroid) and says
plainly when a browser is too old to sign in, instead of a bare
"NotSupportedError".
2026-10-07 23:06:33 +02:00
..
res Pithos for Android: the browser app on a phone, with Save to Pithos 2026-10-07 23:06:33 +02:00
src/st/silentmode/pithos Pithos for Android: the browser app on a phone, with Save to Pithos 2026-10-07 23:06:33 +02:00
.gitignore Pithos for Android: the browser app on a phone, with Save to Pithos 2026-10-07 23:06:33 +02:00
AndroidManifest.xml Pithos for Android: the browser app on a phone, with Save to Pithos 2026-10-07 23:06:33 +02:00
build.ps1 Pithos for Android: the browser app on a phone, with Save to Pithos 2026-10-07 23:06:33 +02:00
README.md Pithos for Android: the browser app on a phone, with Save to Pithos 2026-10-07 23:06:33 +02:00

Pithos for Android

The browser app (Pithos/web) in a WebView, plus what a phone adds:

  • Save to Pithos in other apps' share menus: shared files wait in a bar above the file list and go into the open folder with Upload here.
  • Downloads land in the phone's Downloads folder (MediaStore on Android 10+).
  • Upload opens the system file picker (several files at once).
  • Links to other sites open in the phone's browser; Back steps back in the app.

The page's own files ship inside the APK and are answered by the app under the gateway's origin (https://s3.silentmode.st), so the page is the same same-origin client as in a browser: sign-in, the account API and S3 go to the network, and files are encrypted and decrypted in the page. The origin moves to https://pithos.silentmode.st once that name has a DNS record (a remembered sign-in is kept per origin, so it is asked for again once).

Sign-in needs Ed25519 in Web Crypto: an up-to-date Android System WebView (Chrome 137 or newer).

Build

No Gradle: JDK 8, build-tools 30.0.3 and platform android-30, like Ariadne.

powershell -File build.ps1            # build\pithos-debug.apk
powershell -File build.ps1 -Release   # build\pithos-v<version>.apk, release key

The release key (release.keystore + release-keystore-password.txt) is made on the first release build and must be kept forever: Android installs an update only when it is signed by the same key. Neither file goes in git.

Not yet

  • Your own Sia account (s3d on your computer) is not reachable from a phone; the app opens Drives on Silent Mode, and S3 keys for them.
  • Photo backup, share links from the app, Theseus ID sign-in.
  • iOS (needs a Mac to build).