#
# 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 AMR_NB AMR_WB ASF DTS FLV 3GP 3G2 MP2PS MP2TS MP3 OGG QCP WAV FLAC AIFF
vendor.mm.enable.qcom_parser=523231


# 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
