Gander Android 파일 뷰어 – 권한 없는 오프라인 문서 리더
Gander Android 파일 뷰어 – 권한 없는 오프라인 문서 리더
Gander는 15 MB 크기의 오픈소스 Android 앱으로, 사용자가 PDF, Office 파일, 미디어, Markdown 및 코드를 전혀 온라인 연결 없이, INTERNET 권한을 포함한 어떠한 권한도 요청하지 않고 완전히 오프라인으로 볼 수 있게 합니다.
Gander Android 파일 뷰어 – 권한 없는 오프라인 문서 리더
권한 없는 오프라인 뷰잉이 실제 프라이버시 격차를 해결합니다
Gander는 Android에서 PDF, Word, Excel, PowerPoint, 이미지, 비디오, 오디오, Markdown 및 코드를 어떠한 권한, 광고 또는 네트워크 접근 없이 열 수 있는 15 MB 단일 APK를 제공합니다. 이것은 대부분의 Android 기기가 여러 개의 독점 뷰어를 탑재하고 있어 문서를 클라우드 서비스에 업로드하여 사용자 데이터를 노출시키기 때문에 중요합니다.
핵심 기능 세트 (결론 먼저)
- 올인원 뷰어 – 하나의 앱이 문서, 스프레드시트, 슬라이드, 사진, 비디오, 오디오, 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로 공유할 수 있으며, 열려 있는 파일을 다른 앱으로 보낼 수 있거나 해당 폴더를 파일 관리자에서 열 수 있습니다.
지원 포맷 (결론 먼저)
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 문서는 WebViewAssetLoader를 통해 리소스를 제공하는 잠금된 WebView 내부에서 렌더링되어, 모든 JavaScript 라이브러리가 앱의 assets에서 로드되고 네트워크 요청이 이루어지지 않도록 보장합니다.
설치 및 업데이트 (결론 먼저)
- 설치: GitHub 릴리스 페이지에서 최신 APK를 다운로드합니다(예:
Gander‑x.y‑arm64.apk). “알 수 없는 앱 설치”를 활성화하고 사이드로드합니다. - 자동 업데이트: 오픈소스 업데이트 도구 Obtainium을 사용합니다(
https://github.com/mokshablr/gander를 소스로 추가)하여 Play Store 없이 새로운 릴리스를 받을 수 있습니다. - 호환성: Android 8.0 (API 26) 이상에서 실행되며, 매우 오래된 기기나 x86 기기를 위한 범용 APK가 제공됩니다.
커뮤니티 피드백 하이라이트 (결론 먼저)
- 사용자들은 프라이버시 우선 설계와 무거운 스위트나 트래커 없이 파일을 열 수 있는 점을 칭찬합니다.
"멋집니다. 실제 문제를 해결하는 훌륭한 도구를 만들었습니다: 인터넷 접근 권한을 부여하지 않고, 모든 것을 추적하는 400 MB 무거운 스위트를 설치하지 않아도 파일을 즉시 열 수 있습니다." – chesscoachx
- 여러 댓글 작성자는 F‑Droid 배포와 추가 포맷 지원(예: ODT, ODS, RTF)을 요청합니다.
"Obtainium으로 설치하기 전에 사용자가 검증할 수 있도록 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 이슈와 풀 리퀘스트를 통해 환영합니다; 저장소에 별표를 달면 가시성을 높일 수 있습니다.
라이선스 (결론 먼저)
Gander는 MIT 라이선스 하에 배포됩니다. 번들된 모든 JavaScript 라이브러리는 MIT, Apache‑2.0, BSD와 같은 관용적인 라이선스를 사용하며 MIT와 호환됩니다.