UltraM8’s CamXoverrides Module

This is a module created by UltraM8.

What is this module for:

CamXoverride provides a user controllable layer for camera HAL on Qualcomm devices.

It consists of a list of props that are read by HAL and applied for ISP or any sort of qc/oem post-processing pipeline. OEM file is normally heavier than one that ships with BSP, so one of the goals of this project is to collect more props, test them out with a wide variety of devices and add back to module with its future updates. Prop control existence highly depends on platform (something new from 888 SoC doesn’t exist for 865) & OEM that made particular device.

Initial public launch consists of props that I collected from various leaked BSP’s – normally this means a more unified prop which should exist on wider range of devices, unless OEM did something.


How to use module:

After initial download of the module you might want to give it a first install. Since I don’t have any recent platform device – my testing is limited.

If you experience any bugs, like having black viewfinder in camera app you’re using – its time to debug. Unfortunately you have do that by hands.

To debug navigate to: /data/adb/modules/camx_p/system/vendor/etc/camera/camxoverride.txt

This is the file that holds all props. Module doesn’t touch stock props, instead – it writes in at the bottom of the file and for convenience of debugging module custom props are surrounded by module name at the top & bottom of addition.

In order to figure out which prop is breaking the capture – you can simply comment it out, putting “#” before it, for example:

Example 1

Commented out prop doesn’t init, or drops back to whatever stock behaviour is.If you’re lucky and first launch went smoothly you can start playing with user defined switchables. First flash created camx_user file at the root of your device’s internal storage. Open it as text. You will see a list of variables you can set to experiment with. Each var is holding brief explanation for what it is supposed to do. Unfortunately at this point having in-depth explanation is wonky – even BSP & Qualcomm documents I’ve been extracting them from doesn’t have much info. This module’s purpose is to define what they do, if anything, besides having basic control.

For example:

Example 2

In order to set this prop put 1.0 or any other value you want after =, like EG=0.8.

Make sure to carefully study CU contents – if prop has to be set as 1/0 set those respectively, same goes for TRUE/FALSE.

Unfortunately in order to make it readable for HAL you will need to reinstall the module every time you set anything. Power users can also navigate to camxoverride txt in the module and edit particular prop there – so that you don’t need to reflash the module, however reboot is still mandatory.

Support and future plans:

As I mentioned above – I’m hoping to test contents of this module out with your help. As well as collecting more props from newer platforms & various OEMs to see if they can work somewhere else.

Feel free to experiment with module contents, discuss & share info with others in UltraCVM chat.

🗣 Discussion: