Code Monkey home page Code Monkey logo

gcam-services-provider's Introduction

Hi there,

welcome to my GitHub profile. My name is Lukas Pieper and I'm a .NET developer, however doing mostly Android related coding in my free time. Furthermore, open source enthusiast and interested in security and privacy.

Get in touch on Mastodon: @[email protected]

Here is a short list of my active projects:

  • Truvark, my modern file encryption app for Android. For now, only partly open source. Read more on it at XDA-Developers or download from Google Play.
  • Gcam-Services-Provider, stub application to get Gcam working without Google Play Services.

gcam-services-provider's People

Contributors

dependabot[bot] avatar izzysoft avatar lukaspieper avatar relan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gcam-services-provider's Issues

casting??

The gcam services is awesome. I'm wondering if you have any plans to tackle streaming??

Gallery button doesn't open from Video mode

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to GCam
  2. Click on Video
  3. Take in video
  4. Click on the gallery icon (bottom right)

Expected behavior
Clicking on the gallery icon should bring me in gallery like in Camera mode.

Log
No crash

Screenshots
No applicable

Smartphone (please complete the following information, the more detailed, the better)

  • Device: OnePlus 9T Pro
  • OS/ROM: LineageOs 18.1 (based on Android 11)
  • Google Camera version (original, modified): GCam_6.1Beta.210709.0049build-8.1.101
  • Gcam-Services-Provider version: 1.3

Additional context
Nothing to add

Photo Sphere Viewer does not work

Describe the bug
My APK is based on GCAM 6.2.

Navigating to the "More" menu shows a number of options including time lapse and slow motion. One such option is called "Photo Sphere" which allows me to take a 360° x 360° panorama kind of image.

This works fine, however these images need to be viewed using a special view mode. On a GSM-enabled device this special mode is activated when you attempt to view the panorama.

On my device with no GSF and with your mod installed, this view mode doesn't work, and instead I'm presented with the below error.

Screenshot_20210831-210127_Camera_1

To Reproduce
Steps to reproduce the behavior:

  1. Open GCAM
  2. Go to "More"
  3. Tap photo-sphere
  4. Take a photo-sphere
  5. Try to open it from the image preview screen

Expected behavior
Panorama viewer opens

Log
N/A

Screenshots
Screenshot_20210831-210127_Camera_1

