[GCam] [Wide Angle] LG G5,LG G6,LG V20,LG V30 - v4.2

cstark27

Senior Member
Jul 2, 2010
1,237
7,222
153
Disclaimer
I am not a developer but I have tried my best to create a port that has most of the basics working on my LG V30. I cannot promise I can fix any bugs for other devices but if I have time, I can try to look into some. This version is based off Scrubber's [4PDA] and uses information I've learned from using and looking at Arnova8G2's, BSG's and others versions. All their work is much appreciated and is the only thing that makes this possible.
Introduction
What is Google Camera (AKA GCam)?

Google Camera is the camera app for the Google Nexus and Google Pixel phones. It is not designed or intended to be run on other phones.

What is HDR+?

Basic: HDR+ is Google's proprietary image processing routine, and is more than just traditional "HDR' modes. HDR+ employs image stacking to control exposure, and also to preserve details, reduce noise, increase sharpness, etc. It is an all-in-one package.

Advanced: https://ai.googleblog.com/2014/10/hdr-low-light-and-high-dynamic-range.html

Google Camera Features

Pixel 1
  • Zero Shutter Lag (ZSL) HDR+ - The Pixel 1 introduced ZSL HDR+ which means when you open the camera, the system utilizes the Hexagon DSP to constantly buffer frames and marks the time slot of when you pressed the shutter button.
    * -- Quote from Marc Levoy via The Verge:
    "The moment you press the shutter it's not actually taking a shot — it already took the shot," says Levoy. "It took lots of shots! What happens when you press the shutter button is it just marks the time when you pressed it, uses the images it's already captured, and combines them together."
    It's a major usability improvement on the HDR+ mode in last year's Nexus 6P and 5X. "What used to happen last year is you'd press the shutter button and you'd get this little circle going around while it captured the images you need for the burst; now it's already captured those," says Levoy. "And that's big, because that means that you can capture the moment you want."
    * -- https://www.theverge.com/2016/10/18/13315168/google-pixel-camera-software-marc-levoy

Pixel 2
  • Portrait Mode - Simulates bokeh for improved subject separation from the background. The front camera of the Pixel 2 only provides Portrait Mode when a human face is detected, and the rear camera can work on an object, an animal, a human, etc because it uses information from the Dual Pixel PDAF sensor to detect depth. Google Camera ports for non-Pixel phones can NOT do this so all ports for non-Pixel phones utilize the front camera technique for both front & rear (which means all ports for non-Pixel phones can only properly apply bokeh when a human face is detected).
    * -- Advanced read: https://ai.googleblog.com/2017/10/portrait-mode-on-pixel-2-and-pixel-2-xl.html
  • Motion Photos - Provides short clips of moments before and after you take the photo.
    * -- Advanced read: https://ai.googleblog.com/2018/03/behind-motion-photos-technology-in.html

Pixel 3



This is how the V30's Camera ID's are laid out. My normal lens app uses ID 0 and 1. My wide lens app uses ID 1 and 2.
  • Camera 0 "LENS_FACING_BACK"
  • Camera 1 "LENS_FACING_FRONT"
  • Camera 2 "LENS_FACING_BACK" (wide angle)
I cannot guarantee success on other devices, especially if the phone does not even report all cameras through the Camera2 API (use Camera2Test app to verify your device info). If you are on LineageOS, please consult your dev to see if they can alter the camera ID's to properly match LG stock roms, if my version does not work.
Images
"Wide Angle" / "Default Camera" option in the side menu:



Advanced Options:


Installation instructions
Root is NOT needed.
* -- Download APK to your Phone (or PC then transfer to your phone)
* -- Locate APK with File Manager and Install
* -- You will be prompted to Allow Unknown Sources. This is normal for APK's not downloaded from the Play Store.
Download
cstark27 v4.2
cstark27_GCam_5.1.018_24_v4.2t3.apk
If you have issues, Clearing App Data is recommended. Open "Camera"> Settings>About>View App Settings Page>Storage>Clear Data

-If device has more than 3+ camera sensors, displays a new side menu "Wide Angle"
--Click this item and it opens Settings and displays a message "Switching rear Camera ID. Press back to complete." So just press the back button when you see the settings menu pop up. I can't figure out a way to do this programmatically.
--On first install you may have to click this twice for it to start working
--After this is toggled the side menu will say "Default Camera" to indicate you can switch back

