Build.prop - sound quality improvement By TMarcelin Tutorials - April 18, 2022 Comments: 2 Views: 10 429 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.
Flutter: Everything you need to protect your data This article will tell you in what general ways you can protect your application from hacking or April 10, 2022 Tutorials
The evolution of the Android security system or how the system is protected today How it all started The road to protecting Android has been thorny. At the end of 2021, Android March 16, 2022 Blog
Mobile sound - what determines the quality When it comes to quality portable audio, hi-fi audio players immediately come to mind. The February 24, 2022 Blog
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 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. Reply
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). Reply