Smartphone (please complete the following information, the more detailed, the better)

  • Device: [Poco F1]
  • OS/ROM: [e.g. Android 11, LineageOS 18.1]
  • Google Camera version (original, modified): [san1ty's Poco F1 GCAM 9.6 (Based on GCAM 6.2)]
  • Gcam-Services-Provider version: [app info says 1.1]

Additional context
Happy to provide further information

Google Camera versions >=7.6 are not launching

Describe the bug
The most recent Google Camera version (8.1) is not launching - it shows only an initial black screen with the camera pictogram. It does not load to the camera itself. As there is no crash of any kind, that is why I have created a new issue. It is also not working with Gcam 7.6, only 7.4-7.5 is working fine.

Gcam-Servies-Provider is installed with --force-queryable

Smartphone (please complete the following information, the more detailed, the better)

  • Device: Pixel 4a 5(G)
  • OS/ROM: GrapheneOS 11
  • Google Camera version (original, modified): Original, 8.1
  • Gcam-Services-Provider version: latest

Additional context
Gcam service apk installed using adb, with --force-queryable flag.

Crash android 11 and google camera 8.0

hi,
with google camera 8.0 on a pixel 3a, i've got this crash :

11-04 19:11:04.541 12319 12319 D nativeloader: classloader namespace configured for unbundled vendor apk. library_path=/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/lib/arm64:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/base.apk!/lib/arm64-v8a:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.arm64_v8a.apk!/lib/arm64-v8a:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.en.apk!/lib/arm64-v8a:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.xxhdpi.apk!/lib/arm64-v8a:/vendor/lib64
11-04 19:11:04.563 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020G_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020G,VN
11-04 19:11:04.571 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020H_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020H,VN
11-04 19:11:04.571 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020F_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020F,VN
11-04 19:11:04.575 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020G.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020G
11-04 19:11:04.578 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020E.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020E
11-04 19:11:04.579 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020E_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020E,VN
11-04 19:11:04.581 12319 12319 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020H.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020H
11-04 19:11:04.590 12319 12319 D NetworkSecurityConfig: No Network Security Config specified, using platform default
11-04 19:11:04.590 12319 12319 D NetworkSecurityConfig: No Network Security Config specified, using platform default
11-04 19:11:04.592 12319 12319 W id.GoogleCamera: type=1400 audit(0.0:5000): avc: granted { execute } for path="/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.arm64_v8a.apk" dev="dm-8" ino=91911 scontext=u:r:untrusted_app:s0:c117,c256,c512,c768 tcontext=u:object_r:apk_data_file:s0 tclass=file app=com.google.android.GoogleCamera
11-04 19:11:04.657 12319 12319 I SignatureCheck: Signature check ok
11-04 19:11:04.665 12319 12319 W CAM_SearchIndexProv: Called onCreate
11-04 19:11:04.677 12319 12319 D AndroidRuntime: Shutting down VM
11-04 19:11:04.678 12319 12319 E AndroidRuntime: FATAL EXCEPTION: main
11-04 19:11:04.678 12319 12319 E AndroidRuntime: Process: com.google.android.GoogleCamera, PID: 12319
11-04 19:11:04.678 12319 12319 E AndroidRuntime: java.lang.RuntimeException: Unable to create application com.google.android.gms.learning.internal.util.Application: java.lang.IllegalStateException: Cannot start the Google Camera on an unsupported device
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6717)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:106)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:223)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7656)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at com.android.internal.os.ExecInit.main(ExecInit.java:43)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
11-04 19:11:04.678 12319 12319 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Cannot start the Google Camera on an unsupported device
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at com.google.android.apps.camera.legacy.app.app.CameraApp.onCreate(PG:124)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
11-04 19:11:04.678 12319 12319 E AndroidRuntime:        ... 10 more
11-04 19:11:04.679 12319 12319 E AndroidRuntime: Error reporting crash
11-04 19:11:04.679 12319 12319 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at android.os.BinderProxy.transactNative(Native Method)
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at android.os.BinderProxy.transact(BinderProxy.java:540)
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at android.app.IActivityManager$Stub$Proxy.handleApplicationCrash(IActivityManager.java:5182)
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:158)
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
11-04 19:11:04.679 12319 12319 E AndroidRuntime:        at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
11-04 19:11:04.679 12319 12319 I Process : Sending signal. PID: 12319 SIG: 9
11-04 19:11:04.701  1352  2581 I ActivityManager: Process com.google.android.GoogleCamera (pid 12319) has died: fg  TOP 
11-04 19:11:04.702  1075  1075 I Zygote  : Process 12319 exited due to signal 9 (Killed)
11-04 19:11:04.703  1352  1575 I libprocessgroup: Successfully killed process cgroup uid 10117 pid 12319 in 0ms
11-04 19:11:04.708  1352  1557 D CompatibilityChangeReporter: Compat change id reported: 135634846; UID 10117; state: DISABLED
11-04 19:11:04.708  1352  1572 D CompatibilityChangeReporter: Compat change id reported: 143937733; UID 10117; state: ENABLED
11-04 19:11:04.726  1075  1075 D Zygote  : Forked child process 12346
11-04 19:11:04.735 12346 12346 W Zygote  : Can't access app profile directory: /data_mirror/cur_profiles/0/com.google.android.GoogleCamera
11-04 19:11:04.742  1352  1572 I ActivityManager: Start proc 12346:com.google.android.GoogleCamera/u0a117 for top-activity {com.google.android.GoogleCamera/com.android.camera.CameraLauncher}
11-04 19:11:04.751 12346 12346 E id.GoogleCamer: Not starting debugger since process cannot load the jdwp agent.
11-04 19:11:04.857 12346 12346 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10117 <<<<<<
11-04 19:11:04.863 12346 12346 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.profilebootclasspath"
11-04 19:11:04.863 12346 12346 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.enable_apex_image"
11-04 19:11:04.863 12346 12346 I AndroidRuntime: Using default boot image
11-04 19:11:04.863 12346 12346 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.disable_lock_profiling"
11-04 19:11:04.863 12346 12346 I AndroidRuntime: Leaving lock profiling enabled
11-04 19:11:04.863 12346 12346 E libc    : Access denied finding property "persist.device_config.runtime_native_boot.enable_generational_cc"
11-04 19:11:04.862 12346 12346 W id.GoogleCamera: type=1400 audit(0.0:5001): avc: denied { read } for name="u:object_r:device_config_runtime_native_boot_prop:s0" dev="tmpfs" ino=21555 scontext=u:r:untrusted_app:s0:c117,c256,c512,c768 tcontext=u:object_r:device_config_runtime_native_boot_prop:s0 tclass=file permissive=0 app=com.google.android.GoogleCamera
11-04 19:11:04.990 12346 12346 D com.google.android.GoogleCamera: Time zone APEX ICU file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
11-04 19:11:04.990 12346 12346 D com.google.android.GoogleCamera: I18n APEX ICU file found: /apex/com.android.i18n/etc/icu/icudt66l.dat
11-04 19:11:05.025 12346 12346 W com.google.android.GoogleCamera: JNI RegisterNativeMethods: attempt to register 0 native methods for android.media.AudioAttributes
11-04 19:11:05.033 12346 12346 D AndroidRuntime: Calling main entry com.android.internal.os.ExecInit
11-04 19:11:05.035 12346 12346 D Zygote  : begin preload
11-04 19:11:05.035 12346 12346 I Zygote  : Calling ZygoteHooks.beginPreload()
11-04 19:11:05.041 12346 12346 I Zygote  : Preloading shared libraries...
11-04 19:11:05.155 12346 12346 I Zygote  : Called ZygoteHooks.endPreload()
11-04 19:11:05.176 12346 12346 I Zygote  : Installed AndroidKeyStoreProvider in 21ms.
11-04 19:11:05.176 12346 12346 D Zygote  : end preload
11-04 19:11:05.213 12346 12346 D nativeloader: classloader namespace configured for unbundled vendor apk. library_path=/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/lib/arm64:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/base.apk!/lib/arm64-v8a:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.arm64_v8a.apk!/lib/arm64-v8a:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.en.apk!/lib/arm64-v8a:/data/app/~~qxjZYQwbeNYoIAul5iIxEA==/com.google.android.GoogleCamera-03Z89sQQ5IPXXtcSlOpclw==/split_config.xxhdpi.apk!/lib/arm64-v8a:/vendor/lib64
11-04 19:11:05.235 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020G_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020G,VN
11-04 19:11:05.243 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020H_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020H,VN
11-04 19:11:05.243 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020F_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020F,VN
11-04 19:11:05.248 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020G.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020G
11-04 19:11:05.251 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020E.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020E
11-04 19:11:05.252 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020E_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020E,VN
11-04 19:11:05.253 12346 12346 I PackageParser: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020H.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020H
11-04 19:11:05.262 12346 12346 D NetworkSecurityConfig: No Network Security Config specified, using platform default
11-04 19:11:05.262 12346 12346 D NetworkSecurityConfig: No Network Security Config specified, using platform default
11-04 19:11:05.329 12346 12346 I SignatureCheck: Signature check ok
11-04 19:11:05.338 12346 12346 W CAM_SearchIndexProv: Called onCreat

