Question Trying to make Viper4Android work (S908E)

Search This thread

ffp.

Senior Member
Oct 6, 2011
541
68
Hi. I have a S908E (rooted snapdragon) and I'm trying for more than a week, nonstop, to make Viper4Android work in my device. It keepa asking for drivers everytime I open the app.

At first, I tried every post that I could find where people said that it worked. That includes several modules and V4A apps/zip, like: Audio Modification Library, JamesDSP, Audio Compatibility Patch, Viper4AndroidFX app, V4A 2.7.2.1, Shadowstep fix. And some other .zip fixes to flash via magisk.

Always removing every audio module and uninstalling V4A for each try. Got no result, Viper4Android still asks for drivers.

So, I realised that to get it to work, i need to know what exactly is the source of the problem in my phone and how to fix it.
With help of other users, I got to know a bit more about v4a and its files.
It seems the main files are audio_effects.xml and audio_effects.conf.

The folders that has the .xml file are vendor/etc and vendor/etc/audio/sku_taro. System/vendor is the same as vendor/

Ok, I noticed that my files inside sku_taro didn't had any line related to v4a. So I got those files from vendor/etc and copied them inside sku_taro (via magisk, since I can't edit files there). Didn't work.

I noticed another issue: audio_effects.conf isn't modified to V4A and I'm not sure if it should. The V4A system folder in data/adb/modules/ doesn't have this .conf file. However, my S21+ (exynos) that had v4a working had this file with v4a lines.

So, my first question to keep going in this odyssey is: should audio_effects.conf be modified with V4A lines and should it be present in vendor/etc as well?


EDIT: Also, what should it have modified?
It isn't the same code as in my S21+ (tried that already).

If prints of the codes of the files or the content of foldera are needed, I can post here.
 

ffp.

Senior Member
Oct 6, 2011
541
68
No one? Come on, let's make this amazing module work in our Snapdragons!

Ok, I'm sharing my audio_effects.conf files, in the case someone who understand better than me to give opinions.

This is the file that i got from a S21+ (Exynos) with working V4A:



libraries {
v4a_fx {
path /vendor/lib/soundfx/libv4a_fx.so
}
soundbooster_plus {
path /system/lib/libsamsungSoundbooster_plus_legacy.so
}
soundalive_sec {
path /system/lib/libaudiosaplus_sec_legacy.so
}
mysound {
path /system/lib/libmysound_legacy.so
}
dap {
path /system/lib/libswdap_legacy.so
}
tdm {
path /system/lib/libsamsungSoundbooster_tdm_legacy.so
}
volumemonitor {
path /system/lib/libvolumemonitor_energy.so
}
voicechanger {
path /system/lib/libvoicechanger.so
}
dht {
path /system/lib/libswdht_legacy.so
}
}

effects {
v4a_standard_fx {
library v4a_fx
uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
}
soundbooster_plus {
library soundbooster_plus
uuid 50de45f0-5d4c-11e5-a837-0800200c9a66
}
soundalive {
library soundalive_sec
uuid cf65eb39-ce2f-48a8-a903-ceb818c06745
}
dha {
library mysound
uuid 263a88e0-50b1-11e2-bcfd-0800200c9a66
}
dolby {
library dap
uuid 6ab06da4-c516-4611-8166-452799218539
}
dlb_ht {
library dht
uuid b247dfc9-2832-4486-92c0-2db27a3785f5
}
tdm {
library tdm
uuid beb1d058-916a-4adf-9cfe-54ee5ba8c4a5
}
volumemonitor {
library volumemonitor
uuid 16311c29-bb53-4415-b7af-ae653e812de8
}
voicechanger {
library voicechanger
uuid 25c30101-9542-451f-a064-c3198e187dfc
}
}

And this is the audio_effects.conf that was present in my S22U (Snapdragon) inside vendor/etc/audio/sku_taro:

I added the V4A lines marked (Bolded,underlined and red), with the same code from the file that were inside the S21+ (the file was named audio_effects_common.conf in Exynos, I renamed to audio_effects.conf before pasting in the S22U) file, and pasted the file inside vendor/etc as well, but got no luck:

