Effective date: 2026-09-28
This policy describes how the Ottershelf Android app (package io.github.ottershelf) handles
information. Ottershelf is an open-source reading app for self-hosted BookOrbit servers, published
by the Ottershelf project. Its source code is available at
https://github.com/redmundmcmund/ottershelf, so every statement below can be checked against it.
Ottershelf is a client for a BookOrbit server that you or someone else operates. Everything your library and reading history consist of lives on that server, and the app exchanges it with that server only. The server’s operator, not the Ottershelf project, controls that data and decides how it is stored, logged, retained and deleted, under that operator’s own privacy practices. Like any web server, the server may record connection details such as your IP address, the time of each request and the app’s user agent.
https:// servers are accepted; the app refuses unencrypted http:// connections and
trusts only the certificate authorities in Android’s system store.The app sends your server what it needs to work, as a result of what you do in the app:
Your server may in turn contact metadata or cover providers that its operator has configured (for example when you search for a book request or a cover). The app does not contact those providers; cover previews are loaded through your server.
Book details, covers and book files, your library’s lists, statistics, achievements and the other information the server provides for your account are downloaded to display them and, when you choose Download, to keep books on the phone for offline reading.
When you select text in a book and tap Look up, the app sends the selected word or phrase (at
most twelve words; longer selections are not sent) to Wiktionary (en.wiktionary.org) and
Wikipedia (in the book’s language or English), which are operated by the Wikimedia Foundation. It
may also load a thumbnail image from Wikimedia’s servers. These requests:
Wikimedia’s handling of these requests is described in the Wikimedia Foundation privacy policy. The book’s language, used to choose the Wikipedia edition, is read from your own server.
The app hands information to another app only when you ask it to: sharing a highlight, a quote card image or exported highlights through Android’s share sheet; sending selected text to a dictionary or translation app installed on your phone; or opening a link in your browser. What those apps do with it is governed by their own policies.
The camera is used only after you grant the permission, and only for:
Instead of the camera you can pick an existing image with Android’s Photo Picker, which gives the app access only to the image you pick.
The app stores on the phone, in its private storage unless noted:
Pictures/Ottershelf folder and remain there, like any other picture, until you delete them.The app’s data is excluded from Android backups and device-to-device transfers, so it does not leave the phone through them.
| Permission | Why the app requests it |
|---|---|
INTERNET |
To connect to your BookOrbit server and, on Look up, to Wiktionary and Wikipedia. |
ACCESS_NETWORK_STATE |
To notice when the connection returns and send progress saved offline. |
CAMERA |
ISBN scanning, page photos for quotes and cover photos; requested only when you start one of these. The camera is optional. |
POST_NOTIFICATIONS |
Download progress (with Cancel) and results, and the reading timer’s notification and countdown alert; requested when first needed. |
FOREGROUND_SERVICE, FOREGROUND_SERVICE_DATA_SYNC |
To keep a book download you started running while the app is in the background. |
RECEIVE_BOOT_COMPLETED |
To restore a running reading timer’s notification and countdown alarm after the phone restarts or the app is updated. |
WAKE_LOCK |
Added by Android’s WorkManager library, to keep background work such as downloads and sync from being interrupted while it runs. |
The app also declares a permission restricted to itself
(io.github.ottershelf.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION, added by AndroidX), which other
apps cannot use. It does not request location, contacts, microphone, storage, phone, calendar or
account permissions.
Ottershelf contains no analytics, advertising, attribution, crash-reporting or telemetry SDKs, and no Google Play services or Firebase libraries. Barcode scanning (zxing-cpp) and text recognition (Tesseract, with its English model bundled in the app) run entirely on the phone. The ebook reader’s WebView is set to opt out of sending usage metrics. The only third-party service the app contacts is Wikimedia, as described above.
Ottershelf is not directed at children and does not knowingly collect information from anyone. It shows only content from the BookOrbit server you sign in to; which content that server holds is up to its operator.
No system is perfectly secure. You can report a vulnerability as described in SECURITY.md.
Pictures/Ottershelf remain until you
delete them.The app does not create accounts; accounts are created on the BookOrbit server.
Changes are published in this file in the project’s repository, with a new effective date, and its history is visible there. A change that affects what the app sends or to whom is also noted in the release notes of the version that introduces it.
Questions about this policy can be asked by opening an issue at https://github.com/redmundmcmund/ottershelf/issues. Please report security problems privately as described in SECURITY.md rather than in a public issue.