Can't Install the APK

Describe the bug
The installation fail with "App not installed as package conflicts with an existing package."

From F-Droid it say "Error installing Gcam Services Provider (Basic) : Failed to install due to an unknown error"

Smartphone (please complete the following information, the more detailed, the better)

  • Device: Pixel 6
  • OS/ROM: GrapheneOS 12
  • Google Camera version : 8.4.3
  • Gcam-Services-Provider version: latest

Unable to install app-photos-debug.apk -> INSTALL_FAILED_CONFLICTING_PROVIDER

Describe the bug

I get
Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Scanning Failed.: Can't install because provider name com.google.android.gsf.gservices (in package com.google.android.apps.photos) is already used by com.google.android.gsf]
when trying to install app-photo-debug.apk via the adb command :
adb shell pm install --force-queryable /data/local/tmp/app-photos-debug.apk

To Reproduce

Steps to reproduce the behavior:

  • Install Google Play Services in a secondary user profile
  • Go on the clean primary user profile
  • Push app-photos-debug.apk on /data/local/tmp/ : adb push app-photos-debug.apk /data/local/tmp/
  • Run the installation adb command : adb shell pm install --force-queryable /data/local/tmp/app-photos-debug.apk
  • See error :
    Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Scanning Failed.: Can't install because provider name com.google.android.gsf.gservices (in package com.google.android.apps.photos) is already used by com.google.android.gsf]

Smartphone

Device: Pixel 3a
OS/ROM: GrapheneOS 11 (SP1A.211105.002.2021111414)
Gcam-Services-Provider version: 1.4

Additional context

There is Google Play Services installed on a Sandbox (another user profile), but not on the user profile I'm trying to install app-photo-debug.apk

Not an issue but a thanks + question !

First, many thanks! you make my experience far better!
I just got a brand new OnePlus 9T Pro and just installed Lineageos 18.1 as I don't want any Google like app.
I have to make an expection with GCam 8.1 to enjoy the powerful cameras, as with the stock Lineageos camera app it is very limited...
You are the one who make it possible as Lineageos doesn't come with Gapps and I didn't want to go with MicroG as I had it before (coming from /e/) so thanks again and if you have donation page, please share it :)

Just a quick question regarding privacy, it seems to me that everything is locally emulated so I guess Gcam is not initiating any connection to any Gapps services ? I will try to retrieve some logs/packet capture to confirm but just wanted to have some perspective before.
Maybe something included into Gcam is trying to initiate some connections anyway to other services/components apart from Gapps services.

Photos only variant

Users on GrapheneOS often use this and run into the issue of GSF being incompatible, preventing using sandboxed Google Play in another profile. The Photos part could be available by itself instead.

app-photos-releae.apk does not install on my Pixel6a with GrapheneOS

app-photos-releae.apk (from Mar 6, 630kb) does not install (again) on my Pixel6a with GrapheneOS, writes: "App not installed as package conflicts with an existing package".

I already installed GCam services provider on my Pixel6a few days ago (right after installing GrapheneOS), together with Google Camera app and it was working. But then I had to install Google Play Services to be able to activate eSIM on my phone. So I uninstalled GCam services provider and installed necessary Google staff temporarily. I made eSim functional and uninstalled Google staff again. I also created a second account user and installed Google Play services there (to be able to use some necessary bank apps that needs it). On my primary user account there is no Google stuff anymore. When I am trying to install GCam services back again, app-photos-releae.apk is giving me the message "App not installed as package conflicts with an existing package".

It is probably not an issue of GCam service provider (but rather android?). I understood from internet, that there may be some residual files after first installation that prevent app to be installed (???). Is there something that I can do with it? I want my CG services and Google Camera back. Thank you for you advices.

  • Device: Pixel 6a
  • OS/ROM: GrapheneOS current version on android 13
  • Google Camera version: not yet installed
  • Gcam-Services-Provider version: app-photos-releae.apk (from Mar 6, 630kb)

GCam 8.1. crashes when opening

Describe the bug
Unofficial Lineage OS 18.1. is running.
Gcam-Services-Provider v1.1 is installed as well as GCam 8.1.101.
As soon as I start the GCam it won't open but crash.

To Reproduce

  1. Install Gcam-Services-Provider v1.1
  2. Downoad and install GCam 8.1.101 from here no matter which apk, all are crashing.
  3. Open app drawer
  4. Click on 'camera' to open GCam 8.1.101
  5. App starts and crashes directly
  6. Open app drawer again
  7. Click on 'camera' to open GCam 8.1.101
  8. App starts and crashes directly
  9. System shows error ’Camera keeps stopping’

Expected behavior
I expect that the app is starting with asking for permissions, since it is the first launch.

Log
logcat_03-15-2021_20-10-39.txt

Smartphone (please complete the following information, the more detailed, the better)

Additional context
I just want to thank you for this great piece of work. I'm so happy that you stepped forward and decided to develop this.
It is helping a bunch of people and I hope you will continue for a long time.
So thank you very much!

GSF no longer needed on GrapheneOS - README should be updated

Hey there! On its latest release, GrapheneOS makes it so apps that don't actually have a hard dependency on GSF or Play Services don't actually require installing GSF or Play Services accordingly.

Therefore, the documentation should be updated to reflect that. The way I see it right now, the only thing that Gcam Services Provider can possibly provide for people is the ability to open the in-app gallery without Google Photos, but Google Camera now works by default on a naked install, so it's more or less obsolete for GrapheneOS users.