# List of effect libraries to load. Each library element must contain a "path" element
# giving the full path of the library .so file.
# libraries {
# <lib name> {
# path <lib path>
# }
# }
libraries {
v4a_fx {
path /vendor/lib/soundfx/libv4a_fx.so
}

bundle {
path /vendor/lib/soundfx/libbundlewrapper.so
}
reverb {
path /vendor/lib/soundfx/libreverbwrapper.so
}
qcbassboost {
path /vendor/lib/soundfx/libqcbassboost.so
}
qcvirt {
path /vendor/lib/soundfx/libqcvirt.so
}
qcreverb {
path /vendor/lib/soundfx/libqcreverb.so
}
visualizer_sw {
path /vendor/lib/soundfx/libvisualizer.so
}
visualizer_hw {
path /vendor/lib/soundfx/libqcomvisualizer.so
}
downmix {
path /vendor/lib/soundfx/libdownmix.so
}
loudness_enhancer {
path /vendor/lib/soundfx/libldnhncr.so
}
dynamics_processing {
path /vendor/lib/soundfx/libdynproc.so
}
proxy {
path /vendor/lib/soundfx/libeffectproxy.so
}
offload_bundle {
path /vendor/lib/soundfx/libqcompostprocbundle.so
}
audio_pre_processing {
path /vendor/lib/soundfx/libqcomvoiceprocessing.so
}
volume_listener {
path /vendor/lib/soundfx/libvolumelistener.so
}
audiosphere {
path /vendor/lib/soundfx/libasphere.so
}
}

# Default pre-processing library. Add to audio_effect.conf "libraries" section if
# audio HAL implements support for default software audio pre-processing effects
#
# pre_processing {
# path /vendor/lib/soundfx/libaudiopreprocessing.so
# }

# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
# The value of the "library" element must correspond to the name of one library element in the
# "libraries" element.
# The name of the effect element is indicative, only the value of the "uuid" element
# designates the effect.
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
# generic effect type UUID.
# effects {
# <fx name> {
# library <lib name>
# uuid <effect uuid>
# }
# ...
# }

effects {

# additions for the proxy implementation
# Proxy implementation
#effectname {
#library proxy
#uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

# SW implemetation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libsw {
#library libSW
#uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
#} End of SW effect

# HW implementation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libhw {
#library libHW
#uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
#}End of HW effect
#} End of effect proxy
v4a_standard_fx {
library v4a_fx
uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b

}

bassboost {
library proxy
uuid 14804144-a5ee-4d24-aa88-0002a5d5c51b

libsw {
library qcbassboost
uuid 23aca180-44bd-11e2-bcfd-0800200c9a66
}

libhw {
library offload_bundle
uuid 2c4a8c24-1581-487f-94f6-0002a5d5c51b
}
}
virtualizer {
library proxy
uuid d3467faa-acc7-4d34-acaf-0002a5d5c51b

libsw {
library qcvirt
uuid e6c98a16-22a3-11e2-b87b-f23c91aec05e
}

libhw {
library offload_bundle
uuid 509a4498-561a-4bea-b3b1-0002a5d5c51b
}
}
equalizer {
library proxy
uuid c8e70ecd-48ca-456e-8a4f-0002a5d5c51b

libsw {
library bundle
uuid ce772f20-847d-11df-bb17-0002a5d5c51b
}

libhw {
library offload_bundle
uuid a0dac280-401c-11e3-9379-0002a5d5c51b
}
}
volume {
library bundle
uuid 119341a0-8469-11df-81f9-0002a5d5c51b
}
reverb_env_aux {
library proxy
uuid 48404ac9-d202-4ccc-bf84-0002a5d5c51b

libsw {
library qcreverb
uuid a8c1e5f3-293d-43cd-95ec-d5e26c02e217
}

libhw {
library offload_bundle
uuid 79a18026-18fd-4185-8233-0002a5d5c51b
}
}
reverb_env_ins {
library proxy
uuid b707403a-a1c1-4291-9573-0002a5d5c51b

libsw {
library qcreverb
uuid 791fff8b-8129-4655-83a4-59bc61034c3a
}

libhw {
library offload_bundle
uuid eb64ea04-973b-43d2-8f5e-0002a5d5c51b
}
}
reverb_pre_aux {
library proxy
uuid 1b78f587-6d1c-422e-8b84-0002a5d5c51b

libsw {
library qcreverb
uuid 53ef1db5-c0c0-445b-b060-e34d20ebb70a
}

libhw {
library offload_bundle
uuid 6987be09-b142-4b41-9056-0002a5d5c51b
}
}
reverb_pre_ins {
library proxy
uuid f3e178d2-ebcb-408e-8357-0002a5d5c51b

libsw {
library qcreverb
uuid b08a0e38-22a5-11e2-b87b-f23c91aec05e
}

libhw {
library offload_bundle
uuid aa2bebf6-47cf-4613-9bca-0002a5d5c51b
}
}
visualizer {
library proxy
uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c

libsw {
library visualizer_sw
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
}

libhw {
library visualizer_hw
uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
}
}
downmix {
library downmix
uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
}
hw_acc {
library offload_bundle
uuid 7d1580bd-297f-4683-9239-e475b6d1d69f
}
loudness_enhancer {
library loudness_enhancer
uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
}
dynamics_processing {
library dynamics_processing
uuid e0e6539b-1781-7261-676f-6d7573696340
}
aec {
library audio_pre_processing
uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109
}
ns {
library audio_pre_processing
uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306f8
}
music_helper {
library volume_listener
uuid 08b8b058-0590-11e5-ac71-0025b32654a0
}
ring_helper {
library volume_listener
uuid 0956df94-0590-11e5-bdbe-0025b32654a0
}
alarm_helper {
library volume_listener
uuid 09f303e2-0590-11e5-8fdb-0025b32654a0
}
# voice_helper is called when stream type is voice_call in VoIP usecase
voice_helper {
library volume_listener
uuid 0ace5c08-0590-11e5-ae9e-0025b32654a0
}
notification_helper {
library volume_listener
uuid 0b776dde-0590-11e5-81ba-0025b32654a0
}
audiosphere {
library audiosphere
uuid 184e62ab-2d19-4364-9d1b-c0a40733866c
}
}

