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 INTERNET or storage permissions; it receives files via the Storage Access Framework (SAF) and Open with intents, 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 PDF 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/gander as 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 INTERNET cannot 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.

Sources