Just thought I'd give a heads up, thank you!

Sources:

https://grapheneos.org/releases#2023040400

add generic compatibility shim catching the exception from the Gservices provider being missing to enable apps like Google Camera and the Pixel eSIM firmware app (Google eSIM activation app is separate) to work without GSF installed since they don't have any actual hard dependency on either GSF or Play services

https://grapheneos.org/usage#google-camera

Google Camera can take full advantage of the available cameras and image processing hardware as it can on the stock OS and does not require GSF or sandboxed Google Play on GrapheneOS.

Camera roll for other camera apps is broken

When I install Gcam Services Provider (Basic) in my Pixel 6a, running LineageOS 20, the camera roll button for other camera apps (not Gcam) breaks. If I click on it, it doesn't do anything, other than briefly blur the preview. Is this solvable?

App is not installed issue.

So I downloaded the file and tried to install it (havent compiled it myself as I dont know how) and I keep getting the "App not installed" message. I tried to install all 3 releases, none worked.

Info Request

Thanks for the app, works great on my xiaomi device.
However I was not sure how else to get in contact and had a question about how this was developed.

I'd like to implement something similar for another app that depends on some play services APIs, however I'm not sure where to start to profile which APIs the app is using to figure out what needs to be implemented?

Apologies if this is a silly question, or not the right place, I am new to Android development.

Thanks.

Gcam crashes when installed from APKS (APK Bundle)

Describe the bug
See steps to reproduce. I do not have Google Photos installed and have installed the 1.3 "photos" version of the APK.

To Reproduce
Steps to reproduce the behavior:

  1. Install Gcam-Services-Provider 1.3 "photos" version from Releases page using normal method (without --force-queryable)
  2. Install Google Camera from Aurora Store (with correct device Pixel 3 selected in device spoofing)
  3. Launch Google Camera - works after accepting permissions
  4. Go to home screen and reopen app - this works
  5. Close Google Camera from recent apps list and launch again - crashes 😞
  6. Device reboot does not work, you need to clear the Google Camera app data

Expected behavior
Does not crash on subsequent launches.

Log
gcam-8.2-logcat.txt

Smartphone (please complete the following information, the more detailed, the better)

  • Device: Pixel 3
  • OS/ROM: GrapheneOS 11 (RQ3A.211001.001.2021100606), which includes this fix
  • Google Camera version (original, modified): original 8.2.x
  • Gcam-Services-Provider version: 1.3

Additional context
Add any other context about the problem here.

GCam 8.4 won't launch

Describe the bug
Logcat excerpt:
GooglePlayServicesUtil: com.google.android.GoogleCamera requires the Google Play Store, but it is missing.

I've tried "fakestore" -- it isn't recognized.

Create an activity showing compatibility

