Gander Android File Viewer – Zero-Permission Offline Document Reader
Zero‑Permission Offline Viewing Solves a Real Privacy Gap
Gander provides a single 15 MB APK that can open PDFs, Word, Excel, PowerPoint, images, video, audio, Markdown and code on Android without any permissions, ads or network access. This matters because most Android devices ship with multiple proprietary viewers that upload documents to cloud services, exposing user data.
Core Feature Set (Conclusion First)
- All‑in‑one viewer – One app handles documents, spreadsheets, slides, photos, video, audio, Markdown and source code.
- Zero permissions – The app declares no
INTERNETor storage permissions; it receives files via the Storage Access Framework (SAF) andOpen withintents, guaranteeing it cannot access other files or the network. - Offline rendering – All rendering libraries are bundled and run locally: Pdfium for PDFs, SheetJS for spreadsheets, docx‑preview for Word, PPTXjs for slides, and Media3 ExoPlayer for media.
- Modern UI – Material 3 design, dark mode, edge‑to‑edge layout, pinch‑to‑zoom and smooth scrolling, including tiled deep‑zoom for large images.
- File discovery – Recent files with thumbnail previews and one‑time folder grants let users browse without persistent storage permission.
- Search inside documents – Text search works for Word, Excel, PowerPoint, Markdown, plain text and code files.
- Share integration – Files can be shared into Gander from any app, and the open file can be sent to other apps or its folder opened in a file manager.
Supported Formats (Conclusion First)
Gander can open the following formats directly:
| Category | Formats | Rendering Engine |
|---|---|---|
| Documents | Pdfium (native) | |
Word .docx |
docx‑preview in sandboxed WebView | |
| Spreadsheets | .xlsx, .xls, .xlsm, .xlsb, .csv, .ods |
SheetJS (offline) |
| Slides | PowerPoint .pptx |
PPTXjs (offline) |
| Images | JPG, PNG, WebP, BMP, HEIC/HEIF, GIF, SVG, AVIF, ICO | Tiled view for raster, WebView for animated/vector |
| Video | MP4, M4V, MOV, MKV, WebM, 3GP, AVI, FLV, MPEG‑TS | Media3 ExoPlayer |
| Audio | MP3, M4A, AAC, FLAC, WAV, OGG, Opus, AMR | Media3 ExoPlayer |
| Markdown | .md |
marked + DOMPurify (HTML) |
| Text & Code | .txt, .json, .xml, most source extensions |
Plain text viewer |
Legacy binary .doc and .ppt are not supported; the app explains the limitation and suggests converting to the modern formats.
How the Zero‑Permission Trick Works (Conclusion First)
Gander leverages Android’s Storage Access Framework and ACTION_OPEN_DOCUMENT_TREE to obtain one‑time URI grants for the exact files or folders the user selects. Because the app never declares READ_EXTERNAL_STORAGE or INTERNET, the system does not grant broader filesystem or network access. Office documents are rendered inside a locked‑down WebView whose resources are served via WebViewAssetLoader, ensuring that all JavaScript libraries are loaded from the app’s assets and no network requests are made.
Installation and Updates (Conclusion First)
- Install: Download the latest APK from the GitHub releases page (e.g.,
Gander‑x.y‑arm64.apk). Enable “install unknown apps” and sideload. - Automatic updates: Use the open‑source updater Obtainium (add
https://github.com/mokshablr/ganderas a source) to receive new releases without a Play Store. - Compatibility: Runs on Android 8.0 (API 26) and newer; a universal APK is available for very old or x86 devices.
Community Feedback Highlights (Conclusion First)
- Users praise the privacy‑first design and the ability to open files without bloated suites or trackers.
"Great. You built an excellent tool to solve a real‑world problem: being able to open files on the fly without granting internet access and without having to install 400 MB bloated suites that track everything." – chesscoachx
- Several commenters request F‑Droid distribution and additional format support (e.g., ODT, ODS, RTF).
"Please add signature to readme so users can verify before installing with Obtainium…" – aand16
- Concerns about absolute isolation are raised: an app without
INTERNETcannot open sockets itself, but it could still launch another app (e.g., a browser) to transmit data."An Android app without the INTERNET permission is not guaranteed to be isolated from the outside world…" – TekMol
- Performance feedback notes the responsiveness of PDF rendering and the usefulness of Markdown preview and plain‑text wrapping.
"Two things I really like: 1. Markdown loads as preview 2. Plain text files wrap instead of scrolling to the right" – collabs
Building from Source (Conclusion First)
To compile Gander yourself, install JDK 17+ and Android SDK platform 35, then run:
./gradlew assembleRelease # produces an unsigned APK
A local keystore (keystore/gander.jks) is required for signing releases; the repository deliberately excludes it.
Roadmap and Contributions (Conclusion First)
Planned improvements include an F‑Droid listing, optional dark‑mode rendering for document contents, and an iOS QuickLook companion.
Contributions are welcomed via GitHub issues and pull requests; a star on the repository helps visibility.
License (Conclusion First)
Gander is released under the MIT License. All bundled JavaScript libraries use permissive licenses (MIT, Apache‑2.0, BSD) compatible with MIT.