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 にファイルを共有でき、開いたファイルは他のアプリへ送信したり、フォルダーをファイルマネージャで開くことができます。
サポートフォーマット(結論から)
| カテゴリ | フォーマット | レンダリングエンジン |
|---|---|---|
| 文書 | 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 Framework と ACTION_OPEN_DOCUMENT_TREE を活用し、ユーザーが選択した正確なファイルまたはフォルダーに対して 一度きりの URI 権限 を取得します。アプリは READ_EXTERNAL_STORAGE や INTERNET を宣言しないため、システムは広範なファイルシステムやネットワークへのアクセスを付与しません。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 と互換性のある許容的なライセンスを使用しています。