frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Gander, an Android file viewer that asks for no permissions at all

https://github.com/mokshablr/gander
26•mokshablr•2h ago
Hi HN,

I built an Android file viewer that opens PDF, Word, Excel, PowerPoint, images, video, audio, Markdown and code, and asks for no permissions at all.

I have always been uneasy about opening files people send me. On Android you either install a 400 MB office suite and sign in or use a small free viewer that wants storage access and ends up uploading your file to a server to render it. Also the hassle of having to download different apps for different file formats was really annoying.

Gander holds no permissions, not even INTERNET so the OS itself guarantees the file cannot leave the phone.

PDFs use Pdfium, media uses Media3, and Office formats are rendered by bundled JS libraries in a WebView and so no request goes to any server.

It is a viewer only. Complex PowerPoint decks come out approximately right, spreadsheet charts are not drawn, and old binary .doc and .ppt are unsupported. I'll work on it as issues come up :P

It is 14 MB, MIT licensed and uploaded on Github releases.

Do try it! I would love some feedback especially on files that render badly or need new support.

Comments

Mobeen0119•2h ago
Since everything is offline, what ended up being the hardest format to support while keeping rendering faithful?
vrighter•1h ago
Why would rendering a document need internet access?
Chilinot•53m ago
PDFs can do all sorts of shenanigans, such as bundle executable javascript that runs when the file is opened.
TekMol•59m ago
This is interesting.

I thought granting internet access to apps is not avoidable on Android.

When an app does not request internet, is it really guaranteed that it cannot talk to the outside world? Or is it having other avenues like opening a browser or some other component with a custom url or something?

Update: I just asked Gemini, and it does not look good:

An Android app without the INTERNET permission is not guaranteed to be isolated from the outside world. While it cannot make direct network connections itself, it can use several other mechanisms to transmit data externally:

Intent-Based Communication (The Browser) An app can launch an explicit or implicit Intent to hand data over to another app that does have internet access.

That means the app can open a system browser using a URL containing the data it wants to transmit.

It can also load a Chrome Custom Tab inside its own UI task, passing data through the URL string.

There is also Inter-Process Communication: If two apps from the same developer share a User ID (sharedUserId), they run in the same process and share all permissions, including internet access.

There is also the concept of Content Providers: Content Providers allow apps to share data. An offline app can write data into a shared database or a public Content Provider. A secondary, online-enabled app can then read that database and upload the contents.

sheept•33m ago
I guess that makes sense. Since most non-privacy-focused Android distributions don't let users turn off the internet permission, keeping the permission secure likely ceased to be a priority.

The full list of bypasses is likely much larger because it doesn't fall in the scope of bug bounties.

marak830•1m ago
Christ that's depressing.

I'm assuming that all works even with application sandboxing (1) or am I mis-reading how that is applied to applications.

Man I need to move my movement to GrapheneOS up to be sooner.

(1) https://source.android.com/docs/security/app-sandbox

sgc•50m ago
Can you add odt, ods, etc support? I use libreoffice viewer but it would be nice to reduce the number of apps on my device.
dheerajvs•50m ago
Tried it and I love it. Good work! Have you considered hosting it on F-Droid?
HelloUsername•39m ago
Seems nice, will check it out. I liked this one as well: "Little File Explorer – File Manager for Android 1.0 and above" 28.dec.2023 https://news.ycombinator.com/item?id=38789958
tim-projects•5m ago
Sounds great! You'll just need your social security or passport id sent to google to install and use it... sobs
ziagham•2m ago
Nice idea

The session you cannot take with you

https://earendil.com/posts/session-portability/
242•apitman•4h ago•49 comments

JEP 401: Value Objects (Preview) merged to OpenJDK master

https://github.com/openjdk/jdk/pull/31120
80•mfiguiere•3h ago•23 comments

DeepSeek-V4-Flash Update

https://api-docs.deepseek.com/updates/
150•dnhkng•2h ago•48 comments

Stacked PRs are now live on GitHub

https://github.blog/changelog/2026-07-30-stacked-pull-requests-are-now-in-public-preview/
620•tomzorz•15h ago•206 comments

Show HN: What should the GUI for AI agents look like?

https://marbleos.com/demo
32•akbabu•2h ago•15 comments

I flagged two research papers for fake authors and both were accepted as orals