-The Camera Switch icon is green now to try to indicate you can Long Press this to do the same function as above (alternate between rear camera ID's)

v4.2 fixes:
-Resolution for main and aux lens separated thanks @fu24

v4.1 adds:
-Add LG G6 Lineage Toggle

-Add Advanced>Default HDR+ Mode for Normal and Wide Lens options
--Switching rear cameras will change the HDR+ to the specified mode
--Usage: If you want the regular lens to usually be HDR+ ZSL, but the Wide Angle to always be HDR+ Enhanced. You can also select No Change (default) so HDR+ mode is not changed by the system and will keep what you choose when switching rear cameras

Credits Arnova8G2, arthur, namok, fu24, Tolyan009/TlnNeun

Alternative download location (thanks to @s4turno):
https://www.celsoazevedo.com/files/android/google-camera/dev-cstark27/

Alternate versions posted by @fu24 which has a toggle for standard/wide angle in the settings and much more customization options:
https://forum.xda-developers.com/showpost.php?p=76878015&postcount=505

Previous Versions:

cstark27 v4.0
If you have issues, Clearing App Data is recommended. Open "Camera"> Settings>About>View App Settings Page>Storage>Clear Data

-If device has more than 3+ camera sensors, displays a new side menu "Wide Angle"
--Click this item and it opens Settings and displays a message "Switching rear Camera ID. Press back to complete." So just press the back button when you see the settings menu pop up. I can't figure out a way to do this programmatically.
--On first install you may have to click this twice for it to start working
--After this is toggled the side menu will say "Default Camera" to indicate you can switch back

-The Camera Switch icon is green now to try to indicate you can Long Press this to do the same function as above (alternate between rear camera ID's)

-Black Level calculation adjusted to see if purple tint in shadows is fixed

-Updated code of Settings Restart to newest version

-Adjusted detection code for Hexagon DSP so mainly just LG's don't use it automatically

Credits Arnova8G2, arthur, namok, fu24, Tolyan009/TlnNeun

cstark27 v3.8
If you have issues, Clearing App Data is recommended. Open "Camera"> Settings>About>View App Settings Page>Storage>Clear Data

LG G6 Lineage users can use the toggle in the wide angle APK to fix their camera ID issue. You must force close the app.

-Renamed standard lens package name to avoid interference with other versions (uninstall your current version)
-Set Use_Photos on by default
-Ported Camera relaunch after going into Settings from namok/SerJo87/Arnova8G2 (no longer have to force close when changing a setting)
-Changed Frame Count to have a faster setting (may be useful for photos of children)
-Added toggle to remove Portrait Mode default zoom level


cstark27 v3.7
-Added Advanced>Disable ZSL Toggle (this switches between Pixel 2 HDR toggle and Nexus 6 No ZSL HDR toggle)

-Added Advanced>Model so users can experiment with phone Models (only for the rear camera). You do not need to adjust this if you don't want to, the default setting is the same as before (AUTO).

-Added Experimental>Use Hexagon DSP and set it to No by default. This used to be "auto", effectively, and on most Snapdragon phones it would be using the Hexagon DSP in previous versions. In my testing I have found better performance when taking multiple photos quickly, by turning this to "no". Let me know your results...


cstark27 v3.6
If you have issues, Clearing App Data is recommended. Open "Camera"> Settings>About>View App Settings Page>Storage>Clear Data

LG G6 Lineage users can use the toggle in the wide angle APK to fix their camera ID issue. You must force close the app.

-Added 5 Exposure Time settings for Adaptive Shutter Speed. "Super Slow" is the same as V3.5. "Very Slow" is about 2x faster and so on and so forth. On my phone "Slow" is not actually Slow and matches normal HDR+ Enhanced speed. But it may change depending on device so I left it.

-Normal APK: Save HDR+ choice after going into Settings (credit Miniuser123)

-Organized Settings>Advanced by grouping all HDR+ Enhanced stuff into a section. Changed a couple strings so they'd be translated to other languages.

-Skip Color Fix if Adaptive Shutter is enabled

-Removed Slow Motion menu item unless you have a LG G5, G6, V20, or V30. BUT, you can enable it in Settings>Experimental.

-Wide APK: Change HDR+ Config to Taimen so ZSL (Zero Shutter Lag) is back, but I've defaulted HDR+ to Enhanced. This won't change until you clear app data or go into settings though.

-Wide APK: Remove Slow Motion menu item


cstark27 v3.5
-Clearing App Data is recommended. Open "Camera"> Settings>About>View App Settings Page>Storage>Clear Data
-Added Advanced>HDR+ Enhanced Portrait Mode : This forces Portrait Mode to use HDR+ Enhanced which will offer better dynamic range but you lose Zero Shutter Lag (Thanks Arnova8G2 for this cool trick)
-Added Advanced>HDR+ Enhanced Adaptive Shutter Speed : This is the Slow Shutter mod from miniuser123. I would say this is "beta" for LG devices. I know on my V30 some tuning is needed to the parameters but I want your guys feedback first. It only affects HDR+ Enhanced. The shutter speed will slow down the darker your scene is. You probably want a tripod or something to prop your phone against, for best sharpness. In normal lighting the shutter speed seems to be the same as before so I don't think it would be a negative to leave this on - but it's your choice and needs testing.
-Added LG G6 Lineage Camera ID Fix toggle to Wide Angle APK so there shouldn't need to be separate Lineage builds for G6 anymore
-Optimizations courtesy of Arnova8G2


cstark27 v3.4
-Added Lens Blur Mode on side menu
-Added Advanced>LG G6 Color Fix from cstark27 v3
-Removed Zero Shutter Lag option from Wide Angle due to issue with very over-exposed highlights. Will be brought back when this issue is fixed.
-Removed Disable ZSL toggle as it did not fix anything and caused more problems


cstark27 v3.3
-IMPORTANT: CLEAR APP DATA after installing. This version changes the configs a little bit so more problems may happen if you do not erase app data.
-Fixed Wide Angle HDR+ Processing with Zero Shutter Lag (ZSL)
-Improved Re-focus after touch to focus
-Added JPEG Quality toggle
-Added Disable ZSL Config: switch between Pixel ZSL or Nexus 6 No ZSL configs
-Adjust look of settings and add About section from Arnova8G2

LG G6 owners: There may still be a purple tint in shadows in low light when using HDR+ Enhanced. I am still working on a solution but it is hard to find without having the device. There are apps that provide a black level offset to correct this but in tests we have seen that only the first HDR+ Enhanced photo is usually purple tinted but remaining photos are fine. Tapping to set focus and exposure also seems to help. I would also try the "Disable ZSL" setting and see if that helps. Huge shoutout at Mefiboshet for all of his testing and letting me pester him with test versions all the time.

2 Separate APK's (download both, they do not require each other though so you can use a different normal lens version if you want):
Download Standard Lens + Front Cam cstark27_GCam_5.1.018_24_v3.3
Download Wide Lens + Front Cam cstark27_GCam_5.1.018_24_wide_v3.3


There is no model or config to set, you should be good to go after installing. But here is the setup:

-Normal Lens APK Config:
--LG G6
---Rear Model: Nexus 6 (shamu), Front Model: Huawei Nexus 6P (angler)
--All other devices
---Rear Model: Pixel 2 XL (taimen), Front Model: Huawei Nexus 6P (angler)
-Wide Lens APK Config:
--LG G6
---Rear Model: Nexus 6P (angler), Front Model: Huawei Nexus 6P (angler)
--LG G5, V20, V30
---Rear Model: Pixel 2 XL (taimen), Front Model: Huawei Nexus 6P (angler)

cstark27 v3.1 standard and v3.2 wide
-JPEG quality increased to 98% by default
-Removed LG G6 Color Fix option hoping the model change fixes their color issues (you may Delete Data of the app)
-HDR+ Parameters moved to Advanced menu

cstark27 v3 wide angle beta 1 (with LG G6 LineageOS patch)
-Separate APK based off cstark27 v3
-Fix front camera crash
-Change "config" to Nexus 6P (ZSL on the wide angle does not process HDR+ currently, so this ensures the user always gets HDR+ processing)

cstark27 v3 wide angle alpha
-Separate APK based off cstark27 v3
-ALPHA version of wide angle support

cstark27 v3
-fix G6 video (and probably other Android 7.0 devices) thanks to Arnova8G2
-add LG G6 Color Fix option under advanced thanks to Arnova8G2

cstark27 v2.1
-EXIF fix, thanks Arnova8G2
-Enable HDR+ toggle by default
-Uncheck camera:use_photos by default to increase stability (turn back on and test if you want. Enabling this makes it use Google Photos.)
-Uncheck camera:enable_micro by default to increase stability (turn back on and test if you want. Enabling this enables Motion Photos for Oreo only(?)

cstark27 v2
-fixed video on Pixel configs for LG V30

cstark27 v1
-based off Scrubber's APK
-forced model of front camera to Nexus 6P for proper HDR+ Processing and color (thanks BSG)
-rear model is set to Taimen
FAQ
Q: I'm on Oreo and my device constantly reboots?
A: Follow the steps in this post https://forum.xda-developers.com/showpost.php?p=77133433&postcount=1069

Q: Do I need to change any settings?
A: This mod is optimized for the LG G5, G6, V20, & V30 to run without changing any settings. Some settings in the Settings>Advanced menu will provide higher quality, with their own downsides. Experiment at your own will.

Q: What devices does this work for?
A: The normal (not wide angle) version should work fine on devices that have a decent Camera2 API support. Snapdragon Galaxy S8, Note 8, Nokia 6, Nokia 8, Essential PH-1, HTC U11, etc.
Thanks To/Credits
As always, thanks to Scrubber (whose APK I started with), Arnova8G2, BSG and all the other devs working on these projects.
XDA:DevDB Information
[GCam] [Wide Angle] LG G5,LG G6,LG V20,LG V30 - v4.2, Device Specific App for the XDA Community Apps

Contributors
cstark27, cstark27, fu24, Arnova8G2, defcomg, B-S-G, many more

Version Information
Status: Beta

Created 2018-11-28
Last Updated 2018-12-11
 
Last edited:

mxsoundtube

Member
Feb 3, 2018
9
3
0
It's working great. May I ask if this version has some kind of implementation that reduce the blurriness?
Also I'm using it right now, and I do see that its less blurry? Maybe it's a placebo effect?
Anyway it works great on LG V30
Also thank you very much for your hard work!
 
Last edited:
  • Like
Reactions: dolph263

cstark27

Senior Member
Jul 2, 2010
1,237
7,222
153
It's working great. May I ask if this version has some kind of implementation that reduce the blurriness?
Also I'm using it right now, and I do see that its less blurry? Maybe it's a placebo effect?
Anyway it works great on LG V30
Also thank you very much for your hard work!
I haven't put anything in yet, intentionally, to improve subject blur. But the normal lens is using a different HDR+ config this time which fixed a refocusing issue so it's possible it has other benefits as well I would guess - but I can't say for sure.
 

fahmi182

Senior Member
Apr 1, 2017
248
104
0
Jakarta
I haven't put anything in yet, intentionally, to improve subject blur. But the normal lens is using a different HDR+ config this time which fixed a refocusing issue so it's possible it has other benefits as well I would guess - but I can't say for sure.
Hi Sir, can you add manual/custom blacklevel for front camera?
 

mxsoundtube

Member
Feb 3, 2018
9
3
0
I haven't put anything in yet, intentionally, to improve subject blur. But the normal lens is using a different HDR+ config this time which fixed a refocusing issue so it's possible it has other benefits as well I would guess - but I can't say for sure.
I think that's it because before when I try to tap to focus I seem to get more blurry picture than if I don't tap to focus.
Does it make your pictures also less blurry as well?
 

sergeylgv20

Member
Feb 10, 2018
7
2
0
Здравствуйте розработчик cstark27. телефон lg v 20 проблема с красным цветом на фото очень перенасыщенный красный цвет не знаю как сбросить вам фото с телефона
Hello developer cstark27. phone lg v 20 problem with red color in the photo very oversaturated red color do not know how to reset you photos from the phone
 
Last edited:

Nightshadow931

Senior Member
Oct 25, 2011
1,386
501
143
Belgrade
Здравствуйте розработчик cstark27. телефон lg v 20 проблема с красным цветом на фото очень перенасыщенный красный цвет не знаю как сбросить вам фото с телефона
Hello developer cstark27. phone lg v 20 problem with red color in the photo very oversaturated red color do not know how to reset you photos from the phone
V20 here, I did not notice that problem.

Sent from my LG-H990 using Tapatalk
 

B4kcs4

New member
Oct 7, 2017
4
0
0
Hi,

Thanks for your mod it works best on my Nokia 6.
I have only one question: There is no video stabilisation toggle in the settings. Is it enabled or if not could you add this feature?
 

Razorsoup

Senior Member
Mar 1, 2011
136
36
58
Hi,

Thanks for your mod it works best on my Nokia 6.
I have only one question: There is no video stabilisation toggle in the settings. Is it enabled or if not could you add this feature?
I'm seeing a toggle for video stabilization in both the regular and wide angle version. It's in the same section as the video resolution.