The app should get an UI that show the compatibility of the OS/rom (#22). Showing a list of all com.google.android.feature.PIXEL_*_EXPERIENCE may be sufficient.

If you want to work on this, contact me first (e. g. comment in this issue)!

Out of scope but question

I know this out of scope of this app, but I am wondering if it is possible to create a similar app that would do nothing other than remove those "this app won't run without Google Play Services" messages in apps. Since they're pretty much useless, it'd be a sight to see!

Fail to install with conflict

Describe the bug
Fail to install

To Reproduce
Steps to reproduce the behavior:

  1. Try to install on CalyxOS 4.3.0(Android 13)

Expected behavior
Install

Screenshots
Screenshot_20221206-221215
Screenshot_20221206-221118

Smartphone (please complete the following information, the more detailed, the better)

  • Device: Pixel 4A
  • OS/ROM: CalyxOS Anderoid 13
  • Google Camera version (original, modified): 8.2 and 7.r
  • Gcam-Services-Provider version: 1.1

Additional context
Add any other context about the problem here.

Thanks!

Works fine on 4a, Android 11, gtcam 7.5

I have experienced inconsistent behavior with the Google-Photos shortcut in the camera app as described in the other ticket. It doesn't bother me, as I don't have Google-Photos installed and therefore don't expect the shortcut to work.

Thank you a lot!

How to completely uninstall ?

My banking app stopped working on graphene os because I do not have proper google play services.

But when I try to install them I get an error: ( GrapheneOS/os-issue-tracker/issues/3450 )

I suspect it can be caused by having this project installed. How can I completely uninstall this project to test if it is related to the issue ?

Preview button does not show full size images

Describe the bug
i've got a crash with gcam 7.6 (and previous 7.5) when i it the button "show picture"

To Reproduce
Steps to reproduce the behavior:

  1. open the gcam app
  2. take a picture
  3. try directly to see it by clicking on the "picture" button
  4. Gcam restart on camera activity

Expected behavior
A clear and concise description of what you expected to happen.

Log

11-04 19:17:19.930 12693 12919 E native  : lens_offset.cc:119 timestamp 904844344241 invalid. (-555583535 ns away from the latest one)
11-04 19:17:19.930 12693 12919 E native  : lens_offset.cc:119 timestamp 904846344241 invalid. (-553583535 ns away from the latest one)
11-04 19:17:19.930 12693 12919 E native  : lens_offset.cc:119 timestamp 904848344241 invalid. (-551583535 ns away from the latest one)
11-04 19:17:19.930 12693 12919 W GyroTransformCalc: Previous or current projection matrix cannot be computed. Defaulting to identity
11-04 19:17:19.930 12693 12919 I chatty  : uid=10117(com.google.android.GoogleCamera) mv-gyro-exec identical 10 lines
11-04 19:17:19.930 12693 12919 W GyroTransformCalc: Previous or current projection matrix cannot be computed. Defaulting to identity
11-04 19:17:20.464   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 27.027027
11-04 19:17:20.599 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 1,51 > 1,10
11-04 19:17:20.653 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,34 > 0,25
11-04 19:17:20.854 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,33 > 0,25
11-04 19:17:21.175   881  7531 I QC2Comp : [avcD_15] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.050/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:21.175   881  7528 I QC2Comp : [avcD_14] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.050/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:21.228   858   965 D VSC     : @ 919.638: [WO] tilt angle 44
11-04 19:17:21.228   858   965 D VSC     : @ 919.638: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:21.228   858   965 D VSC     : @ 919.638: [WO] orientation angle 343, orientation 4
11-04 19:17:21.228   858   965 D VSC     : @ 919.638: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:21.474   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 25.742574
11-04 19:17:21.736   881  7535 W C2BqBuffer: last successful dequeue was 594962297 us ago, 47570 consecutive failures
11-04 19:17:21.820   881  7537 W C2BqBuffer: last successful dequeue was 594898744 us ago, 47562 consecutive failures
11-04 19:17:22.479   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.875622
11-04 19:17:23.255   858   965 D VSC     : @ 921.665: [WO] tilt angle 45
11-04 19:17:23.255   858   965 D VSC     : @ 921.665: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:23.255   858   965 D VSC     : @ 921.665: [WO] orientation angle 342, orientation 4
11-04 19:17:23.255   858   965 D VSC     : @ 921.665: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:23.483   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.900398
11-04 19:17:23.755   858   965 D CHRE    : @ 922.165: [ImuCal] Dynamic sensor configuration: stand-by.
11-04 19:17:24.487   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.900398
11-04 19:17:24.489   881 13935 I QC2Comp : [avcE_17] Stats: Works: Q(1)/Done(1)| Work-Rate: Q(0.2/s Avg=0.2/s) Done(0.197/s Avg=0.197/s)| Stream: 30.00fps 0.0Kbps| Pending(0) i/p-done(0)
11-04 19:17:24.501   881  2137 D BufferPoolAccessor2.0: bufferpool2 0xd5ac0808 : 5(3932160 size) total buffers - 4(3145728 size) used buffers - 0/5 (recycle/alloc) - 1/1 (fetch/transfer)
11-04 19:17:24.501   881  2137 D BufferPoolAccessor2.0: evictor expired: 1, evicted: 1
11-04 19:17:24.644 12693 12844 D BufferPoolAccessor2.0: bufferpool2 0x523afa3c28 : 5(38400 size) total buffers - 4(30720 size) used buffers - 0/5 (recycle/alloc) - 0/0 (fetch/transfer)
11-04 19:17:24.644 12693 12844 D BufferPoolAccessor2.0: evictor expired: 1, evicted: 1
11-04 19:17:24.647  1225  2141 D BufferPoolAccessor2.0: evictor expired: 4, evicted: 0
11-04 19:17:25.282   858   965 D VSC     : @ 923.691: [WO] tilt angle 45
11-04 19:17:25.282   858   965 D VSC     : @ 923.692: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:25.282   858   965 D VSC     : @ 923.692: [WO] orientation angle 342, orientation 4
11-04 19:17:25.282   858   965 D VSC     : @ 923.692: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:25.492   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.875622
11-04 19:17:25.501   881  2137 D BufferPoolAccessor2.0: evictor expired: 1, evicted: 0
11-04 19:17:25.645 12693 12844 D BufferPoolAccessor2.0: evictor expired: 4, evicted: 0
11-04 19:17:25.647  1225  2141 D BufferPoolAccessor2.0: bufferpool2 0x51dfc09a28 : 0(0 size) total buffers - 0(0 size) used buffers - 0/0 (recycle/alloc) - 0/0 (fetch/transfer)
11-04 19:17:25.647  1225  2141 D BufferPoolAccessor2.0: evictor expired: 1, evicted: 1
11-04 19:17:26.176   881  7528 I QC2Comp : [avcD_14] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.050/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:26.176   881  7531 I QC2Comp : [avcD_15] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.050/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:26.393 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 1,51 > 1,10
11-04 19:17:26.424 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,34 > 0,25
11-04 19:17:26.517   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 25.365854
11-04 19:17:26.557 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,30 > 0,25
11-04 19:17:26.557 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 1,30 > 1,10
11-04 19:17:26.737   881  7535 W C2BqBuffer: last successful dequeue was 599964066 us ago, 48043 consecutive failures
11-04 19:17:26.821   881  7537 W C2BqBuffer: last successful dequeue was 599899725 us ago, 48035 consecutive failures
11-04 19:17:26.999 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,39 > 0,25
11-04 19:17:27.036 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,99 > 0,25
11-04 19:17:27.082  1352  1554 I GnssLocationProvider: GNSS HAL Requesting location updates from network provider for 10000 millis.
11-04 19:17:27.084  1352  1554 W GnssLocationProvider: Unable to request location.
11-04 19:17:27.084  1352  1554 W GnssLocationProvider: java.lang.IllegalArgumentException: provider doesn't exist: network
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at com.android.server.location.LocationManagerService.requestLocationUpdatesLocked(LocationManagerService.java:1946)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at com.android.server.location.LocationManagerService.requestLocationUpdates(LocationManagerService.java:1929)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1179)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1140)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at com.android.server.location.gnss.GnssLocationProvider.handleRequestLocation(GnssLocationProvider.java:828)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at com.android.server.location.gnss.GnssLocationProvider.access$2700(GnssLocationProvider.java:100)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at com.android.server.location.gnss.GnssLocationProvider$ProviderHandler.handleMessage(GnssLocationProvider.java:2073)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at android.os.Handler.dispatchMessage(Handler.java:106)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at android.os.Looper.loop(Looper.java:223)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at android.os.HandlerThread.run(HandlerThread.java:67)
11-04 19:17:27.084  1352  1554 W GnssLocationProvider:  at com.android.server.ServiceThread.run(ServiceThread.java:44)
11-04 19:17:27.308   858   965 D VSC     : @ 925.718: [WO] tilt angle 43
11-04 19:17:27.308   858   965 D VSC     : @ 925.718: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:27.308   858   965 D VSC     : @ 925.718: [WO] orientation angle 342, orientation 4
11-04 19:17:27.308   858   965 D VSC     : @ 925.718: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher: Photos launch was cancelled
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher: java.util.concurrent.CancellationException: Task was cancelled.
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at poc.a(PG:132)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at poc.get(PG:82)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at pqt.a(PG:23)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at ppp.a(PG:16)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at ppk.run(PG:5)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at poz.execute(PG:3)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at poc.b(PG:77)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at poc.a(PG:76)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at poc.cancel(PG:52)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at dff.h(PG:23)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at dfo.a(PG:128)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at dfo.b(PG:25)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at dfr.onAnimationEnd(PG:16)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:554)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1250)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1492)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:970)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.view.Choreographer.doCallbacks(Choreographer.java:796)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.view.Choreographer.doFrame(Choreographer.java:727)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.os.Handler.handleCallback(Handler.java:938)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.os.Handler.dispatchMessage(Handler.java:99)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.os.Looper.loop(Looper.java:223)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at android.app.ActivityThread.main(ActivityThread.java:7656)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at java.lang.reflect.Method.invoke(Native Method)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at com.android.internal.os.ExecInit.main(ExecInit.java:43)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
11-04 19:17:27.336 12693 12693 W CAM_Photos1UpLauncher:         at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
11-04 19:17:27.431 12693 12725 D skia    : libjpeg error 116 <Corrupt JPEG data: 18 extraneous bytes before marker 0xdb> from output_message
11-04 19:17:27.545   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 27.237354
11-04 19:17:28.549   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.900398
11-04 19:17:29.335   858   965 D VSC     : @ 927.745: [WO] tilt angle 46
11-04 19:17:29.336   858   965 D VSC     : @ 927.745: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:29.336   858   965 D VSC     : @ 927.745: [WO] orientation angle 340, orientation 4
11-04 19:17:29.336   858   965 D VSC     : @ 927.745: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:29.490   881 13935 I QC2Comp : [avcE_17] Stats: Works: Q(1)/Done(1)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.099/s)| Stream: 30.00fps 0.0Kbps| Pending(0) i/p-done(0)
11-04 19:17:29.554   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.875622
11-04 19:17:30.558   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.900398
11-04 19:17:31.176   881  7528 I QC2Comp : [avcD_14] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.050/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:31.176   881  7531 I QC2Comp : [avcD_15] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.050/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:31.362   858   965 D VSC     : @ 929.772: [WO] tilt angle 58
11-04 19:17:31.363   858   965 D VSC     : @ 929.772: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:31.363   858   965 D VSC     : @ 929.772: [WO] orientation angle 345, orientation 4
11-04 19:17:31.363   858   965 D VSC     : @ 929.772: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:31.388   858   965 D CHRE    : @ 929.797: [ImuCal] Dynamic sensor configuration: stand-by.
11-04 19:17:31.563   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 24.875622
11-04 19:17:31.738   881  7535 W C2BqBuffer: last successful dequeue was 604964661 us ago, 48515 consecutive failures
11-04 19:17:31.823   881  7537 W C2BqBuffer: last successful dequeue was 604901069 us ago, 48507 consecutive failures
11-04 19:17:31.938 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 1,51 > 1,10
11-04 19:17:31.993 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,34 > 0,25
11-04 19:17:32.565   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 27.944112
11-04 19:17:32.784 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,33 > 0,25
11-04 19:17:32.905 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 1,51 > 1,10
11-04 19:17:32.963 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,34 > 0,25
11-04 19:17:33.389   858   965 D VSC     : @ 931.798: [WO] tilt angle 61
11-04 19:17:33.389   858   965 D VSC     : @ 931.798: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:33.389   858   965 D VSC     : @ 931.798: [WO] orientation angle 349, orientation 4
11-04 19:17:33.389   858   965 D VSC     : @ 931.798: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:33.599   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 29.013540
11-04 19:17:34.490   881 13935 I QC2Comp : [avcE_17] Stats: Works: Q(1)/Done(1)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.066/s)| Stream: 30.00fps 0.0Kbps| Pending(0) i/p-done(0)
11-04 19:17:34.631   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 30.038760
11-04 19:17:35.416   858   965 D VSC     : @ 933.826: [WO] tilt angle 62
11-04 19:17:35.416   858   965 D VSC     : @ 933.826: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:35.416   858   965 D VSC     : @ 933.826: [WO] orientation angle 349, orientation 4
11-04 19:17:35.417   858   965 D VSC     : @ 933.826: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:35.665   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 30.009681
11-04 19:17:36.176   881  7528 I QC2Comp : [avcD_14] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.049/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:36.176   881  7531 I QC2Comp : [avcD_15] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.049/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:36.698   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 30.009681
11-04 19:17:36.744   881  7535 W C2BqBuffer: last successful dequeue was 609970474 us ago, 48986 consecutive failures
11-04 19:17:36.829   881  7537 W C2BqBuffer: last successful dequeue was 609906925 us ago, 48978 consecutive failures
11-04 19:17:37.443   858   965 D VSC     : @ 935.853: [WO] tilt angle 62
11-04 19:17:37.443   858   965 D VSC     : @ 935.853: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:37.443   858   965 D VSC     : @ 935.853: [WO] orientation angle 348, orientation 4
11-04 19:17:37.443   858   965 D VSC     : @ 935.853: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:37.731   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 29.980658
11-04 19:17:38.763   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 30.038760
11-04 19:17:39.470   858   965 D VSC     : @ 937.880: [WO] tilt angle 62
11-04 19:17:39.470   858   965 D VSC     : @ 937.880: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:39.470   858   965 D VSC     : @ 937.880: [WO] orientation angle 348, orientation 4
11-04 19:17:39.470   858   965 D VSC     : @ 937.880: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:39.491   881 13935 I QC2Comp : [avcE_17] Stats: Works: Q(1)/Done(1)| Work-Rate: Q(0.0/s Avg=0.0/s) Done(0.000/s Avg=0.050/s)| Stream: 30.00fps 0.0Kbps| Pending(0) i/p-done(0)
11-04 19:17:39.796   834  1053 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 30.009681
11-04 19:17:40.270 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 1,00 > 0,25
11-04 19:17:40.271 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 2,00 > 1,10
11-04 19:17:40.317 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,50 > 0,25
11-04 19:17:40.464   842   842 I [email protected]: capacity: 3100000
11-04 19:17:40.466   842   842 E BatteryDefender: Failed to read /sys/class/power_supply/wireless/online
11-04 19:17:40.644  1352  4511 W ActivityManager: Foreground service started from background can not have location/camera/microphone access: service au.com.vodafone.dreamlabapp/.workflow.calculation.NotificationService
11-04 19:17:40.829   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 29.041626
11-04 19:17:40.857  2106  2106 D InterruptionStateProvider: No bubble up: not allowed to bubble: 0|au.com.vodafone.dreamlabapp|41129|null|10132
11-04 19:17:40.858  2106  2106 D InterruptionStateProvider: No heads up: unimportant notification: 0|au.com.vodafone.dreamlabapp|41129|null|10132
11-04 19:17:41.177   881  7528 I QC2Comp : [avcD_14] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.049/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:41.177   881  7531 I QC2Comp : [avcD_15] Stats: Works: Q(34)/Done(30)| Work-Rate: Q(0.0/s Avg=0.1/s) Done(0.000/s Avg=0.049/s)| Stream: 25.00fps 1.9Mbps| Pending(4) i/p-done(2)
11-04 19:17:41.498   858   965 D VSC     : @ 939.907: [WO] tilt angle 62
11-04 19:17:41.498   858   965 D VSC     : @ 939.907: [WO] isFlat() nearest_rotation: 4, flat_angle: 65
11-04 19:17:41.498   858   965 D VSC     : @ 939.907: [WO] orientation angle 348, orientation 4
11-04 19:17:41.498   858   965 D VSC     : @ 939.907: [WO] rejected by isOrientationAngleAcceptable
11-04 19:17:41.754   881  7535 W C2BqBuffer: last successful dequeue was 614980638 us ago, 49457 consecutive failures
11-04 19:17:41.838   881  7537 W C2BqBuffer: last successful dequeue was 614916691 us ago, 49449 consecutive failures
11-04 19:17:41.862   834  1052 I ISPHVX  : PREVIEW_FRAMES_PER_SECOND: 30.009681
11-04 19:17:42.083 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,33 > 0,25
11-04 19:17:42.324 12693 13884 W JankMonitorFacade: PHOTO > result sensor delay = 1,50 > 1,10
11-04 19:17:42.369 12693 13884 W JankMonitorFacade: PHOTO > rel Δ(result sensor timestamp) = 0,33 > 0,2

