PhotonCamera: an Android camera app that replaces the stock image pipeline
Android Camera that uses Enhanced image processing
At a glance
- What is it?
- PhotonCamera is a GPL-3.0 Android camera app built on the Camera2 API that runs its own enhanced image processing instead of the vendor pipeline. It is distributed through Google Play and IzzyOnDroid, and the repository's last push was on 2026-09-13.
- Who is it for?
- Adopt PhotonCamera if you want a GPL-3.0 Android camera whose processing you can read and modify, and you are willing to build it from the dev branch or install the Play or IzzyOnDroid package. Do not adopt it if you need a documented release cadence, a stable tagged version, or a vendor-supported camera for a device you cannot test.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 19, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What PhotonCamera replaces on an Android phone
Most Android phones hand the camera work to a vendor pipeline: the sensor produces frames, the OEM's HAL and post-processing stack decides how they are merged, denoised and tone-mapped, and the camera app is mostly a viewfinder with a shutter button. PhotonCamera takes the opposite position. It is described in the README as an Android camera that uses enhanced image processing, and the repository topics list camera2-api, computational-photography, gpu-acceleration and image-processing. That combination tells you where the app sits: it captures through Android's Camera2 API and does the computational work itself rather than accepting the vendor's finished JPEG.
The audience is narrow but real. It is for people who own an Android device whose stock camera output they dislike and who want to change the processing rather than the phone. It is also for developers: the app is written in Java, licensed GPL-3.0, and the source is organized as a Gradle project with an app module and a separate circularbarlib module, so the processing code is readable and forkable. If you only want better photos and have no interest in the pipeline, the value proposition is weaker, because the app asks you to trust an alternative processing chain rather than a vendor one.
Camera2 capture, GPU processing and the module layout
The architecture visible from the repository is a standard Android Gradle multi-module app. The root holds build.gradle, settings.gradle, gradle.properties, the Gradle wrapper scripts gradlew and gradlew.bat, and a gradle/ directory for wrapper configuration. The camera and processing code lives under app/, and circularbarlib/ is a separate library module, which suggests at least part of the UI is packaged independently of the app. There is also a key/ directory at the top level and a fastlane/ directory, the latter used for store metadata and release automation.
The image path implied by the topics is capture through Camera2, then GPU-accelerated processing. The README does not document the pipeline stage by stage, so the exact order of alignment, merging and tone mapping is not something the README states; you have to read the Java sources under app/ to confirm it. What the README does list is the third-party library set: Glide for image loading, SSIV (subsampling-scale-image-view) for zoomable image display, GSON for JSON serialization, MaterialComponents for UI, CircleImageView and HorizontalPicker for interface elements. Those are presentation and persistence dependencies, not imaging ones. The practical consequence is that the repository layout tells you where to look for the processing code, and the README tells you what surrounds it, but neither gives you a specification of the algorithm.
Installing PhotonCamera from Google Play or IzzyOnDroid
The README does not give command-line install steps for end users. It points to two distribution channels instead: a Google Play badge linking to the package com.particlesdevs.photoncamera, and an IzzyOnDroid badge linking to the package page at apt.izzysoft.de/packages/com.particlesdevs.photoncamera. IzzyOnDroid is the channel to use if you want the APK outside Google Play, for example on a device without Play Services. Both links are the project's own stated sources, so treat them as the supported install path rather than a third-party mirror.
Building from source is the other route. The repository is a Gradle project and ships the wrapper scripts gradlew and gradlew.bat, but the README does not print a build command, so no invocation is quoted here. A fresh clone gives you the dev branch rather than the last tagged release; if you want the 2024-11-02 v0.8817884 state, check out that tag before you build. The README also does not list required JDK or Android SDK versions, so read gradle.properties and the module build files for the toolchain the project expects. Once you have an APK, installing it is the ordinary Android route: adb or a copy to the device.
Where PhotonCamera is the wrong tool
The release history is the first limitation. The most recent release listed is v0.8817884 from 2024-11-02, preceded by v0.8515696 in 2023 and v0.85 in 2022. The repository's last push was on 2026-09-13, so work is happening on the dev branch, but tagged releases are roughly annual and the newest tag is well behind the branch head. Anyone who needs a versioned, reproducible artifact with a changelog should plan around that gap. The README does not document a rollback procedure or a downgrade path, so if a dev-branch build misbehaves on your device you are on your own.
Device dependence is the second limitation. Camera2 exposes different capabilities on different hardware, and an app that does its own processing is sensitive to what the sensor and HAL actually deliver. The README does not publish a supported device list, so there is no way to know from the documentation whether your phone's Camera2 implementation gives PhotonCamera what it needs. On a device with a locked-down HAL, the app may not be able to do what it does elsewhere. Finally, the GPL-3.0 licence is a real constraint, not a formality: if you fork and distribute a modified APK, the licence's source-availability terms apply. That rules the code out for anyone who wants to ship a closed-source camera.
PhotonCamera versus GCam ports
The obvious alternative for an Android user unhappy with the stock camera is a Google Camera port, usually called GCam. The two take different routes to the same goal. A GCam port is a modified build of Google's camera application, and its image quality comes from Google's HDR+ pipeline and from the porting work that adapts that pipeline to a specific device and sensor. The user's job is to find the right port and the right configuration file for their phone model. PhotonCamera is not a port of anything; it is an independent Java application built on Camera2 with its own processing, distributed by its author under GPL-3.0.
That difference decides which one you want. GCam ports tend to be tuned per device by a community of porters, and the tuning is the product, but the source is not something you can read or change. PhotonCamera gives you the source and the licence to modify it, and the cost is that you become the one tuning it for your hardware. If your goal is the best JPEG with the least effort on a well-supported phone, a GCam port is the more direct path. If your goal is to understand or alter the processing, PhotonCamera is the one that lets you open the file.
Maintenance, licensing and what a fork costs you
The repository is not archived, and the last push was on 2026-09-13, so the dev branch is being touched. That is a statement about the branch, not about releases: the newest tag is v0.8817884 from 2024-11-02. The practical upgrade cost follows from that split. If you track dev, you are tracking untagged code and you should expect to rebuild and retest after each pull, because there is no release note to tell you what changed. If you pin to v0.8817884, you get a fixed artifact but you inherit whatever device compatibility existed in November 2024, and the README offers no compatibility matrix to check it against.
On licensing, the project is GPL-3.0, and the README carries the full notice text including the warranty disclaimer. The obligations that matter for a fork are the ones about distributing source when you distribute binaries, and about keeping the same licence on derivative work. That is a summary of the licence's shape, not legal advice; read LICENSE in the repository before you decide how you intend to ship anything. There is also a PrivacyPolicy.txt and a SECURITY.md at the top level, which is a reasonable sign that the project has thought about data handling and vulnerability reporting, though the README itself does not summarize either file.
Editorial conclusion
Adopt PhotonCamera if you want a GPL-3.0 Android camera whose processing you can read and modify, and you are willing to build it from the dev branch or install the Play or IzzyOnDroid package. Do not adopt it if you need a documented release cadence, a stable tagged version, or a vendor-supported camera for a device you cannot test. Before you commit, check that your device exposes the Camera2 capabilities the app relies on, confirm which of the 2024-11-02 v0.8817884 release and the current dev branch you intend to run, and read the GPL-3.0 obligations if you plan to redistribute a modified APK.
Frequently asked questions
How does PhotonCamera compare with GCam?
PhotonCamera is an independent Java application built on the Android Camera2 API with its own image processing, while a GCam port is a modified build of Google's camera app whose quality comes from Google's pipeline adapted to a specific device. PhotonCamera is GPL-3.0 and its source is readable and modifiable; a GCam port is not. The trade-off is that with PhotonCamera you do the tuning for your hardware yourself.
Where can I download the PhotonCamera APK?
The README links two channels: Google Play, under the package com.particlesdevs.photoncamera, and IzzyOnDroid, at apt.izzysoft.de/packages/com.particlesdevs.photoncamera. The README does not offer a direct APK file link, so those two pages are the stated distribution points.
What is the latest PhotonCamera version?
The most recent release listed in the repository is v0.8817884, dated 2024-11-02. The default branch is dev and its last push was on 2026-09-13, so the branch head is ahead of the newest tag.
How do I build PhotonCamera from source?
The repository is a Gradle project and ships the wrapper scripts gradlew and gradlew.bat, but the README does not print a build command or list required JDK and SDK versions, so check gradle.properties and the module build files. Note that a fresh clone gives you the dev branch, not the v0.8817884 tag.
Community notes