https://geospatialml.com/posts/reviewing-ai-slop/
177•volumes94•9h ago•76 comments

Show HN: Gander, an Android file viewer that asks for no permissions at all

https://github.com/mokshablr/gander
27•mokshablr•2h ago•11 comments

Gemini Robotics 2 brings whole body intelligence to robots

https://deepmind.google/blog/gemini-robotics-2-brings-whole-body-intelligence-to-robots/
547•ai2027•16h ago•436 comments

Where USB Memory Sticks are Born (2013)

https://www.bunniestudios.com/blog/2013/where-usb-memory-sticks-are-born/
42•jacquesm•3d ago•3 comments

The mean means nothing: data visualization to debug a latency problem

https://fzakaria.com/2026/07/27/the-mean-means-nothing
26•fanf2•1d ago•2 comments

Read this before you buy that TV streaming stick

https://krebsonsecurity.com/2026/07/read-this-before-you-buy-that-tv-streaming-stick/
694•speckx•15h ago•397 comments

Simulating TCP loss and congestion in browser using Go/WASM

https://ccsim.fly.dev
9•dilyevsky•2d ago•0 comments

Physicists Solve a Muon Mystery. Now, Old Results Don't Add Up

https://www.quantamagazine.org/physicists-solve-a-muon-mystery-now-old-results-dont-add-up-20260729/
212•ibobev•16h ago•129 comments

The AI Aesthetic

https://blog.jim-nielsen.com/2026/ai-aesthetic/
291•montroser•8h ago•126 comments

The Religion of Speed

https://graybeard.ing/the-religion-of-speed/
127•MobiusHorizons•8h ago•66 comments

The Economic Benefit of Refactoring

https://martinfowler.com/articles/exploring-gen-ai/refactoring-economic-benefit.html
232•javaeeeee•17h ago•96 comments

CodePen 2.0

https://chriscoyier.net/2026/07/30/codepen-2-0/
165•robin_reala•14h ago•47 comments

Rune 1.1: adds Python, an Emacs editor, a symbol index and is now free

https://rune.build/blog/rune-1-1-release
80•ernestrc•10h ago•27 comments

Bad Apple but It's Traceroute

https://jssfr.de/2026-07-27-bad-apple-but-traceroute.html
101•jssfr•3d ago•24 comments

The American Grilled Cheese Sandwich Essay (2024)

https://buttondown.com/theswordandthesandwich/archive/the-best-american-grilled-cheese-sandwich-e...
47•NaOH•3d ago•34 comments

Memo-1: A 6502 computer built from scratch, using a Minitel as its terminal

https://github.com/MemoireMorte/Memo-1
73•sciences44•2d ago•10 comments

GCC steering committee announces AI policy

https://lwn.net/Articles/1086041/
284•arto•20h ago•312 comments

UEFA and its national associations will not participate in FIFA competitions

https://www.uefa.com/news-media/news/02a7-213a92896eb0-54dfbf454e3b-1000--statement-on-behalf-of-...
986•dickfickling•13h ago•530 comments

Show HN: Cubic Doggo 06R: 12-DOF 4-Legged Robot with IMU

https://github.com/SphericalCowww/CubicDoggo_06R
3•SphericalCowww•5d ago•0 comments

The lost civic life of movie rental stores

https://thereader.mitpress.mit.edu/the-lost-civic-life-of-movie-rental-stores/
162•facundo_olano•18h ago•215 comments

Show HN: Distilling DeepSeek into GPT-OSS doesn't transfer censorship. Try it

https://www.ctgt.ai/research/distillation-censorship-transfer
122•cgorlla•14h ago•64 comments

Saber-toothed cats became inbred–and struggled to move–before they went extinct

https://www.science.org/content/article/saber-toothed-cats-became-inbred-and-struggled-move-they-...
49•gmays•10h ago•22 comments

Investigating three real-world incidents in our cybersecurity evaluations

https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals
176•surprisetalk•9h ago•136 comments

Advancing the price-performance frontier with GPT‑5.6

https://openai.com/index/advancing-the-price-performance-frontier-with-gpt-5-6/
568•tedsanders•14h ago•366 comments

Why is everyone trying to build a solid-state battery?

https://www.construction-physics.com/p/why-is-everyone-trying-to-build-a
189•crescit_eundo•19h ago•239 comments