github GrapheneOS/PdfViewer 13

latest releases: 19, 18, 17...
2 years ago

Full list of changes from the previous release (version 12). Notable changes:

  • add share action, which includes the ability to share with the OS printing system (we still plan on offering an internal print option using the internal PDF rendering for better security)
  • update pdf.js to 2.13.216
  • update other dependencies
  • update target API level to 32 (Android 12.1)
  • rename internal package name to app.grapheneos.pdfviewer to match app id
  • drop support for builds with legacy org.grapheneos.pdfviewer app id (GrapheneOS has transparently migrated to app.grapheneos.pdfviewer and the app uses app.grapheneos.pdfviewer.play on the Play Store now, users outside GrapheneOS need to uninstall the old variant of the app if they haven't moved to the new variant yet)

Simple Android PDF viewer based on pdf.js and content providers. The app doesn't require any permissions. The PDF stream is fed into the sandboxed WebView without giving it access to content or files. Content-Security-Policy is used to enforce that the JavaScript and styling properties within the WebView are entirely static content from the apk assets. It reuses the hardened Chromium rendering stack while only exposing a tiny subset of the attack surface compared to actual web content. The PDF rendering code itself is memory safe with dynamic code evaluation disabled, and even if an attacker did gain code execution by exploiting the underlying web rendering engine, they're within the Chromium renderer sandbox with no access to the network (unlike a browser), files, or other content.

This app is available through the Play Store with the app.grapheneos.pdfviewer.play app id. Play Store releases go through review and it usually takes around 1 to 3 days before the Play Store pushes out the update to users. This version has passed review and is available through the Play Store. Play Store releases use Play Signing, so we use a separate app id from the releases we publish ourselves to avoid conflicts and to distinguish between them.

Releases of the app signed by GrapheneOS with the app.grapheneos.pdfviewer app id are published in the GrapheneOS app repository and on GitHub. You can use the GrapheneOS app repository client on Android 12 or later for automatic updates.

Don't miss a new PdfViewer release

NewReleases is sending notifications on new releases.