Installing
How do I install the APK?
XerahS isn't on the Play Store, so it comes as an APK file from GitHub Releases. You need Android 8.0 or newer.
- Open the latest release on your phone and download the
.apkfile. - Open it from your notifications or your Downloads folder.
- Tap Install. If Android asks for permission first, see the next question.
Updates install over the version you have, and your history and settings stay put.
Android says it can't install apps from this source
That's Android's guard for apps that don't come from an app store. It asks once for each app that wants to install something.
- The first install comes from your browser or file manager, so allow that app. You can turn it off again afterwards.
- Updates you download under Settings, Updates are installed by XerahS itself, so Android asks you to allow XerahS the first time.
Play Protect might also show a warning, since it doesn't know apps from outside the Play Store. The source code is all on GitHub if you want to check what you're installing.
Notifications and background uploads
Why doesn't XerahS show any notifications?
On Android 13 and newer, apps need permission to post notifications. XerahS asks for it when you turn on Offer to upload new screenshots. If you never turned that on, or said no, open Android's settings, then Apps, XerahS, Notifications, and allow them.
Uploads still work without notifications. You just won't see progress, or the Retry button when one fails. The upload queue in the app always shows both.
Uploads or screenshot offers stop when I leave the app
Some phones are aggressive about stopping apps in the background to save battery. Samsung, Xiaomi, OnePlus and Huawei are the usual suspects. XerahS runs uploads as a foreground service with a notification, which most phones respect, but some still step in.
Open Android's settings, then Apps, XerahS, Battery, and choose Unrestricted or turn off battery optimisation. The exact wording changes from phone to phone. dontkillmyapp.com has steps for most brands.
The widget isn't showing my latest upload
The widget refreshes when an upload finishes. It doesn't poll in the background, so if it missed that moment it stays as it was until the next upload.
- Upload something and check again.
- If it still doesn't change, remove the widget and add it again.
- Battery restrictions can block the refresh too. See the question above.
"No uploads yet" means your history is empty.
Messages in the app
What does "Already uploaded" mean?
XerahS keeps a SHA-256 hash of every file you upload. When a new file has the same hash as one in your history, it's the same file, so XerahS offers the link you already have.
- Copy existing copies the old link and skips the upload.
- Upload anyway sends it again and gives you a new link.
In a batch, the queue marks the file "Already uploaded". Its Upload anyway button lets you choose between Skip this file and sending it again.
If you delete the old upload from your history, the file counts as new again. When a batch is retried after a dropped connection, files that already finished are skipped, not flagged as duplicates.
"The server's identity changed" when uploading over SFTP
XerahS remembers each SFTP server's key from the first connection. This message means the server now has a different key. The message shows the saved fingerprint and the new one.
That's expected after you reinstall the server or change its key. In that case, open the SFTP settings and tap Forget saved host key, and the next connection saves the new key.
If nothing changed on your side, hold off. A different key can also mean something between you and the server is pretending to be it. The SFTP guide shows how to check the fingerprint on the server.
"Text recognition isn't available on this device"
Text recognition (OCR) runs on your phone using Google Play Services. Phones without Play Services, such as many de-Googled ROMs and recent Huawei phones, can't use it. Everything else in the app works the same.
If you see "Text recognition is still downloading", Play Services is fetching the recognition model. Give it a minute on a working connection and try again.