Open-source project
lukaspieper/Gcam-Services-Provider avatar
lukaspieper/Gcam-Services-Provider

Gcam Services Provider fakes the smallest API surface Google Camera needs

App faking only the absolute necessary Apis to use Gcam without Play Services

1,121 stars44 forksKotlinMIT

At a glance

What is it?
Gcam Services Provider is a small Android app in Kotlin that simulates the parts of Google Play Services that the Google Camera app calls, so the camera can run on a device with no Play Services installed. It ships in three flavours because of what each one is compatible with, and it asks for no internet, storage or root access at all.
Who is it for?
Gcam Services Provider fits a de-Googled or AOSP device whose owner wants the stock Google Camera to work and is willing to accept that Gcam 10.x and above is not supported yet. On a device that already has Play Services, and on GrapheneOS, the documented choice is the photosonly flavour alongside the platform's own shim.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Only the APIs the camera actually calls

The project's own summary is that it simulates certain components of Google Play Services required by the Google Camera app, enabling it to be used on devices without Google Play Services. The description puts it more bluntly: an app faking only the absolute necessary APIs to use Gcam without Play Services.

That framing is the design constraint that makes the rest of the project coherent. A full re-implementation of Google Play Services is a large undertaking with large consequences. This is not that. It is a shim that answers the specific calls the camera makes, and it does so with the smallest possible footprint. The app itself is written in Kotlin, is MIT licensed, and the repository is a standard Android project with app/, build.gradle.kts, settings.gradle.kts, gradle.properties, an Android.bp file for Soong builds, and a fastlane/ directory for release automation.

The consequence for a user is that this is an install-and-forget component rather than something you configure. It has no user interface at all, which the README explains means the app has no icon in the app drawer, though the installation is still listed in the Android settings, for example so it can be uninstalled.

The limitation worth knowing before anything else is on the compatibility side rather than the feature side. The README states that Gcam version 10.x and above is currently unsupported, tracked as issue 190, and that you should use a compatible Android OS, with a discussion thread linked, or a modded Gcam.

Three flavours, because compatibility decides which one installs

There are three flavours of the app, named basic, photos and photosonly, and the reason there are three is not feature richness but what already exists on the device. Each flavour is defined by the apps it is incompatible with.

Basic includes everything needed to get Gcam running, but the button that opens the last photo taken will not work. Photosonly supports that button, but it does not provide the features of the basic flavour, and it is meant to be used alongside Play Services or microG. Photos has all the features of basic and photosonly combined in one app.

The compatibility table makes the consequence concrete. Basic is incompatible with the Google Service Framework, GSF, and with microG. Photosonly is incompatible with Google Photos, because it is the flavour that provides what Google Photos would otherwise supply. Photos is incompatible with GSF, with microG and with Google Photos at the same time.

That last row is the one to read carefully, because it is not obvious. A device that already has Google Photos installed cannot use the combined photos flavour, even though that flavour is the most capable one. The workaround is to install two apps, basic for the camera itself and photosonly for the last photo button, which is exactly what the name of the third flavour implies.

The downloads are on the GitHub releases page for all three, and the basic flavour is also packaged for F-Droid under the package name de.lukaspieper.gcam.services, which matters for anyone who wants an install that does not come from a random APK.

No internet, no storage, no root

The comparison with microG is the most informative paragraph in the README, because it sets out what this project chooses not to do.

microG is an open source re-implementation of Google Play Services on the client side, and among other things it uses signature spoofing to achieve its goal. The README contrasts this with the Gcam Services Provider, which only aims to get Gcam running without Play Services, and therefore does not need any security compromising hacks or permissions. The list is explicit: no internet access, no storage access and, of course, no root access.

That is a strong position and it is the main reason to prefer this shim over a full framework re-implementation. An app that needs no network permission and no root can be installed on a device that a user is worried about, and it cannot exfiltrate anything because it has no way to reach the network. Its behaviour is bounded by what the camera calls and what the system lets it see.

The trade is scope. A shim that only answers the calls the camera makes will not satisfy other apps that expect a Google Services Framework, and it cannot make Gcam features that depend on services which are not simulated work. The README frames this as a difference of aim rather than a difference of quality, and for the specific goal of getting one camera app to start, that framing is fair.

