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".
1.7 KiB
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).