Google Camera Go: Deep Analysis

Google Camera Go: Deep Analysis

Rakin Talukder

So after finally finding time for researching on the Camera Go app by Google, I came to a conclusion:


"It's not as bad as you might think"


Starting off, the app is intended for developing the camera quality on super low end budget phones running on Android Go- Google's low end flavor for it's smartphone operating system. However not all the phones running on Android Go were not intended by any chance. One of the main focus device was the HMD Nokia 2.2. All these theoretical stuff are better discussed by XDA Article writers. As a person related with Google Camera modification, I would like to go deep into the app and discuss stuff previously not discussed.


The modes visible on an original Camera Go app if you install from apkmirror is nothing too fancy. You get the basics: Photo, Portrait, Video and Translate mode. However as I looked into the codes, I found interesting things that I will come to.


The Camera Go app only has a options menu on the top but no full screen settings page. You will find Flash, Face Retouching, Save to SD Card options available there. 

But I had unhidden Nightsight on my last Camera Go mod which does actually work fine. Talking about night mode, it does need the use of RAW so you need full or Level 3 Camera2api support unlike other parts of the app which does not require it. Interesting thing is normally you cannot use Night Mode and Flash or Night Mode and Face Retouching (aka Face Enhance) together. This night mode does improve Dynamic Range and reduce Noise in lowlight. Although this option could be unhidden back from version "1.6.320118631_release", it didn't work out at all since required library was not available. However with the arrival of "1.8.332394960_release", it started working. It uses a library called libNightMode_jni.so. We can however see difference in the same library between the arm64-v8a and armeabi-v7 varients. And the library was somewhat improved with version "1.9.340165459_release" that I have recently modified to allow the use of nightmode and will release today. From the limited tests I have conducted myself and some of my testers, the nightsight did improve somewhat from the Camera Go 1.8.x versions. The interesting thing is Google bottled the Night Mode Resolution to 4MP and 2MP. I did increment it to 12 MP though if the device actually allows. 


Back from the time we first found Camera Go and started working on it, we found the option to unhide HDR mode. However turning that one doesn't really do any good for the matter. While I was on my deep research the other day, I found what the HDR will actually do once the feature becomes available. It does do some work like what happens with libpatcher in the Google Camera mods out there like ones by me(Greatness), Urnyx, BSG, Arnova and more out there. However the process is, several sets of tunings are built based on ISO. For example, if the ISO of the image is around 100, it will have a tuning but if ISO is around 700, the tuning parameters will be different. This tuning parameters include Sharpness, Contrast, Saturation, Ghost Removal, Luma and Chroma Noise Reduction. I was not however able to be sure if it would use YUV_420_888 or need RAW photos for the DR. From what I understood, it might not be like conservative HDR method which either uses Bracketing or Gcam like stacking. It might be just a post Processing after all.


One of the new things I noticed on version "1.9.340165459_release" is option to select Aspect Ratio. It was also hidden and it wouldn't actually change the aspect ratio like it should. The codes are not properly made related to this, so it's not very surprising to see it not working. 


The Portrait Mode is another nice thing besides Night Mode in this budget Camera app. Unlike the Night Mode, it's been available from the beginning of Camera Go. However the quality has upgraded/degraded over time. In proper lighting you can get a decent photograph. The Portrait stuff is called as Drishti in the codes. It uses libdrishti_jni.so library for the bokeh effect. Luckily this feature also works without requiring RAW support. The face enhance smoothens your face. While I would have preferred a less aggressive smoothening, I would have wanted better NR in the photo. The color noise is very bad here tbh.


All other features are simply handy. There's nothing special about them actually. 


There are few more interesting things though. While previously


# Developer Notes:

If you want to work on modifying Camera Go as per you want, you have to use the basic android reverse engineering tools since this isn't open source. You will get Smali and kotlin files. However you cannot compile this app without aapt2 since this app contains 'Nav' resources which were introduced with the aapt2. However aapt2 requires you to remove all the apktool dummies from resources part. What's worse is that no res can keep lamda in file names. Thus you might need to rename some resources from different locations. The problematic part is that it has a lot of very bad codes causing difficulties in extracting through Jadx-GUI. The manifest contains API calls for Tiktok which is interesting and alarming at the same time. The app used adaptive icons so you can not compile if the min SDK is below Oreo. However you can replace original ones with legacy ones for compilation. 

Report Page