User Tools

Site Tools


android:kb:mtk:props

Welcome to the Vendor Properties Documentation!

In this section of the wiki, we delve into the intricate world of vendor properties found in MediaTek (MTK) devices. Vendor properties are specific configurations, settings, or values that are set by the device manufacturer to control various aspects of the device's behavior, performance, and functionality.

Understanding vendor properties is crucial for developers, enthusiasts, and power users who wish to customize, modify, or optimize their MediaTek devices. By shedding light on these properties, we aim to provide you with a deeper understanding of how your device operates and empower you to make informed decisions regarding customization and development.

Within this section, you will find detailed information about vendor properties across different categories shown below.

Our goal is to create an extensive repository of vendor properties within each category, complete with detailed explanations, usage guidelines, and real-world examples. We encourage you to contribute to this section by sharing your knowledge, insights, and experiences with different vendor properties you have encountered.

Remember, tinkering with vendor properties requires caution and understanding. It's crucial to back up your data and proceed with care, as improper modifications can lead to unexpected behavior or even device instability. Always exercise caution and take responsibility for your actions.

Let's unlock the potential of MediaTek devices together by exploring the world of vendor properties!

Camera

ro.vendor.camera3.zsl.default|project

These properties are used to set the default timestamp difference to calculate the estimated shutter delay in the Zero Lag-Shooting camera mode.

A value is set as default for the chipset and should not be changed, if the difference needs to be adjusted the project prop can be set on a per project basis.

ro.vendor.jpeg_decode_sw_opt

The purpose of this property is unknown but it can be inferred that it enables some sort of decoding software optimization within this library.

Default value observed on mt6769 is “1”.

ro.vendor.smvr.p2batch.*

These properties are used to set the ISP batch number for a given quality profile for the Slow Motion Video camera mode. It is unknown what batch means in this context but it can be assumed that it is the number of ISP Pipelines that are used.

vendor.camera.mdp.cz.enable

This property is used to enable ClearZoom in the MTK Camera Pipeline.

vendor.debug.camera3.zsl.timestamp

See the subsection for ro.vendor.camera3.zsl.default|project. This property allows you to adjust the Zero Lag-Shooting mode estimated shutter delay on the fly using setprop.

Display

ro.vendor.mtk_pq_color_mode

This property is used to set the default MDP[1] color mode. On most devices it is set to 1.

It is queried by libdpframework.

ro.vendor.mtk_pq_support

This property controls the enablement of the PQ[2] service. On most devices it is set to a value of 2 however investigating various sources show that as long as the value isn't 0 it is enabled regardless of the actual value.

ro.vendor.pq.mtk_pq_video_whitelist_support|ro.vendor.pq.mtk_video_transition

These properties are used in conjunction with ro.vendor.mtk_pq_support in order to set the MDP[1] Output Format to HAL_PIXEL_FORMAT_YUYV.

DRM

ro.vendor.mtk_prefer_64bit_proc

This property is used on ALPS to enable the 64bit version of drmserver. You can safely ignore the existence of this property. See below for how it is used.

on property:drm.service.enabled=true && property:ro.vendor.mtk_prefer_64bit_proc=1
    start drm64

on property:drm.service.enabled=1 && property:ro.vendor.mtk_prefer_64bit_proc=1
    start drm64

on property:drm.service.enabled=true && property:ro.vendor.mtk_prefer_64bit_proc=0
    start drm

on property:drm.service.enabled=1 && property:ro.vendor.mtk_prefer_64bit_proc=0
    start drm

Init

ro.vendor.init.sensor.rc

This property is used to define the path of the sensors init script typically imported by the main hardware init script, init.${ro.hardware}.rc. Below is a snippet of how it is used. Do note that not all OEMs use the prop even if they define it.

# MTK platform .rc configure

import ${ro.vendor.rc}init.connectivity.rc
import ${ro.vendor.rc}init.mt6873.usb.rc
import /vendor/etc/init/hw/init.project.rc
import /system_ext/etc/init/hw/init.aee.rc
import /FWUpgradeInit.rc
import /vendor/etc/init/hw/init.aee.rc
import ${ro.vendor.rc}init.volte.rc
import ${ro.vendor.rc}init.mal.rc
import ${ro.vendor.rc}${ro.vendor.init.sensor.rc}
import /vendor/etc/init/hw/init.stnfc.rc
import /system/etc/init/hw/init.stnfc.rc
import ${ro.vendor.rc}init.cgroup.rc

