Edmond Chang Passage

Passage · Android

Privacy Policy

Last updated 5 September 2026

Passage is an Android app for reading the EPUB and PDF files already stored on your phone, with a text-to-speech voice that runs on the device itself. It is made by Edmond (edmondcjg.com) and distributed under the package name com.passage.reader.

This policy explains what Passage does with your information. It is short because Passage does very little with it.

The short version. Passage has no accounts, no servers and no analytics. Your books, your place in them, your highlights and your settings stay in the app’s private storage on your own device.

The developer cannot see any of it. Nothing you read is ever uploaded, and the app’s own network use amounts to one voice-model download and, occasionally, a single dictionary word.

Your book files

Passage reads EPUB and PDF files that are already on your phone. When you import one, the app copies it into its own private storage and parses it there, keeping the extracted text — chapters as plain text files, plus the cover image if the book has one — so that reading, speed-reading and read-aloud all work from the same source.

The file you imported from is never modified, moved or deleted, and removing a book from the shelf removes only Passage’s own copy. No book, page or extracted line is transmitted anywhere at any point.

What Passage stores on your device

All of it private to the app and unreadable by other apps on your phone:

What Passage does not do

Passage does not:

When Passage uses the network

Three occasions, and no others.

The voice download

Read-aloud uses a neural text-to-speech model that runs entirely on your phone. The model is around 130 MB and is not bundled into the app, so Passage downloads it once — in the background, on first launch — from the public sherpa-onnx model release feed on GitHub. It shows its progress on the Profile screen and can be cancelled there; cancel it once and Passage does not start it again. The request asks for a file and sends nothing about you or your library. After the model has landed, read-aloud never touches the network again, and the speech itself is synthesised on the device.

A word the built-in dictionary does not know

Passage ships with its own offline dictionary, compiled from WordNet, and answers almost every lookup from it. When a word is not in it — proper nouns and recent coinages, mostly — the app makes one HTTPS request to the free public dictionary API at api.dictionaryapi.dev. That request carries the single word you looked up and nothing else: no identifier, no book title, no surrounding text. If it fails, the lookup simply reports that the word was not found. That service has its own privacy policy and, as with any web request, your device’s IP address is visible to it.

Links you tap

“Search the web”, offered on a word Passage could not define, opens Merriam-Webster in your browser, and the optional tip link opens a coffee page in your browser. Both leave the app and are governed by those sites’ own policies. Passage has no billing integration and never sees any payment information.

Permissions, and why they exist

Storage — none requested

Passage declares no storage permission at all. Instead you choose one folder, and Android’s own folder picker grants Passage access to that folder and nothing else. The grant is held by the system, survives restarts, and you can withdraw it from Android’s app settings. Passage reads the EPUB and PDF files in that folder, ignores everything else in it, and never writes to or deletes anything outside its own private storage.

You do not have to grant a folder. The Add books screen can also take a single file through Android’s document picker, which hands over only the one file you choose.

An earlier version of Passage asked for all-files access so it could scan the whole card for books. That permission is restricted to file managers and backup tools, and it was more than a reading app should hold, so it is gone.

Notifications and foreground service

These let the voice-model download and audio playback keep running while the app is not in front of you, and let the lock screen show playback controls. Notification permission is requested only at the point it is first needed.

Internet and wake lock

Internet is used for the two requests described above. Wake lock keeps the screen awake while you are reading and keeps playback alive during read-aloud.

Payments

Passage is free. There are no ads and no in-app purchases. There is a single optional tip link, which opens in your browser; what happens there is governed by that service’s own policy.

Android backup

Android’s automatic backup is enabled, which is the platform default. If you have backup turned on in your Google account settings, Android may copy the app’s private data — including your library and the books it has copied in — to your own Google Drive. That copy belongs to your Google account, not to the developer, who has no access to it. You can turn this off in your device’s system backup settings.

How long information is kept

Everything stays on your device until you remove it. You can:

Because nothing is stored on a server, uninstalling is a complete deletion. There is no copy for anyone to recover, including the developer.

Children

Passage is not directed at children and collects no information about anyone. It has no accounts, no messaging and no content visible to anyone but the person using the device.

Your rights

Data protection laws such as the GDPR and the CCPA give you rights to access, correct, export and delete personal information held about you. Because Passage collects no personal information and holds nothing on any server, there is nothing for the developer to look up, hand over or erase — you already hold the only copy, and the app gives you the tools to delete it yourself.

Third parties

The voice model is downloaded from the sherpa-onnx release feed hosted on GitHub. The fallback dictionary is api.dictionaryapi.dev. Merriam-Webster and the tip page are reached only if you tap those links, and only in your browser. There are no others, and none of them receives anything about you or your library.

Changes to this policy

If Passage’s behaviour changes in a way that affects this policy, this page will be updated and the date at the top revised.

Questions about this policy or about Passage:

privacy@edmondcjg.com

About this website

This page is part of edmondcjg.com, a personal portfolio site. The page you are reading loads no fonts, scripts, cookies or third-party resources, and nothing about your visit is recorded here. Other pages on the site embed videos from YouTube, which sets its own cookies when a video is played; that has no connection to the Passage app or to the data described above.