# GrapheneOS/PdfViewer

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. CSP is used to enforce that the JavaScript and styling properties within the WebView are entirely static.

Repository: https://github.com/GrapheneOS/PdfViewer
Canonical: https://ross.abutalabs.com/products/pdfviewer
Homepage: https://grapheneos.org/
Language: Kotlin
License: MIT
License Family: permissive
Topics: android, pdf, pdf-viewer, security, grapheneos, pdfjs
Last push: 2026-08-31T21:12:48+00:00

## Health v2 (maintenance only)
Score: 98/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 100, release rhythm 95, longevity 100
- inputs: {"age_days": 3516, "days_push": 2, "days_rel": 34, "gap_med": 4, "n_releases_24m": 14}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1024, forks 143 (observed 2026-09-01T02:13:54.980542+00:00)

## What it is
A minimal, permission-free Android PDF viewer built on pdf.js and content providers, developed by the GrapheneOS project. It renders PDFs in a sandboxed WebView with strict Content-Security-Policy enforcement so the rendering code has no access to files, network, or other data.

## Use cases
- view pdf files on android without granting permissions
- secure pdf viewer that can't leak document contents
- open untrusted pdfs safely on a phone
- replace default pdf viewer with a hardened one
- sandboxed pdf rendering on android
- privacy-focused pdf reader app

## When to choose
- you need to open PDFs on Android with minimal attack surface and zero permissions
- you handle sensitive or untrusted PDF documents and want sandboxed rendering
- you use GrapheneOS or value hardened, privacy-focused Android apps

## When to avoid
- you need PDF editing, annotation, or form-filling features
- you want a full-featured reader with bookmarks, cloud sync, or theming
- you need a PDF viewer for desktop platforms

## Facets
- artifact type: application
- maturity: active
- function: pdf-viewer, security
- domain: pdf, privacy, security, mobile-development
- platform: -
- tags: pdfjs, webview, content-providers, grapheneos, kotlin, permissionless, csp, sandboxing, android, mobile

## Member repositories
- GrapheneOS/PdfViewer (main) score 98

## Provenance
- Observed fields: from GitHub, fetched 2026-09-01T02:13:54.980542+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:09:26.069326+00:00, confidence not recorded.
  - readme: https://github.com/GrapheneOS/PdfViewer (fetched 2026-09-01T02:13:54.980542+00:00, sha e8b47b609215)
  - homepage: https://grapheneos.org/ (fetched 2026-08-29T13:09:40.307020+00:00, sha fd2048a5631b)
  - site_page: https://grapheneos.org/features (fetched 2026-08-29T13:09:40.316474+00:00, sha 0c04eca55939)
  - site_page: https://grapheneos.org/install (fetched 2026-08-29T13:09:40.320872+00:00, sha 1069f5fe9080)
  - site_page: https://grapheneos.org/faq (fetched 2026-08-29T13:09:40.322726+00:00, sha 8f5ac8ce4a47)
  - site_page: https://grapheneos.org/releases (fetched 2026-08-29T13:09:40.327812+00:00, sha 5690feec0727)
- Data as of 2026-08-30T08:39:29.467469+00:00.
