» » Build.prop - sound quality improvement

Build.prop - sound quality improvement

Almost everyone who has ever put ROOT rights on Android has heard about such a file as build.prop and tweaks for it. In this article, we will look at all the lines of this file with which you can improve the sound quality of your smartphone and enable useful features that were disabled by default.

 

Many audio modifications in the form of a Magisk module have a considerable number of sound tweaks in their system.prop, but not every developer of a particular module knows their meanings and scope. Below you can see a number of different props (a line from build.prop) that can be used both individually and all together, because each of them is responsible for a specific parameter that is not interconnected with others. All props are taken from different devices, so it is possible that some of them will not be applied correctly, or not applied at all. Props can have numeric, string, or boolean values. All strings in the list have been tested by the NLSound team and myself.

The build.prop file is located in the /vendor folder. The easiest way to edit build.prop is by adding lines to the end of the file. For such actions, you definitely need ROOT access and a file manager with support for root access.

  • Disable Deep Buffer.

Disabling this output will use the PRIMARY output, which is higher quality and does not have extra processing compared to the deep_buffer output. It is not a complete shutdown of the output, since applications that output sound through this output will not stop using it. Only if the application can work through other outputs, these props will remove deep_buffer from the status of the main one.

audio.deep_buffer.media=false 
vendor.audio.deep_buffer.media=false 
vendor.audio.feature.deepbuffer_as_primary.enable=false 
qc.audio.deep_buffer.media=false 
ro.qc.audio.deep_buffer.media=false 
persist.vendor.audio.deep_buffer.media=false
  • Change the number of volume steps.

Set the value that you like and use.

ro.config.media_vol_steps=25
  • Enabling Dirac processing

If you have a Dirac engine installed, these props will make Dirac the main "provider" of effects and the main EQ, provided that this feature is supported by your firmware.

ro.audio.soundfx.dirac=true
ro.vendor.audio.soundfx.type=dirac 
persist.audio.dirac.speaker=true
  • Various improvements to audio processing codecs.

vendor.audio.flac.sw.decoder.24bit=true 
flac.sw.decoder.24bit.support=true 
vendor.audio.aac.sw.decoder.24bit=true 
vendor.audio.use.sw.alac.decoder=true 
vendor.audio.flac.sw.encoder.24bit=true 
vendor.audio.aac.sw.encoder.24bit=true 
vendor.audio.use.sw.ape.decoder=true 
vendor.audio.tunnel.encode=true 
tunnel.audio.encode=true 
qc.tunnel.audio.encode=true 
use.non-omx.mp3.decoder=false 
use.non-omx.aac.decoder=false 
use.non-omx.flac.decoder=false 
media.aac_51_output_enabled=true 
vendor.audio.parser.ip.buffer.size=262144 
vendor.mm.enable.qcom_parser=63963135
  • Shutdown

Something from "low power", and the sound becomes more saturated.

lpa.decode=false 
lpa30.decode=false 
lpa.use-stagefright=false 
lpa.releaselock=false
  • Removes the limitations of the AF resampler.

By ear, the effect is similar to the lines above.

af.thread.throttle=0
  • Dropping the sample rate.

audio.playback.mch.downsample=false 
vendor.audio.playback.mch.downsample=false 
persist.vendor.audio.playback.mch.downsample=false
  • Features

Futures from about the middle of the build.prop file. Look in your firmware and make sure that you have such lines, otherwise there will definitely be no point in using them. Expansion of the capabilities of the DSP module, speaker output and TFA amplifier, if available. Also turn off compression, bring the sound to its original form, turn off power control.

vendor.audio.feature.dynamic_ecns.enable=true 
vendor.audio.feature.external_dsp.enable=true 
vendor.audio.feature.external_qdsp.enable=true 
vendor.audio.feature.external_speaker.enable=true 
vendor.audio.feature.external_speaker_tfa.enable=true 
vendor.audio.feature.receiver_aided_stereo.enable=true 
vendor.audio.feature.ext_hw_plugin=true 
vendor.audio.feature.source_track_enabled=true 
vendor.audio.feature.keep_alive.enable=true 
vendor.audio.feature.compress_meta_data.enable=false 
vendor.audio.feature.compress_in.enable=false 
vendor.audio.feature.compr_cap.enable=false 
vendor.audio.feature.compr_voip.enable=false 
vendor.audio.feature.devicestate_listener.enable=false 
vendor.audio.feature.thermal_listener.enable=false 
vendor.audio.feature.power_mode.enable=true 
vendor.audio.feature.hifi_audio.enable=true
  • HI-FI in the implementation of Android vendors.

Has nothing to do with HI-FI standards. A mechanism is activated to remove distortion and improve the accuracy of sound reproduction. After applying these lines, the sound becomes more pleasing to the ears.

ro.hardware.hifi.support=true 
ro.audio.hifi=true 
ro.vendor.audio.hifi=true 
persist.audio.hifi=true 
persist.audio.hifi.volume=72 
persist.audio.hifi.int_codec=true 
persist.vendor.audio.hifi=true 
persist.vendor.audio.hifi.int_codec=true
  • Equalization settings.

Everything that makes the sound more saturated is turned on, and everything related to the equalizer built into the system is turned off.