On GrapheneOS, the built in shim comes first

The README puts a warning at the top of the install section for anyone on GrapheneOS, pointing at a comparison section that is worth reading in full.

Since April 2023, GrapheneOS is able to run Gcam without additional steps. The changelog entry quoted in the README says it added a generic compatibility shim catching the exception from the Gservices provider being missing, to enable apps like Google Camera to work without GSF installed, since they do not have any actual hard dependency on either GSF or Play services.

In other words, the platform now ships a shim of its own, at the framework level, and it covers the camera's basic calls. The consequence for the app is stated directly: the button that opens the last photo taken will not work unless Google Photos is installed, and if you want to use your favourite gallery app instead, you should install the photosonly flavour of this app.

The IMPORTANT note at the top of the comparison adds one more restriction: on GrapheneOS the photosonly flavor is the only one that is supported. So on GrapheneOS you are not choosing between the flavours based on your device, you are choosing between the platform's own shim and this app's single supported flavour, and the latter exists to cover the gallery button that the platform shim leaves out.

That is a coherent division of labour, and it is also the clearest sign that this project is scoped to a specific gap rather than trying to be a general purpose framework.

The gap between the releases and the commits

The maintenance picture is worth stating precisely, because the numbers say two different things.

The listed releases are v1.6.1 from 2025-07-05, v1.6.0 from 2025-02-05 and v1.5.2 from 2024-10-10. The last push to the repository was on 2026-10-15, and the project is not archived, and it carries a continuous integration badge at the top of the README. So the repository is being worked on while the packaged releases are more than a year old.

For an Android app distributed as an APK rather than through a package manager, that gap is less unusual than it is for a library. The fastlane/ directory in the repository is the release automation, and the GitHub releases page is where the flavours are published, so a release is a deliberate act rather than something that happens on every merge. The F-Droid package for the basic flavour adds a second cadence, since distribution there is governed by the packaging metadata rather than by the project's own tags.

The licence is MIT, with the file at the repository root, which is the permissive default and unremarkable for a project of this size.

The build system is where the practical work sits if you want to build it yourself. Alongside the standard Gradle setup with gradlew and gradlew.bat, there is an Android.bp file, which is the Soong build used by the Android platform itself, so the project can be built inside an AOSP tree as well as with Gradle.

Editorial conclusion

Gcam Services Provider fits a de-Googled or AOSP device whose owner wants the stock Google Camera to work and is willing to accept that Gcam 10.x and above is not supported yet. On a device that already has Play Services, and on GrapheneOS, the documented choice is the photosonly flavour alongside the platform's own shim. Verify first which flavour your device can take by checking the incompatible app list in the README, since the basic flavour conflicts with GSF and microG while the photos flavour conflicts with Google Photos as well.

Frequently asked questions

What does the Gcam Services Provider app actually do?

It simulates the certain components of Google Play Services that the Google Camera app requires, so Gcam can run on a device without Play Services. The project describes itself as an app faking only the absolute necessary APIs, and it needs no internet access, no storage access and no root.

Which flavour of Gcam Services Provider should I install?

Basic gives you everything needed to get Gcam running but the button opening the last photo will not work, and it is incompatible with GSF and microG. Photosonly provides that button but not the basic features, and is incompatible with Google Photos. Photos combines both but is incompatible with GSF, microG and Google Photos.

Does the app work on GrapheneOS?

GrapheneOS has run Gcam without extra steps since April 2023 through its own generic compatibility shim, and on GrapheneOS the photosonly flavor is the only one supported. The photosonly flavor is the one to use if you rely on a gallery app other than Google Photos.

How is this different from microG?

microG is an open source client side re-implementation of Google Play Services that uses signature spoofing, while this app only aims to get Gcam running without Play Services. That narrower aim is why it needs no security compromising hacks and asks for no permissions.

Does Gcam Services Provider support the latest Gcam versions?

Not yet. The README states that Gcam version 10.x and above is currently unsupported, tracked in issue 190, and that you should use a compatible Android OS or a modded Gcam.

Official sources

  1. Issues
  2. License: MIT
  3. lukaspieper/Gcam-Services-Provider on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/lukaspieper-gcam-services-provider.svg)](https://hysenlabs.com/projects/lukaspieper-gcam-services-provider)

Was this useful?