Releases: jeiel85/clear-pdf-local
Release list
v1.6.2 — Audit follow-up (stability fixes)
ClearPDF Local v1.6.2 — audit follow-up (stability fixes)
A self-audit (5-dimension code review + adversarial verification) found the feature set complete and the no-INTERNET brand build-enforced, with three confirmed medium bugs and minor cleanup. This release fixes them.
Fixed
- Stale-index race: reprocess ops (mode / dewarp / finger / glare) now re-resolve the page by a stable id before writing back, so deleting a page while another is processing can no longer change the wrong page or orphan a temp file.
- Cache orphaning:
addCapturedPhotodeletes its dewarp/processed cache files if the pipeline throws. - Camera guard:
takePictureis wrapped so an unbound/failed camera can't crash on a shutter tap or auto-capture tick. - Leaks:
DocumentScanProcessorreleases Mats via try/finally;SearchablePdfUseCasecloses itsPDDocumenton failure paths. - Cleanup: Settings shows the real version (was hardcoded
1.0.0); removed the AI-Studio templateGreetingcomposable + its screenshot test; cleaned the Gemini placeholder from.env.example.
Audited statically + JVM unit tests pass. The best-effort CV (finger/glare) and camera flow still want the batched real-device pass.
Install
Download ClearPDFLocal-v1.6.2-vc10.apk below (built & signed by CI). Requires Android 7.0 (API 24)+, arm64.
v1.6.1 — Glare reduction (best-effort), Phase 4 complete
ClearPDF Local v1.6.1 — glare reduction (best-effort)
Completes Phase 4 (finger + glare were the named pair).
What's new
- Reduce glare — a new action on each scanned page. Softens small light reflections (e.g. on glossy paper). It uses a top-hat transform to target spots brighter than their local background, so plain white paper isn't mistaken for glare.
Honest limits
- Only small/medium reflections are handled. A large blown-out highlight has lost its pixel information and cannot be recovered — by design, large regions are left untouched.
- Like finger removal, this ships without on-device testing yet (batched with later checks). Build verified.
Install
Download ClearPDFLocal-v1.6.1-vc9.apk below and sideload it (built & signed by CI). Requires Android 7.0 (API 24)+, arm64.
v1.6.0 — Finger removal + leaner arm64-only build
ClearPDF Local v1.6.0 — finger removal (best-effort) + a leaner app
Phase 4 polish plus a meaningful size cut.
What's new
- Remove finger — a new action on each scanned page. If a finger holding the book got caught at the page edge, this masks the skin-coloured region and inpaints it away. Best-effort: it only targets a finger entering from the edge, and it cannot restore text the finger was covering.
Size
- The app now ships arm64-v8a only (drops the legacy 32-bit armeabi-v7a copies of OpenCV / ONNX Runtime / Tesseract). The universal APK is much smaller as a result; by 2026 effectively all Android devices are arm64.
- Note: model int8 quantization was tried and rejected — it shrank the model (31.7→8 MB) but ran ~7× slower, which would wreck the auto-flatten flow. The full-precision model is kept.
Honest note
- Finger removal is shipped without on-device testing yet (batched with later checks). The size change and the build are verified; glare removal is intentionally not included (blown-out highlights can't be recovered).
Install
Download ClearPDFLocal-v1.6.0-vc8.apk below and sideload it (built & signed by CI). Requires Android 7.0 (API 24)+, arm64.
v1.5.0 — Auto-flatten (hands-free book scanning)
ClearPDF Local v1.5.0 — Auto-flatten (hands-free book scanning)
The vFlat-style book flow is now complete: flip pages and flattened scans stack up on their own — no shutter taps, no per-page correction.
What's new
- Auto-flatten toggle: when on, every captured page is run through the neural dewarp the moment it's captured. With Auto-scan + Auto-flatten both on, just hold the camera over an open book and flip — each curved page is auto-captured and flattened automatically.
Technical
addCapturedPhoto(autoFlatten)dewarps the raw photo then enhances it, caching the flattened image so a later mode switch doesn't re-run the model; falls back to the standard detect + perspective pipeline if dewarp fails.- Reuses the on-device-verified
DewarpEngine(UVDoc via ONNX Runtime, ~275 ms/page) and OpenCV enhancement.
Install
Download ClearPDFLocal-v1.5.0-vc7.apk below and sideload it (built & signed by CI). Requires Android 7.0 (API 24)+.
v1.4.0 — AI curved-page dewarping (on-device)
ClearPDF Local v1.4.0 — AI curved-page dewarping (on-device)
Neural curved-page flattening — the vFlat-style "왜곡 보정". A photographed curved book page can be flattened into a fronto-parallel document, fully on-device, no INTERNET.
What's new
- Flatten curved page (AI): a new action on each scanned page. Photograph an open, curved book and tap Flatten — bent text lines and the bowed spine are straightened into a flat page (which also makes OCR cleaner).
Technical
DewarpEngineruns the bundled UVDoc model (UVDoc_infer.onnx, ~31.7 MB) via ONNX Runtime Mobile (onnxruntime-android1.26.0). The model returns the rectified image directly — its internalgrid_sampleruns under ONNX Runtime, so no TFLite is needed. arm64.soverified 16KB-aligned for Android 15.- Pipeline: dewarp the raw photo, then re-apply the page's enhancement mode; the flattened image is cached so mode switches don't re-run the model.
- Verified on a real Android 15 tablet: UVDoc loads + runs at ~275 ms and visibly flattens a curved book page.
Honest limits
- Works well on gentle/moderate book curl (as tested). Extreme curvature, the gutter/spine, and poor lighting may still fall short of a polished commercial scanner.
Size
The bundled model + ONNX Runtime native libs make this build substantially larger (the per-device install grows by tens of MB). This is the cost of a fully-offline neural model.
Install
Download ClearPDFLocal-v1.4.0-vc6.apk below and sideload it (built & signed by CI). Requires Android 7.0 (API 24)+.
v1.3.0 — On-device OCR & searchable PDFs
ClearPDF Local v1.3.0 — On-device OCR & searchable PDFs
Offline OCR (Tesseract) plus a searchable-PDF writer (PdfBox-Android). A scan can now carry an invisible, selectable/searchable text layer — all on-device, no INTERNET, no Play Services.
What's new
- Searchable PDF (OCR): a toggle in the scan save dialog. When on, the text is recognized on-device and added to the PDF as an invisible layer, so it's searchable, selectable, and copyable.
- Korean + English recognition (
kor+eng). - Graceful fallback: pages the OCR/font can't handle fall back to a plain image PDF, so saving never fails.
Technical
TessOcrEngine— tesseract4android 4.9.0 (JitPack; native libs verified 16KB-aligned).tessdata_fastkor+eng bundled in assets, copied to filesDir on first run.SearchablePdfUseCase— PdfBox-Android 2.0.27.0; per page draws the image and lays OCR words as render-mode-3 text, using an embedded NanumGothic Type0 font (subset) for Korean coverage. Per-word try/catch.- Verified on a real Android 15 device: the searchable pipeline runs without crashing and produces a valid PDF with the embedded Type0 font. OCR accuracy on real text is left to real-document testing.
Size
Adds ~7.8 MB of assets (kor/eng traineddata + NanumGothic) on top of the OCR/PDF native libs — the universal APK is correspondingly larger.
Install
Download ClearPDFLocal-v1.3.0-vc5.apk below and sideload it (built & signed by CI). Requires Android 7.0 (API 24)+.
v1.2.0 — Auto-scan (live detection + auto-capture)
ClearPDF Local v1.2.0 — Auto-scan (live detection + auto-capture)
vFlat-style auto-capture for the camera scanner, all classical on-device CV — no INTERNET permission, no Play Services.
What's new
- Auto-scan: hold the camera steady over a page and it detects the document edges and captures automatically. Flip through a book and it scans page after page.
- Live edge overlay: the detected document border is drawn on the preview in real time (replaces the old static frame).
- Auto / manual toggle: one tap to switch; the manual shutter still works in both modes.
Technical
DocumentFrameAnalyzer(CameraXImageAnalysis) reads each frame's Y (luma) plane as grayscale, rotates it upright, and runs the OpenCV quad detector. Stability tracking fires one auto-capture per page, re-arming only after the page leaves the frame; capture is debounced (1.2 s).DocumentDetectornow exposesdetectCornersFromGray()for the live path; the still-photo pipeline is unchanged.
Install
Download ClearPDFLocal-v1.2.0-vc4.apk below and sideload it (built & signed by CI). Requires Android 7.0 (API 24)+.
Known limitations
- Overlay alignment and auto-capture thresholds are tuned conservatively and may need device-specific adjustment.
- Curved book-page flattening (3D dewarp) is still a later phase — auto-scan captures the page, but curvature near the spine isn't flattened yet.
v1.1.0 — On-device document scanner (Phase 1)
ClearPDF Local v1.1.0 — Real on-device document scanner (Phase 1)
Phase 1 of the scanner-quality roadmap. The camera scanner moves from "photo → brightness tweak → PDF dump" to a real OpenCV pipeline that runs fully on-device — no INTERNET permission, no Play Services.
What's new
- Automatic edge detection — finds the document quad (Canny + contour + largest convex 4-gon).
- Perspective correction — deskews angled shots into flat, fronto-parallel pages.
- Four enhancement modes per page: Auto (magic-colour illumination flattening), Color, Grayscale (CLAHE), B&W (background division + adaptive threshold).
- The raw photo is kept, so you can switch modes without re-shooting.
Technical
- OpenCV 4.13.0 (Apache-2.0, Maven Central); bundled arm64
.soverified 16KB-aligned for Android 15. abiFilterslimited toarmeabi-v7a+arm64-v8a.- A build-time gate fails the build if
android.permission.INTERNETever appears in the merged manifest — the offline brand is enforced by CI, not review.
Install
Download ClearPDFLocal-v1.1.0-vc3.apk below and sideload it. Requires Android 7.0 (API 24)+.
Known limitations (planned for later increments)
- Live edge-tracking overlay and auto-capture are not in this build (detection runs after capture).
- Curved book-page flattening (3D dewarp) is a later phase.