ro.vendor.rc

This property is used to define the paths of the main vendor hardware init scripts, typically it is defined like such:

ro.vendor.rc=/vendor/etc/init/hw/

Here is a snippet of init.mt6768.rc from Moto G31(w) based upon the MT6768 chipset.[3]

# MTK platform .rc configure

import ${ro.vendor.rc}init.connectivity.rc
import ${ro.vendor.rc}init.mt6768.usb.rc
import /vendor/etc/init/hw/init.project.rc
import /system_ext/etc/init/hw/init.aee.rc
import /FWUpgradeInit.rc
import /vendor/etc/init/hw/init.aee.rc
import ${ro.vendor.rc}init.volte.rc
import ${ro.vendor.rc}init.mal.rc
import ${ro.vendor.rc}init.sensor_1_0.rc
import ${ro.vendor.rc}init.ago.rc
import /vendor/etc/init/hw/init.stnfc.rc
import /system/etc/init/hw/init.stnfc.rc

Neural Networks

debug.mtk_tflite.target_nnapi

It is unknown what this prop does and grepping for it in the stock ROM for my mt6768 based devices reveal nothing but only that it is set to a value of 29.

ro.vendor.mtk_nn_quant_preferred

This property controls the preference of quant vs float32 within the Neural Networks HAL. It is enabled when VPU is enabled. On mt6768 this is set to 1 by default.

ro.vendor.mtk_nn_support

This property seems to enable Neural Networks support under the Camera HAL, needs confirmation.

ro.vendor.mtk_nn_baseline_support

This property is used by the neural networks HAL's service definition file to control whether or not to start the HAL. Some chipsets may ship the Neural Networks HAL but not support it. This property controls starting it for the chipsets that do. It is used like so,

service neuralnetworks_hal_service_mtk_neuron /vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-mtk-neuron
    class hal
    user system
    group system readproc
    disabled

on property:ro.vendor.mtk_nn_baseline_support=1
    start neuralnetworks_hal_service_mtk_neuron

If your chipset supports using the Neural Network HAL, you should set this prop's value to 1.

ro.vendor.mtk_nn.option

This property defines the supported features capable of use under the Neural Networks HAL, below is a list of features and their keys,

  1. A: Feature ION
  2. B: Feature Enhance Performance
  3. C: Feature CPU Scheduling
  4. D: Feature QOS
  5. E: Feature OEM String Scalar
  6. Z: End, Enum Max

The property is defined as shown,

ro.vendor.mtk_nn.option=D,E,F,Z

Radio

persist.vendor.radio.fd.*

This properties concern the Fast Dormancy[4] timers.

Known properties under this umbrella are:

  • persist.vendor.radio.fd.counter=150
  • persist.vendor.radio.fd.off.counter=50
  • persist.vendor.radio.fd.r8.counter=150
  • persist.vendor.radio.fd.off.r8.counter=50

Notes

Within the mtk-ril binary, the defaults for on timers are “150” and off timers “50”. It appears that setting the properties as shown above is useless and unneeded.


ro.vendor.mtk_protocolX_rat_config|ro.vendor.mtk_psX_rat

RAT or Radio Access Technology is defined as the underlying physical connection method for a radio based communication network.[5] Think 2G, 3G, 4G and 5G.

This property has multiple variants for up to triple sim devices, replace X with 1, 2 or 3.

Valid values for these properties are:

  • CDMA: “C”
  • LteFdd: “Lf”
  • LteTdd: “Lt”
  • WCDMA: “W”
  • TDSCDMA: “T”
  • GSM: “G”
  • NR “N”

In the format, Name: Value.

Notes

When setting this property, be sure to split each value with a “/”.

Example:

ro.vendor.mtk_protocolX_rat_config=Lf/Lt/W/G

or

ro.vendor.mtk_psX_rat=Lf/Lt/W/G

is present in your vendor property list, from this we can tell the device supports LteFdd, LteTdd, WCDMA and GSM connectivity.

For additional information on what LteTdd or LteFdd means please visit this page.

android/kb/mtk/props.txt · Last modified: 2023/06/11 23:11 by electimon