Gander Android ファイルビューア – ゼロ権限オフライン文書リーダー

ゼロ権限オフライン閲覧が実際のプライバシーギャップを解決

Gander は、PDF、Word、Excel、PowerPoint、画像、動画、音声、Markdown、コードを Android で開くことができる 15 MB の単一 APK を提供し、権限、広告、ネットワークアクセスを一切要求しません。 これは、ほとんどの Android デバイスが複数のプロプライエタリビューアを搭載しており、文書をクラウドサービスにアップロードしてユーザーデータを露出させるため、重要です。


コア機能セット(結論から)

  • オールインワンビューア – 1 つのアプリで文書、スプレッドシート、スライド、写真、動画、音声、Markdown、ソースコードを処理します。
  • ゼロ権限 – アプリは INTERNET やストレージ権限を宣言せず、Storage Access Framework (SAF) と Open with インテントでファイルを受け取るため、他のファイルやネットワークにアクセスできないことが保証されます。
  • オフラインレンダリング – すべてのレンダリングライブラリが同梱されローカルで実行されます:PDF 用 Pdfium、スプレッドシート用 SheetJS、Word 用 docx‑preview、スライド用 PPTXjs、メディア用 Media3 ExoPlayer。
  • モダン UI – Material 3 デザイン、ダークモード、エッジツーエッジレイアウト、ピンチズームとスムーズスクロール、大きな画像のタイル式ディープズームを含む。
  • ファイル探索 – サムネイルプレビュー付きの最近のファイルと一度きりのフォルダー権限により、永続的なストレージ権限なしで閲覧できます。
  • 文書内検索 – テキスト検索は Word、Excel、PowerPoint、Markdown、プレーンテキスト、コードファイルで機能します。
  • 共有統合 – 任意のアプリから Gander にファイルを共有でき、開いたファイルは他のアプリへ送信したり、フォルダーをファイルマネージャで開くことができます。

サポートフォーマット(結論から)

カテゴリ フォーマット レンダリングエンジン
文書 PDF Pdfium (native)
Word .docx docx‑preview in sandboxed WebView
スプレッドシート .xlsx, .xls, .xlsm, .xlsb, .csv, .ods SheetJS (offline)
スライド PowerPoint .pptx PPTXjs (offline)
画像 JPG, PNG, WebP, BMP, HEIC/HEIF, GIF, SVG, AVIF, ICO Tiled view for raster, WebView for animated/vector
動画 MP4, M4V, MOV, MKV, WebM, 3GP, AVI, FLV, MPEG‑TS Media3 ExoPlayer
音声 MP3, M4A, AAC, FLAC, WAV, OGG, Opus, AMR Media3 ExoPlayer
Markdown .md marked + DOMPurify (HTML)
テキスト & コード .txt, .json, .xml, most source extensions Plain text viewer

レガシーなバイナリ .doc.ppt はサポートされていません。アプリはこの制限を説明し、モダンフォーマットへの変換を推奨します。


ゼロ権限トリックの仕組み(結論から)

Gander は Android の Storage Access FrameworkACTION_OPEN_DOCUMENT_TREE を活用し、ユーザーが選択した正確なファイルまたはフォルダーに対して 一度きりの URI 権限 を取得します。アプリは READ_EXTERNAL_STORAGEINTERNET を宣言しないため、システムは広範なファイルシステムやネットワークへのアクセスを付与しません。Office 文書はロックダウンされた WebView 内でレンダリングされ、リソースは WebViewAssetLoader を通じて提供されるため、すべての JavaScript ライブラリがアプリのアセットから読み込まれ、ネットワークリクエストは行われません。


インストールとアップデート(結論から)

  • インストール: GitHub のリリースページから最新の APK をダウンロードします(例: Gander‑x.y‑arm64.apk)。「不明なアプリのインストール」を有効にしてサイドロードします。
  • 自動アップデート: オープンソースのアップデータ Obtainium を使用します(https://github.com/mokshablr/gander をソースとして追加)ことで、Play ストアなしで新リリースを受け取れます。
  • 互換性: Android 8.0(API 26)以降で動作します。非常に古いデバイスや x86 デバイス向けにユニバーサル APK が用意されています。

コミュニティのフィードバックハイライト(結論から)

  • ユーザーは プライバシー第一の設計 と、肥大化したスイートやトラッカーなしでファイルを開ける点を称賛しています。

    "素晴らしいです。実世界の問題を解決する優れたツールを作ってくれました。インターネットアクセスを許可せず、すべてを追跡する 400 MB の肥大化したスイートをインストールせずに、ファイルをその場で開くことができるようになりました。" – chesscoachx

  • 複数のコメント者が F‑Droid 配布追加フォーマットサポート(例: ODT、ODS、RTF)を要望しています。

    "インストール前にユーザーが検証できるよう、README に署名を追加してください…" – aand16

  • 絶対的な隔離 に関する懸念が提起されています:INTERNET 権限がないアプリは自らソケットを開けませんが、別のアプリ(例: ブラウザ)を起動してデータを送信することは可能です。

    "INTERNET 権限がない Android アプリが外部から完全に隔離される保証はありません…" – TekMol

  • パフォーマンスに関するフィードバックでは、PDF レンダリングの 応答性Markdown プレビュープレーンテキストの折り返し の有用性が指摘されています。

    "本当に好きな点が二つあります:1. Markdown がプレビューとして読み込まれる 2. プレーンテキストファイルが右へスクロールする代わりに折り返される" – collabs


ソースからのビルド(結論から)

Gander を自分でコンパイルするには、JDK 17+ と Android SDK platform 35 をインストールし、以下を実行します:

./gradlew assembleRelease   # produces an unsigned APK

リリースに署名するためにはローカルキーストア(keystore/gander.jks)が必要です;リポジトリは意図的にそれを除外しています。


ロードマップと貢献(結論から)

計画中の改善点には F‑Droid への掲載、文書内容のオプション ダークモードレンダリング、そして iOS QuickLook コンパニオン が含まれます。貢献は GitHub の issue とプルリクエストで歓迎します;リポジトリにスターを付けると可視性が向上します。


ライセンス(結論から)

Gander は MIT License の下でリリースされています。バンドルされたすべての JavaScript ライブラリは、MIT、Apache‑2.0、BSD などの MIT と互換性のある許容的なライセンスを使用しています。

Sources