effect.reverb.pcm=1 
audio.pp.asphere.enabled=true
vendor.audio.pp.asphere.enabled=true
vendor.audio.safx.pbe.enabled=true 
vendor.audio.soundfx.usb=false 
vendor.audio.keep_alive.disabled=false
ro.vendor.audio.soundfx.usb=false 
ro.vendor.audio.sfx.speaker=false 
ro.vendor.audio.sfx.earadj=false 
ro.vendor.audio.sfx.scenario=false 
ro.vendor.audio.sfx.audiovisual=false 
ro.vendor.audio.sfx.independentequalizer=false 
ro.vendor.audio.3d.audio.support=true
persist.vendor.audio.ambisonic.capture=true
persist.vendor.audio.ambisonic.auto.profile=true
  • Improving the clarity of audio recording, scene correction and noise removal.

vendor.voice.dsd.playback.conc.disabled=false
vendor.audio.hdr.record.enable=true
vendor.audio.3daudio.record.enable=true
ro.vendor.audio.recording.hd=true 
ro.ril.enable.amr.wideband=1 
persist.audio.lowlatency.rec=true
  • Lines from devices that have good audio codecs.

If you have a good audio codec, these props will not be superfluous. Disable limiters, disable power control, increase volume, enable 24-bit support, connect DSP on TFA amplifiers where possible.

vendor.audio.matrix.limiter.enable=0 
vendor.audio.capture.enforce_legacy_copp_sr=true 
vendor.audio.snd_card.open.retries=50 
vendor.audio.volume.headset.gain.depcal=true 
vendor.audio.hal.output.suspend.supported=true 
vendor.audio.tfa9874.dsp.enabled=true
ro.audio.soundtrigger.lowpower=false
ro.vendor.audio.soundtrigger.adjconf=true 
ro.vendor.audio.ns.support=true 
ro.vendor.audio.enhance.support=true
ro.vendor.audio.gain.support=true 
persist.vendor.audio.ll_playback_bargein=true 
persist.vendor.audio.bcl.enabled=false
persist.vendor.audio.format.24bit=true
persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24 
persist.vendor.audio.delta.refresh=true
  • Settings for Bluetooth.

Inclusion of APTX and AAC codecs, other improvements for bt.

audio.effect.a2dp.enable=1 
vendor.audio.effect.a2dp.enable=1 
qcom.hw.aac.encoder=true
vendor.audio.hw.aac.encoder=true
persist.service.btui.use_aptx=1 
persist.bt.enableAptXHD=true 
persist.bt.a2dp.aptx_disable=false
persist.bt.a2dp.aptx_hd_disable=false 
persist.bt.a2dp.aac_disable=false
persist.bt.sbc_hd_enabled=1
persist.vendor.btstack.enable.lpa=false 
persist.vendor.bt.a2dp.aac_whitelist=false
persist.vendor.bt.aac_frm_ctl.enabled=true 
persist.vendor.bt.aac_vbr_frm_ctl.enabled=true 
persist.vendor.btstack.enable.twsplus=true
persist.vendor.btstack.enable.twsplussho=true 
persist.vendor.qcom.bluetooth.scram.enabled=false
persist.vendor.qcom.bluetooth.aac_frm_ctl.enabled=true 
persist.vendor.qcom.bluetooth.aac_vbr_ctl.enabled=true 
persist.vendor.qcom.bluetooth.twsp_state.enabled=false 
persist.bluetooth.sbc_hd_higher_bitrate=1
persist.sys.fflag.override.settings_bluetooth_hearing_aid=true

Also, there is a small list of problematic lines that can disrupt the device:


vendor.audio.feature.compress_in.enable=false 


vendor.audio.feature.compr_voip.enable=false 


persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24


qcom.hw.aac.encoder=true 
vendor.audio.hw.aac.encoder=true 
persist.vendor.qcom.bluetooth.aac_vbr_ctl.enabled=true

persist.vendor.btstack.enable.twsplus=true


persist.vendor.qcom.bluetooth.scram.enabled=false

Don't forget to backup your build.prop file before installing props to avoid possible problems.

If the application of the strings caused problems, then select the problematic ones from the list and try without them. If the problems remain, then use the elimination method to find the line that causes your problem. In the future, an article of this kind about the mixer_paths.xml file is possible. Happy use.

Related Articles

Comments(2)

    Tim wrote:

    Thanks for all of this, I had never encountered a number of these. I've been trying for a minute to find a 'comprehensive' (as much as is possible, at least) list of audio build props with descriptions (and non-audio.... it'd be nice to know what already exists) and this is definitely the best I've found -- I really appreciate them broken into categories with general descriptions.

     

    It would be nice if there were such a comprehensive list of build props with descriptions in, say, the AOSP repos sweat I've done quite a bit of looking, but not had any luck. It's possible I've missed, though, given the AOSP source tree is rather large.

     

    One thing I'm not sure I'm understanding correctly.... Are the values given throughout the article recommended for best audio quality? I was under the impression this was the purpose of the article, but then I got to the "...small list of problematic lines..." and realized that the exact same lines are listed above, with the same values.

    wyup wrote:

    Thanks for the tip.

     

    One thing to note is checking /vendor/default.prop because it has precedence over /system/build.prop. Sometimes the same build.prop property is overidden by default.prop.

     

    About Deep Buffer, I'm not sure if it's onvenient to disable since it lowers battery consumption by means of a big buffer, and Primary Outpud doesn't have better quality since it is low latency by default (fast and worse quality).

Add Your Comment

reload, if the code cannot be seen

All comments will be moderated before being published.