Screenshots

Smartphone (please complete the following information, the more detailed, the better)

  • Device: Pixel 3a
  • OS/ROM: Android 11, GrapheneOS 11
  • Google Camera version (original): original 7.5.x, original 7.6.x, download from apkpure
  • Gcam-Services-Provider version: 1.1 (from gthub release)

Additional context

Thanks

F-Droid

It would be great to see this Android app on F-Droid!

F-Droid is an Android app store specifically for free/libre open-source apps. It would be great if your app could be released there, as it is the number one for getting FLOSS Android apps for many people.
F-Droid also builds all apps from source (optionally even reproducible), so downloads from there can be trusted.

The app developer FAQ or the quick start guide may help you to get started.

BTW a release on F-Droid could also bring some (more) popularity (in case that is intended), as it will show up in the app (new apps are featured there).

Just wanted to say thanks!

Thanks for building this! I was planning on doing this exact same thing, as I really had no reason to run microg core besides google camera.

Certificate issue

A scan (see here for details and background) just revealed the APKs at your releases are signed using a debug key. As that has security implications, may I ask you to please switch to a proper release key, and provide the corresponding APK signed with it? Thanks in advance!

Crashes on Android 11 (Gcam >=7.5)

Pixel 4a, RattlesnakeOS, Android 11 (RP1A.201005.006.2020.10.06.13)

