PDF Viewer
app.grapheneos.pdfviewer
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
First release: Jan 19, 2026, 2 total releases.
Most recent release: Jul 8, 2026.
Appears in 2 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Jul 8, 2026 32Notable changes in version 32: * add horizontal swipe gestures for previous/next page navigation * migrate UI to use Jetpack Compose, Material 3, and Jetpack Navigation * use a new Compose-based page indicator * replace jump-to-page dialog to use simple text input * convert remaining Java app code to Kotlin * improve edge-to-edge PDF rendering and window inset handling * improve default zoom handling on resize and orientation changes * show error feedback for document load failures and reset document state after load errors
More…
* reset rotation, zoom, outline, document properties and password state when opening a new document * fix toolbar title and Save As filename resolution with translated document property labels * support PDF 2.0 dates and fix PDF date timezone and validation handling * adapt pdf.js worker CSP, Wasm handling and required Wasm/fallback assets * add JavaScript polyfills needed by newer pdf.js versions for older WebView versions * move document property loading and Save As I/O off the main thread * update pdf.js library to 6.1.200 * update esbuild to 0.28.1 * update ESLint to 10.6.0 * update Vitest to 4.1.10 * update other npm dependencies * update AndroidX Core KTX library to 1.19.0 * update AndroidX Lifecycle libraries to 2.11.0 * update Material Components library to 1.14.0 * update Kotlin to 2.4.0 * update KSP symbol-processing Gradle plugin to 2.3.9 * update Gradle to 9.5.1 * update Android Gradle plugin to 9.2.1 * update Android SDK to 37 (Android 17) * update target SDK version to 37 (Android 17) * update Android build tools to 37.0.0 A full list of changes from the previous release (version 31) is available through the [Git commit log between the releases](https://github.com/GrapheneOS/PdfViewer/compare/31...32). ---- 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 the network, files, content providers or any other data. Content-Security-Policy is used to enforce that the JavaScript and styling properties within the WebView are entirely static content from the APK assets along with blocking custom fonts since pdf.js handles rendering those itself. 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 less access than it would have within the browser. ---- This app is [available through the Play Store with the `app.grapheneos.pdfviewer.play` app id](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play). 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. 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. Each release is initially pushed out through the Beta channel followed by the Stable channel. Releases of the app signed by GrapheneOS with the `app.grapheneos.pdfviewer` id are published in the [GrapheneOS App Store](https://github.com/GrapheneOS/AppStore/releases) which provides fully automatic updates. Each release is initially pushed out through the Alpha channel, followed by the Beta channel and then finally the Stable channel. These releases are also bundled as part of GrapheneOS and published on GitHub. **GrapheneOS users must obtain GrapheneOS app updates through our App Store since verified boot metadata is required for out-of-band system app updates on GrapheneOS as part of extending verified boot to them.** - Notable changes in version 31: * minor fixes for edge-to-edge support to avoid incorrect theme colors * fix issue causing the text layer used for text selection to not rotate when the PDF is rotated within the app * enable hardware memory tagging for use outside of GrapheneOS in the narrow cases where it's available for apps opting into it (Android 16 Advanced Protection Mode on hardware with support for MTE) * update pdf.js library to 5.4.149 * update esbuild to 0.25.9 * update other npm dependencies * update AndroidX Fragment KTX library to 1.8.9 * update AndroidX Core KTX library to 1.17.0
More…
* update AndroidX AppCompat library to 1.7.1 * update Gradle to 8.14.3 * update Android Gradle plugin to 8.12.2 * update Kotlin to 2.2.10 * update Android SDK to 36 (Android 16) * update Android build tools to 36.0.0 A full list of changes from the previous release (version 30) is available through the [Git commit log between the releases](https://github.com/GrapheneOS/PdfViewer/compare/30...31). ---- 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 the network, files, content providers or any other data. Content-Security-Policy is used to enforce that the JavaScript and styling properties within the WebView are entirely static content from the APK assets along with blocking custom fonts since pdf.js handles rendering those itself. 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 less access than it would have within the browser. ---- This app is [available through the Play Store with the `app.grapheneos.pdfviewer.play` app id](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play). 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. 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. Each release is initially pushed out through the Beta channel followed by the Stable channel. Releases of the app signed by GrapheneOS with the `app.grapheneos.pdfviewer` id are published in the [GrapheneOS App Store](https://github.com/GrapheneOS/AppStore/releases) which provides fully automatic updates. Each release is initially pushed out through the Alpha channel, followed by the Beta channel and then finally the Stable channel. These releases are also bundled as part of GrapheneOS and published on GitHub. **GrapheneOS users must obtain GrapheneOS app updates through our App Store since verified boot metadata is required for out-of-band system app updates on GrapheneOS as part of extending verified boot to them.**