Although I aimed to get it working only on Galaxy S7 Exynos, there are reports that it is working on other devices like S7 Snapdragon, S8, Note 8 etc...
Working list on S7 Exynos:
-Portrait mode front/back cam
-HDR+ front/back cam
Bugs on S7 Exynos:
-after clean install or clear data when you launch the app for the first time, some settings might not be applied correctly. Please enter settings, then kill the app and start again and everything should be OK.
-if the app hangs during processing a HDR+ or portrait shot, memory leak (500-600 MB) could happen. If it is leaked by GCam, a force close in settings can eliminate it (a swipe away is not enough). However if it is leaked by cameraserver, cameraserver needs to be killed i.e. a reboot is needed for non-rooted users. Memory leak could be observed by looking at 'cat /d/ion/buffer' using adb or root shell. The Pixel 2017 config is more prone to memory leak.
-incorrect EXIF data if denoise is set higher than 100%.
-Pixel 2017 config: Shots with flash might cause a crash sometimes.
-Flash is out of sync without HDR+ turned on.
Working/not working for other galaxys:
Note 8: Rear camera touch to focus not working
S8,S8+ oreo: Pixel 2017 config not working, use Nexus 6 auto instead
Settings to be used:
V8: Clear Data, launch app, enter settings, force close app, relaunch app. You will have the settings I use currently.
Some comments to settings:
NonZSL HDR+ Auto exposure-mode: use "Slow shutter" if you are taking pics of static objects in low light environment. In good light it doesn't matter.
NonZSL HDR+ underexposuse multiplier: Gcam achives great dynamic range by taking underexposed pictures, then brightens them digitally in a very smart way to get a good looking results. However this method can cause the well known rainbow effect sometimes. You can mitigate this effect by lowering underexposure. Dynamic range will be worse of course.
HDR+ front camera fix: on if you have a Galaxy S7 Exynos. If HDR+ works for you without this on front cam, don't turn this on, because it will degrade dynamic range in good light!!!!
Changes vs. V7:
-made Pixel 2017 ZSL config work on our device. I had to disable reprocessing, and smart touch to focus. Also some experimental Pixel specific features like hybrid AE cannot work on our device, so don't expect Pixel like quality. Basically the only change versus Nexus 6 config is that if the HDR+ switch is set to the middle, you will have zero shutter lag HDR+ instead of auto HDR+. ZSL HDR+ is the same thing we already had before in portrait mode. So less dynamic range, and more noise in low light because slow shutter mode is not available. However it is much better in good/medium light if you make photos of unpredictable things like kids, because it processes images already taken in the background. In low light, or high contrast scenes please use Enhanced (nonZSL) HDR+! In "HDR+ parameters" setting I recommend using one of the Pixel 2017 options, because they should be more stable regarding memory leak. "High", "very high" and even "default" leak memory if pixel 2017 config is used.
-BSG mod settings moved to Advanced settings.
-you can now use portrait mode without zoom
-portrait mode pictures can be saved directly to DCIM/Camera. However: the built-in gallery can get confused by this, so I recommend using Google Photos instead (camera.use_photos must be enabled in dev settings). And even more importantly: before V8, the built-in gallery in GCam will delete all portrait pics from DCIM/Camera if you delete a single portrait pic from DCIM/Camera!!!! I patched this in V8, but if you were to go back to a previous version or any other port, you can get into trouble easily!!!!
-you can modify some internal denoise settings. Unfortunately I couldn't find a combination which improves quality in all situations, but feel free to play around with them. Turn on the switches to apply changes.
-fixed a rare background battery consumption issue.
-camcorder fixes: front cam is working now, enabled optical stabilization, Samsung HDR can be turned on for video.
Changes vs. V6:
-HDR+ setting (off,auto or on) should be permanent now
Changes vs. V5:
-fixed bug which caused hdr+ shot failure sometimes!
-attempted to fix HDR+ portrait mode (can be activated by disabling portrait ZSL mode).
-added some description to "HDR+ parameters". For example: 8/10 burst, 1500 MB means: HDR+ operates with 8 shot bursts. Portrait mode (ZSL) operates with 10 shot bursts at most. Estimated total memory usage: 1500 MB (including camera2 api buffers).
Changes vs. V4:
-added more shutter options. Selecting "Stock camera2 api" will get rid of rainbow effect, but dynamic range is poor, because camera can't underexpose fast enough if auto shutter control is on.
-added antibanding modes. Works up to 1/149 sec shutter speed. Only select 50hz or 60hz in case of banding problems, because it can cause suboptimal shutter speed otherwise!
-denoise strength for HDR+ and portrait. For front cam you need to select about 2-300% to really see the difference. Back cam is much more sensitive to this setting.
-HDR+ dynamic range control (called Underexposure multiplier). Reduce below 100% to decrease rainbow effect.
-added Samsung specific metering modes. To enable touch to expose, select "Controlled by GCam".
-added Samsung Live HDR mode. Adds some dynamic range to modes where HDR+ is not available like zero shutter Portrait mode. No Rainbow effect in HDR+ mode if this is selected, but noise is too much unfortunately!
-you can enable HDR+ for Portrait mode by disabling "Portrait ZSL mode". Better dynamic range, custom shutter control, but no zero shutter lag.
-custom white balance. I set greens to 96% to get rid of the greenish look where I sit right now, but it is a matter of taste probably.
-modified HDR+ quality settings. Choose "Very high" if you were using "Medium" before (unstable for me). The recommended "Default" setting is the same as before, it is somewhere between medium and high.
Changes vs. V3:
-front cam HDR+ workaround for S7. Still to be tested in very bright conditions. Turn on "HDR+ front camera fix" if you have an S7.
-front cam: normal pics in auto HDR+ mode are saved now
-front cam: improved non-HDR+ quality
-added a custom auto-exposure mode for HDR+ (only HDR+, so not for portrait). It is called "Slow shutter" because it will decrease shutter speed as much as possible (1/10 secs on S7) in bad light. The result: much lower ISO and noise. Of course fast moving objects will probably get blurry more easily. Only tested this on S7, on other devices it might need some tuning.
Changes vs. V2:
-purple colour on highly exposed areas in front camera fixed
-front cam HDR+
-made medium-very high HDR+ settings work again