Using the .apk files from https://www.apkmirror.com/apk/google-inc/camera, the 7.4.x apk's don't crash but any of the 7.5.x .apk files do (7.5.105.323030203 and 7.5.107.326355469). I tried both the latest release of Gcam-Services-Provider and built from source with the same result.

This is what logcat outputs:

10-07 14:42:02.448  1637  1867 I ActivityManager: Start proc 10405:com.google.android.GoogleCamera/u0a190 for pre-top-activity {com.google.android.GoogleCamera/com.android.camera.CameraLauncher}
10-07 14:42:02.452 10405 10405 E id.GoogleCamer: Not starting debugger since process cannot load the jdwp agent.
10-07 14:42:02.469 10405 10405 I id.GoogleCamer: The ClassLoaderContext is a special shared library.
10-07 14:42:02.470 10405 10405 D nativeloader: classloader namespace configured for unbundled vendor apk. library_path=/data/app/~~gvlUQxdNGgx3EPXeRZgdJA==/com.google.android.GoogleCamera-_SUWbO4PLgFR_eiFLXQChQ==/lib/arm64:/data/app/~~gvlUQxdNGgx3EPXeRZgdJA==/com.google.android.GoogleCamera-_SUWbO4PLgFR_eiFLXQChQ==/base.apk!/lib/arm64-v8a:/vendor/lib64
10-07 14:42:02.481 10405 10405 D NetworkSecurityConfig: No Network Security Config specified, using platform default
10-07 14:42:02.481 10405 10405 D NetworkSecurityConfig: No Network Security Config specified, using platform default
10-07 14:42:02.490 10405 10405 W CAM_SearchIndexProv: Called onCreate
10-07 14:42:02.497 10405 10405 D AndroidRuntime: Shutting down VM
10-07 14:42:02.497 10405 10405 E AndroidRuntime: FATAL EXCEPTION: main
10-07 14:42:02.497 10405 10405 E AndroidRuntime: Process: com.google.android.GoogleCamera, PID: 10405
10-07 14:42:02.497 10405 10405 E AndroidRuntime: java.lang.RuntimeException: Unable to create application com.google.android.apps.camera.legacy.app.app.CameraApp: java.lang.SecurityException: Failed to find provider com.google.android.gsf.gservices for user 0; expected to find a valid ContentProvider for this authority
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6717)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.app.ActivityThread.access$1300(ActivityThread.java:237)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:223)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7656)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: Caused by: java.lang.SecurityException: Failed to find provider com.google.android.gsf.gservices for user 0; expected to find a valid ContentProvider for this authority
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Parcel.createException(Parcel.java:2357)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2340)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2282)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.content.IContentService$Stub$Proxy.registerContentObserver(IContentService.java:1229)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2627)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2615)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at lpr.b(PG:14)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at lpr.a(PG:69)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at lpr.a(PG:33)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at com.google.android.apps.camera.legacy.app.app.CameraApp.onCreate(PG:115)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	... 8 more
10-07 14:42:02.497 10405 10405 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at com.android.server.content.ContentService.registerContentObserver(ContentService.java:355)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.content.IContentService$Stub.onTransact(IContentService.java:482)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Binder.execTransactInternal(Binder.java:1154)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 	at android.os.Binder.execTransact(Binder.java:1123)
10-07 14:42:02.497 10405 10405 E AndroidRuntime: 
10-07 14:42:02.499  1637 10427 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
10-07 14:42:02.499  1637  2395 W ActivityTaskManager:   Force finishing activity com.google.android.GoogleCamera/com.android.camera.CameraLauncher
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: onActivityLaunchCancelled during UNKNOWN.
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: java.lang.Throwable: EventSequenceValidator#getStackTrace
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.google.android.startop.iorap.EventSequenceValidator.logWarningWithStackTrace(EventSequenceValidator.java:260)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.google.android.startop.iorap.EventSequenceValidator.onActivityLaunchCancelled(EventSequenceValidator.java:166)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.server.wm.LaunchObserverRegistryImpl.handleOnActivityLaunchCancelled(LaunchObserverRegistryImpl.java:166)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.server.wm.LaunchObserverRegistryImpl.lambda$lAGPwfsXJvBWsyG2rbEfo3sTv34(Unknown Source:0)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.server.wm.-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34.accept(Unknown Source:4)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:278)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:201)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.internal.util.function.pooled.OmniFunction.run(OmniFunction.java:97)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at android.os.Handler.handleCallback(Handler.java:938)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at android.os.Handler.dispatchMessage(Handler.java:99)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at android.os.Looper.loop(Looper.java:223)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at android.os.HandlerThread.run(HandlerThread.java:67)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: 	at com.android.server.ServiceThread.run(ServiceThread.java:44)
10-07 14:42:02.519  1637  1854 D EventSequenceValidator: dec AccIntentStartedEvents to 1
10-07 14:42:02.622  3246  3246 W Choreographer: Frame time is 0.002495 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.656  3246  3246 W Choreographer: Frame time is 0.007022 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.689  3246  3246 W Choreographer: Frame time is 0.016748 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.722  3246  3246 W Choreographer: Frame time is 0.037457 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.722  5057  5057 W Choreographer: Frame time is 0.024332 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.789  3246  3246 W Choreographer: Frame time is 0.011106 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.836 15260 15305 I Heartbeat: Sending Heartbeat
10-07 14:42:02.853 15260 15305 I Heartbeat: Received Heartbeat with 16ms latency
10-07 14:42:02.905  3246  3246 W Choreographer: Frame time is 0.011732 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
10-07 14:42:02.956   623   623 E Layer   : [Surface(name=Task=1635)/@0x72ffb49 - animation-leash#0] No local sync point found
10-07 14:42:02.956   623   623 E Layer   : [Surface(name=Task=1)/@0xcda94d - animation-leash#0] No local sync point found
10-07 14:42:03.000  1637  1854 W ActivityTaskManager: Activity top resumed state loss timeout for ActivityRecord{1241f23 u0 com.google.android.GoogleCamera/com.android.camera.CameraLauncher t1635 f}}
10-07 14:42:03.014  1637  1854 W ActivityTaskManager: Activity pause timeout for ActivityRecord{1241f23 u0 com.google.android.GoogleCamera/com.android.camera.CameraLauncher t1635 f}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.