#
# system.prop for msm8953
#

# Audio
# Reduce client buffer size for fast audio output tracks
af.fast_track_multiplier=1
#enable music through deep buffer
audio.deep_buffer.media=true
#minimum duration for offload playback in secs
audio.offload.min.duration.secs=30
#enable offload audio video playback by default
audio.offload.video=true
#set AudioFlinger client heap size
ro.af.client_heap_size_kbyte=7168


# Bluetooth
#system prop for Bluetooth
#ro.bluetooth.library_name=libbluetooth_qti.so # Disable this as we do not use QTI BT stack in AOSP.


# Camera
#properties for limiting preview size in camera
persist.vendor.camera.display.umax=1920x1080
persist.vendor.camera.display.lmax=1280x720
#force HAL1 for below packages
vendor.camera.hal1.packagelist=com.skype.raider,com.google.android.talk
#low power mode for camera
vendor.camera.lowpower.record.enable=1
#expose aux camera for below packages
vendor.camera.aux.packagelist=com.android.fp3camera


# System property for cabl
ro.qualcomm.cabl=2
ro.vendor.display.cabl=2


# system props for the cne module
persist.vendor.cne.feature=1


# Data
persist.data.netmgrd.qos.enable=true
persist.vendor.data.mode=concurrent
# system props for the data modules
ro.vendor.use_data_netmgrd=true


# Display
ro.hdmi.enable=false
#Disable Skip Validate
sdm.debug.disable_skip_validate=1
#Property to enable display default color mode
vendor.display.enable_default_color_mode=1

# Display Properties as per treble compliance
vendor.gralloc.enable_fb_ubwc=1
vendor.display.disable_skip_validate=1


# EMMC
#set device emmc size
ro.emmc_size=16GB


# FBE
#for FBE
ro.crypto.allow_encrypt_override=true
ro.crypto.volume.filenames_mode=aes-256-cts


# Fingerprint
#property to enable fingerprint
persist.qfp=false


# Graphics
dalvik.vm.heapsize=36m
debug.egl.hw=0
debug.enable.sglscale=1
debug.gralloc.enable_fb_ubwc=1
debug.mdpcomp.logs=0
debug.sf.enable_hwc_vds=1
debug.sf.hw=0
debug.sf.latch_unsignaled=1
debug.sf.recomputecrop=0
dev.pm.dyn_samplingrate=1
persist.demo.hdmirotationlock=false
persist.hwc.mdpcomp.enable=true


#HWUI properties
ro.hwui.drop_shadow_cache_size=6
ro.hwui.gradient_cache_size=1
ro.hwui.layer_cache_size=48
ro.hwui.path_cache_size=32
ro.hwui.r_buffer_cache_size=8
ro.hwui.text_large_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_small_cache_height=1024
ro.hwui.text_small_cache_width=1024
ro.hwui.texture_cache_flushrate=0.4
ro.hwui.texture_cache_size=72


# Media
av.debug.disable.pers.cache=1
media.aac_51_output_enabled=true
media.settings.xml=/vendor/etc/media_profiles_vendor.xml
mm.enable.smoothstreaming=true
mmp.enable.3g2=true

# Prefer HW codec over SW for thumbnail
media.stagefright.thumbnail.prefer_hw_codecs=true

#system props for the MM modules
media.msm8956hw=0

#codecs:(PARSER_)AAC AC3 ASF FLV 3G2 MP2PS MP2TS QCP AIFF
vendor.mm.enable.qcom_parser=301715


# Others
#selects Console configuration to enable
persist.console.silent.config=1
# system property to accelerate Progressive Download using STA
persist.mm.sta.enable=0
#set cutoff voltage to 3400mV
ro.cutoff_voltage_mv=3400


# Radio/ RIL properties
DEVICE_PROVISIONED=1
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
persist.rild.nitz_long_ons_2=
persist.rild.nitz_long_ons_3=
persist.rild.nitz_plmn=
persist.rild.nitz_short_ons_0=
persist.rild.nitz_short_ons_1=
persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
ril.subscription.types=NV,RUIM
rild.libargs=-d /dev/smd0
rild.libpath=/vendor/lib64/libril-qc-qmi-1.so

# Set network mode to (T/L/G/W/1X/EVDO, T/L/G/W/1X/EVDO) for 7+7 mode device on DSDS mode
ro.telephony.default_network=20,20

# SDcard
#Simulate sdcard on /data/media
persist.fuse_sdcard=true


# Telephony
# System prop to turn on CdmaLTEPhone always
telephony.lteOnCdmaDevice=1


# Time
#system props for time-services
persist.timed.enable=true


# Video
# Additional buffers shared between Camera and Video
vidc.enc.dcvs.extra-buff-count=2
vendor.vidc.dec.downscalar_width=1920
vendor.vidc.dec.downscalar_height=1088
vendor.vidc.disable.split.mode=1
#property to enable narrow search range for video encoding
vendor.vidc.enc.disable_bframes=1
# disable PQ feature by default
vendor.vidc.enc.disable.pq=true
# system prop for UBWC
vendor.video.disable.ubwc=1

# VoLTE/WFC
persist.data.iwlan.enable=true
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.ims.enableADBLogs=1
persist.ims.enableDebugLogs=1
persist.radio.calls.on.ims=true
persist.radio.domain.ps=false
persist.radio.jbims=1
persist.radio.vrte_logic=1
persist.rcs.supported=0

# WFD
#property to enable user to access Google WFD settings
persist.debug.wfd.enable=1
#selects CoreSight configuration to enable
persist.debug.coresight.config=stm-events
#property to enable VDS WFD solution
persist.hwc.enable_vds=1
