Most scanner apps upload your passport, bank card or contract to a server, show ads or lock features behind a subscription. ScanLens does none of that. Everything happens on your phone, nothing leaves it unless you share it, and every feature is free.
| 📷 Snap and done | Edges are found, the page is straightened, shadows disappear and the background turns white, right after you take the photo. |
| 🔒 Private by design | No internet permission, no account, no ads, no analytics. Your documents are encrypted on the device. |
| 🆓 Free and open | No watermark, no page limit, no subscription. GPL-3.0 open source. |
| 🌍 Speaks your language | English, Türkçe, Deutsch, Français, Español, Italiano, Português, Русский. |
- Automatic correction: edge detection, perspective, deskew, lighting and contrast, applied right after capture
- Made for every document: documents, ID cards, driving licences, passports, bank cards, certificates
- Cards done right: front and back on one page, at true card size (85.6 mm)
- Precise corners: drag corners by hand; a magnifier appears on the opposite side so your finger never hides the edge
- Quality check: warns about blur, glare and darkness before you keep a photo
- Five looks: Original · Colour · Grey · Black & White · Document
- Light controls: brightness, contrast, exposure, shadow removal and sharpness, on one page or all pages
- Rotate and straighten, crop, and reorder pages by dragging
- Redaction: hide card numbers or IDs. The black box is burnt into the pixels, not laid on top
- Signatures: draw with your finger or import a PNG, then move, resize and rotate it
- Undo/redo, and the original photo is always kept
- Multi-page PDF (A4, A5, Letter or original size) or one JPEG per page
- Three quality profiles (High · Balanced · Small), with the real file size shown before saving
- Clean files: no watermark, no location, no device information
- Save to any folder or hand off to any app through the system share menu
- QR reader from the camera or a photo. Links only open when you tap them.
- PDF reader for any PDF on your phone. Use "Open with ScanLens" from mail, chat or file apps.
- App lock with fingerprint, face or screen lock
Your documents are yours. ScanLens is built so that it can't send them anywhere.
- 🚫 No internet permission. It is removed from the app manifest, so the app cannot go online even if it wanted to.
- 🔐 Encrypted storage. Originals, drafts, thumbnails and signatures are protected with AES-256-GCM and a key held by Android Keystore.
- ☁️ No cloud backups. App data is excluded from backup and device transfer.
- 🙈 Screen protection. Content is hidden from screenshots and the recent-apps preview (can be turned off).
- 🧹 No leftovers. Temporary share files are deleted after 24 hours and on every launch.
The only permissions requested are camera (asked when you first scan) and biometrics (only if you turn on app lock).
Get the APK from the latest release:
| File | Choose this if… |
|---|---|
ScanLens-x.y.z-arm64-v8a.apk |
✅ You have a phone from roughly the last 8 years (most people) |
ScanLens-x.y.z-armeabi-v7a.apk |
You have an older 32-bit phone |
ScanLens-x.y.z-universal.apk |
You're not sure. It works everywhere but is a bigger download |
Requires Android 10 or newer. Signing certificate SHA-256:
33:07:9B:90:1B:EF:47:69:46:22:FD:87:8E:57:BA:61:59:CD:B5:28:32:45:7F:5C:DF:4D:57:14:28:62:A5:2F
🛠️ For developers: build, architecture and dependencies
gradlew assembleRelease
Requires JDK 17+ and Android SDK 36. Without signing/keystore.properties (not in version control) the build produces unsigned APKs. The build creates one universal APK plus per-architecture APKs.
Built with Kotlin, Jetpack Compose and CameraX. minSdk 29, targetSdk 36. Application ID: com.januam.scanlens.
| Package | Responsibility |
|---|---|
storage |
Encrypted vault: AES-256-GCM files, data key wrapped by an Android Keystore key. Library index, settings, temp-file cleanup |
imaging |
OpenCV edge detection, perspective and rotation, filters, quality check. Pipeline is the single render path for preview and export |
export |
Image-only PDF writer (DCTDecode, title metadata only) and JPEG export |
qr |
ZXing QR decoding, offline with no model download |
ui |
Compose screens and AppViewModel. PdfReaderScreen uses Android's PdfRenderer and reads files in place |
| Profile | A4 pixel limit | Density | JPEG quality |
|---|---|---|---|
| High | 2480 × 3508 | 300 dpi | 90 |
| Balanced | 1654 × 2339 | 200 dpi | 82 |
| Small | 1240 × 1754 | 150 dpi | 70 |
Low-resolution sources are never upscaled.
| Component | Version | License |
|---|---|---|
| OpenCV | 4.12.0 | Apache-2.0 |
| ZXing core | 3.5.3 | Apache-2.0 |
| AndroidX (Compose BOM 2025.10.01, CameraX 1.5.1, AppCompat, Biometric, ExifInterface, DocumentFile, Lifecycle) | see app/build.gradle.kts |
Apache-2.0 |
| kotlinx.serialization / coroutines | 1.9.0 / 1.10.2 | Apache-2.0 |
None are paid, rate-limited or send data anywhere.
ScanLens is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3.0 or later. See LICENSE.




