How to change color of Hair, Lips etc in Demo app (example)

Following this link, you may find explanation and the example ("test_Recgnzr_All" effect) that is used for setting colors for all Recognizer features (including lips and hairs) available in SDK.
Speaking about Lips/Hair in particular:
1. Recognizer features params should be added to config.json file like:
"recognizer" : [
"hair", "lips_segmentation", "lips_shine",
]
2. Appropriate models should be spawned in config.js (you can use models from Example):
Api.meshfxMsg("spawn", 2, 0, "tri_a.bsm2");

Api.meshfxMsg("spawn", 5, 0, "quad_Lips.bsm2");
Mesh ids 2 and 5 are used because they've been taken from the Example. You can set mesh ids as 0 and 1, for example, and delete the others.
Colors data used for these models is transfered via calls like Api.meshfxMsg("shaderVec4", 0, shader variable Ids, "0 0 0 0" ).
The main idea behind using Api.meshfxMsg("shaderVec4"...) is that all data that you transfer is available in all the shaders in the effect, where you declare glfx_GLOBAL {...} as its shown here or in the Examples .frag shaders. So in our case we call Api.meshfxMsg("shaderVec4", 0, 2, "0.0 0. 0.99 1.0") and Api.meshfxMsg("shaderVec4", 0, 5, "1.0 0. 0. 1.0") and can get this data in shaders by setting glfx_GLOBAL {...} like this (lips.frag shader from "test_Recgnzr_All" effect):
layout(std140) uniform glfx_GLOBAL
{
mat4 glfx_MVP;
mat4 glfx_PROJ;
mat4 glfx_MV;
vec4 glfx_QUAT;

vec4 js_smth0; // here is the data spawned with Api.meshfxMsg("shaderVec4", 0, 0, "....");
vec4 js_on_off; // here is the data spawned with Api.meshfxMsg("shaderVec4", 0, 1, "....");
vec4 js_smth2; // Hair color is here
vec4 js_smth3; /--/
vec4 js_smth4; /--/
vec4 js_color; // Lips color is here
};
And again, this declaration order (considering Shader variable ids) should be the same in all Effects' shaders.
3. Models' materials information is added to cfg.toml:
# Hair
[materials.TriAndroid]
vs = "hair_a.vert"
fs = "hair.frag"
blend = "off" # "alpha", "premul_alpha", "screen", "add", "multiply"
backfaces = false
colorwrite = true
zwrite = false
shadow = false
samplers = {}

# Lips
[materials.LI]
vs = "lips.vert"
fs = "lips.frag"
blend = "off"
backfaces = true
colorwrite = true
zwrite = false
ztest = false
shadow = false
samplers = {}
Appropriate materials' names ("TriAndroid", "LI") should be added to draw_order array.
You can play with changing settings in 'test_Recgnzr_All' effect to get better understanding of how it works.