#
# system.prop for axolotl
#

# Dex2oat
dalvik.vm.dex2oat64.enabled=true

rild.libpath=/vendor/lib64/libril-qc-hal-qmi.so
#rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
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_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
DEVICE_PROVISIONED=1
# 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=22,22

dev.pm.dyn_samplingrate=1

#ro.hdmi.enable=true
#persist.speaker.prot.enable=false
qcom.hw.aac.encoder=true

#system props for the MM modules
media.stagefright.enable-player=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-fma2dp=true
media.stagefright.enable-scan=true
media.stagefright.thumbnail.prefer_hw_codecs=true
#media.settings.xml=/vendor/etc/media_profiles_vendor.xml
mmp.enable.3g2=true
media.aac_51_output_enabled=true
vendor.mm.enable.qcom_parser=13629439
persist.mm.enable.prefetch=true

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

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

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

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

#System props for BT
ro.bluetooth.library_name=libbluetooth_qti.so
persist.vendor.btstack.aac_frm_ctl.enabled=true

#
#snapdragon value add features
#
ro.qc.sdk.audio.ssr=false

##fluencetype can be "fluence" or "fluencepro" or "none"
ro.qc.sdk.audio.fluencetype=none
persist.audio.fluence.voicecall=true
persist.audio.fluence.voicerec=false
persist.audio.fluence.speaker=true


#enable offload audio video playback by default
audio.offload.video=true
#
##enable music through deep buffer
audio.deep_buffer.media=true
#
##set AudioFlinger client heap size
ro.af.client_heap_size_kbyte=7168
#
#system prop for RmNet Data
persist.rmnet.data.enable=true
persist.data.wda.enable=true
persist.data.df.dl_mode=5
persist.data.df.ul_mode=5
persist.data.df.agg.dl_pkt=10
persist.data.df.agg.dl_size=4096
persist.data.df.mux_count=8
persist.data.df.iwlan_mux=9
persist.data.df.dev_name=rmnet_usb0

#property to enable user to access Google WFD settings
persist.debug.wfd.enable=1
##property to choose between virtual/external wfd display
persist.sys.wfd.virtual=0


#property to enable HWC for VDS
debug.sf.enable_hwc_vds=1

#property to latch unsignaled buffer
debug.sf.latch_unsignaled=1

# enable tunnel encoding for amrwb
tunnel.audio.encode=true

#Buffer size in kbytes for compress offload playback
audio.offload.buffer.size.kb=32

#Enable offload audio video playback by default
av.offload.enable=true

#enable voice path for PCM VoIP by default
use.voice.path.for.pcm.voip=true

# system prop for NFC DT
ro.nfc.port=I2C

#enable dsp gapless mode by default
audio.offload.gapless.enabled=true

#initialize QCA1530 detection
sys.qca1530=detect

#Enable stm events
persist.debug.coresight.config=stm-events

config.disable_rtt=true

#Bringup properties
persist.vendor.radio.atfwd.start=true

#Expose aux camera for below packages
vendor.camera.aux.packagelist=org.codeaurora.snapcam,com.shift.shutter

#Whitelisting the below packages
persist.vendor.camera.privapp.list=org.codeaurora.snapcam,com.shift.shutter
persist.camera.privapp.list=org.codeaurora.snapcam,com.shift.shutter

#enable IZat OptInApp overlay
persist.vendor.overlay.izat.optin=rro

# Property for backup NTP Server
persist.backup.ntpServer="0.pool.ntp.org"

#Property to enable Mag filter
persist.vendor.sensors.enable.mag_filter=true

#Partition source order for Product/Build properties pickup.
#ro.product.property_source_order=odm,vendor,product,product_services,system

#Property to enable Codec2 for audio and OMX for Video
debug.stagefright.ccodec=1

ro.vendor.qti.va_aosp.support=1