# additional effect from vendor
# UUID generated using version 1

output_session_processing {
music {
music_helper {
}
}
ring {
ring_helper {
}
}
alarm {
alarm_helper {
}
}
# stream type voice_call is used for VoIP call
voice_call {
voice_helper {
}
}
notification {
notification_helper {
}
}
}

# Added aec, ns effects for voice_communication, which are supported by the board

pre_processing {
voice_communication {
aec {
}
ns {
}
}
}

# Default pre-processing effects. Add to audio_effect.conf "effects" section if
# audio HAL implements support for them.
#
# agc {
# library pre_processing
# uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
# }
# aec {
# library pre_processing
# uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
# }
# ns {
# library pre_processing
# uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
# }

# Audio preprocessor configurations.
# The pre processor configuration consists in a list of elements each describing
# pre processor settings for a given input source. Valid input source names are:
# "mic", "camcorder", "voice_recognition", "voice_communication"
# Each input source element contains a list of effects elements. The name of the effect
# element must be the name of one of the effects in the "effects" list of the file.
# Each effect element may optionally contain a list of parameters and their
# default value to apply when the pre processor effect is created.
# A parameter is defined by a "param" element and a "value" element. Each of these elements
# consists in one or more elements specifying a type followed by a value.
# The types defined are: "int", "short", "float", "bool" and "string"
# When both "param" and "value" are a single int, a simple form is allowed where just
# the param and value pair is present in the parameter description
# pre_processing {
# <input source name> {
# <fx name> {
# <param 1 name> {
# param {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# value {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# }
# <param 2 name > {<param> <value>}
# ...
# }
# ...
# }
# ...
# }

#
# TODO: add default audio pre processor configurations after debug and tuning phase
#
 
Last edited:

ffp.

Senior Member
Oct 6, 2011
541
68
System is still "Read Only"
So no luck achieving this yet. We gotta wait till a Kernel comes around.
Hm, what you mean? Can't we go around that with magisk? I was able to edit file systems. Doesn't V4A just need to read them?

Also, the S21+ also seems to have a RO system (couldn't even rename files inside vendor) and V4A worked just fine.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    System is still "Read Only"
    So no luck achieving this yet. We gotta wait till a Kernel comes around.