How come Android doesn't have a built in PDF viewer?

Wild Bill@midwest.social to Android@lemmy.world – 77 points –

Forgive me for this stupid question. I just transitioned from iPhone to Pixel (GrapheneOS) and I'm curious why there isn't a built in PDF viewer like on iPhone? It feels like you have to open things externally pretty often, but I figure there's a reason for that. I haven't used Android in many years and I recently developed an interest for the technical aspects of things, so again, do forgive this beginners question.

Cheers y'all!

35

Retail Android ships with Google's proprietary PDF viewer. GrapheneOS isn't the default experience.

GrapheneOS has an actively maintained PDF viewer app though.

https://github.com/GrapheneOS/PdfViewer

It's a secure PDF designed to sandbox the file before launching it, but unfortunately it's painful to use: no page scrolling, and no dark content view..

Page scrolling works fine and dark mode doesn't make sense...

Dark mode really starts to make sense when you're looking at documents for 7-10 hrs/day almost every other day for a month or two

Easier to maintain and update when the reader is an app not part of the core OS.

Yeah but system apps can be updated separately from the main OS on Android, so that doesn't really apply

You really should ask this in

http://discuss.grapheneos.org/

https://lemmy.ml/c/grapheneos.

It's a very helpful community. Someone will either explain why or point you to a FAQ. I bet it has something to do with the built in reader being insecure.

Edited... I totally gave the wrong url. Sorry. Corrected.

GrapheneOS actually has a built in PDF reader. Open the "Apps" app if it isn't installed. Look for "PDF Reader" and make sure its installed.

My Android /e/os, a fork of lineage os, also has a built-in one.

So yeah OP, I guess the question is, why does your phone not have a built-in PDF reader, not why android doesn't have one :D

I think I might be using the wrong terminology, forgive me. What I mean is, in my case, why does the PDF have to open in PDF reader instead of directly in the browser (like on iPhone)? That's what I mean when I say "opening things externally."

It doesn't have to, but GrapheneOS is designed around security first, privacy second, and usability third

If you install Fennec browser on it and open, e.g., https://www.learningcontainer.com/download/sample-pdf-file-for-testing/?wpdmdl=1566&refresh=6697dcd62a0141721228502

The PDF will display inside Firefox

The default web browser on GrapheneOS, Vanadium, doesn't parse PDF's (they're an incredibly insecure format) and passes them off to a sandboxed, hardened app specifically for that usecase

This allows rejecting more permissions than doing it in the same process

I think it's a fundamental design question. Apple wants users to do everything within their ecosystem, so they internalize as many functions as possible, whereas Android was designed to be lightweight and modular. Everything you don't absolutely need in a browser just clutters it up.

Personally I like the flexibility of using exactly the app I want for functions rather than having my OS enforce a default.

It doesn't need to be opened with any specific app. Android lets you set default apps for different file types (this is determined by the ending file name characters after the "."). Since you're on GrapheneOS, you're probably privacy-conscience and would be wise to stick with the app included with the OS. This behavior contrasts a user who heads to the Play Store and goes with any PDF reader willy-nilly.

The default app is unusable. There's literally no scrolling functionality. You have to tap a button to change pages

Apple is a bit like Microsoft in that regard. Their browser (safari) is so tightly integrated into their operating system that removing it is basically impossible. Due to that, they can use/abuse it for basic functionality like a pdf reader instead of creating a separate app for it.

Android, on the other hand, doesn't even have a real default browser. While Chrome ships as the default since android 4, it's basically just the app tacked on top. Since PDF readers on android existed before Chrome became the default, Google was never really bothered with including a build in PDF reader in their browser. It simply wasn't necessary. And since most browser depend on chromium, which lacks this functionality, they don't have it either.

Firefox on Android has the option to open PDFs, so if you want it, that would be an option. It isn't a limitation of the operating system, Google simply couldn't be bothered and most others just use copy + past on Chrome.

That makes total sense, now I get it. So all in all, it's more secure to have separate apps doing the job instead of jamming it all into an ecosystem?

A browser is also an app, it's not embedded into an OS.
In some it comes preinstalled, which is the case for safari in ios.
Also, some browsers just happen to include a PDF reader, but not all had or currently have.

As @viking@infosec.pub mentioned, Android is meant to be lightweight so it can run in several configurations of hardware.
Most OEM do include a browser in Android, this usually being Chrome. GrapheneOS is basically just Android (in this context) so it doesn't include a browser or a PDF reader, but both are available as a dedicated app from the GrapheneOS team or with any other app you want, for example I use readera, or sometimes Firefox.

AOSP has no default PDF viewer, many GAAPS (official roms, custom roms with full gapps etc.) roms do have a pdf viewer by default.

There are many available PDF viewers around making a good pdf viewer is actually pretty hard, I reccomend just trying a bunch on fdroid and seeing what sticks out to you.

I long for the day PDF can just be replaced by SVG since its basically just vector anyways.

It was a long and expensive battle just to keep "pdf" as "open" (lol) as it already is.

There are a million legacy reasons why Adobe, MS, IBM, Meta, Alphabet, are loathed, but here we are....

Pdf has a mind-bogging array of features, which make it so entrenched in the corporate world with no viable replacements at the moment. Things like forms where users can fill them out and submit (surprisingly a popular feature), cryptographic signing to prevent tampering, DRM, etc. Heck, I think you can even add JavaScript code to a pdf.

forms where users can fill them out and submit (surprisingly a popular feature)

How is that surprising?

And SVG can be quite readable if the text isn't converted to path.

I have a built-in "PDF Viewer" app in my GrapheneOS. (app.grapheneos.pdfviewer)