No ads. No paywall. We know, it's suspicious.
Free, open source, ad free Android camera app that stamps every photo with GPS location, address and timestamp, signs it on-device so anyone can later prove it hasn't been edited, and works fully offline. Built for field surveyors, college students and NGO teams who need to prove where and when a photo was taken, without paying for it or handing over their data.
Website: https://konkomaji.github.io/geotagcamera/
Most geotagging camera apps on the Play Store make you sit through ads before you can even open the camera, lock basic stamp fields behind a subscription, ask for permissions that have nothing to do with taking a photo, and stop working the moment you lose signal. GeoTag Camera fixes that, in the open, so anyone can read the code and check it for themselves.
Capture
- Clean camera capture built on CameraX, nothing running in the background that shouldn't be
- GPS coordinates, address and timestamp stamped directly onto the photo
- GPS data also written into the photo's own EXIF metadata, so GIS and photo tools pick it up automatically
- Every capture is published straight to your phone's Photos/Gallery app (Pictures/GeoTagCamera), nothing leaves your phone unless you choose to share it
Built to actually work in the field
- Offline first reverse geocoding, addresses are cached on-device so the stamp keeps working with no signal
- Every capture fetches a fresh location instead of reusing a stale cached one
- Only camera and location are requested on Android 10+; Android 9 and older also needs storage access to save into the gallery, nothing else, ever
Made for your organization
- Choose exactly which fields show on the stamp: coordinates, address, timestamp, altitude, accuracy, compass bearing
- Add your college, company or project name to the stamp, free, no paywall
Trust and verification
- Every photo is SHA-256 hashed and signed on-device using a key generated in the Android Keystore, so you can later prove it hasn't been edited since capture
- Field workers can add a signature directly onto the photo before saving, useful for inspection reports and muster-roll style documentation
No ads, no tracking, ever
- No ad SDKs, no analytics SDKs, no hidden network calls
- No account, no cloud sync, no server collecting anything, because there is no server
- Kotlin, Jetpack Compose
- CameraX for capture
- Fused Location Provider for GPS
- Android's built-in Geocoder for reverse geocoding (no third party API key)
- Room for local storage
- Android Keystore for on-device photo signing
- Material 3
Version 1.0.0 shipped with everything listed under Features above. 1.1.0 is a full redesign, not a feature bolt-on: a real design system (new brand mark, a proper stamp with a card and a map thumbnail instead of bare text floating on the photo), a live preview of the stamp right in the viewfinder before you shoot, a share button, real camera controls (flash, zoom, grid, timer), and a way to verify a photo someone else sends you, not just the one you captured yourself. Details below and in the roadmap.
1.1.0, in design
- Redesigned stamp: card background, real hierarchy, an optional map thumbnail (OpenStreetMap only, never Google Maps, so the app stays offline-first with no API key)
- Live, accurate stamp preview inside the viewfinder itself, not a guess you check after the fact
- Share straight from the app, right after capture and from the gallery
- Real camera controls: flash, front/back switch, zoom, grid, aspect ratio, timer, tap-to-focus
- Verify a photo someone else sent you, even if it was never captured on your device
- Organization logo image on the stamp, not just text
- A considered first-run screen that explains the two permissions before Android asks
Later
- Video geotagging
- Project and site folders to organize captures
- Batch export to PDF report
- CSV, KML and GeoJSON export for GIS workflows
- Voice notes attached to photos
- Before and after photo pairing
- Multiple stamp templates
- Quick capture home screen widget
- Biometric app lock
- Manual local backup and restore
- Material You dynamic theming
git clone https://github.com/konkomaji/geotagcamera.git
cd geotagcamera
Open the project in Android Studio (Koala or newer) and let it sync, or build from the command line:
./gradlew assembleDebug
Minimum SDK is 26 (Android 8.0), target SDK is 34.
| Permission | Why it's needed |
|---|---|
| Camera | To take the photo |
| Location (fine and coarse) | To read GPS coordinates for the stamp and EXIF data |
| Storage (Android 9 / API 28 and below only) | To save the finished photo into the gallery — Android 10+ does this without any storage permission |
That's the complete list. No broad storage access on modern Android, no contacts, no network state beyond what the OS grants by default, no background location.
Issues and pull requests are welcome. If you're planning a larger change, open an issue first so we can talk through the approach before you put the work in.
GeoTag Camera is licensed under the GNU General Public License v3.0. You're free to use, study, modify and redistribute it under the same terms.
Built by Konko Maji.