[APP][ALL ROOT SOLUTIONS][6.0+]ViPER4Android FX 2.7

Search This thread
I have a problem with V4A on my Redmi 7. Tried to flash this on Magisk repo and then ask to install the driver, it doesn't work. Any some possible fix or something? Android 11 on PixysOS 4.0.5.

Screenshot_20210507-083803_ViPER4Android_FX.png
 

gfrank227

Member
Feb 12, 2018
20
1
Moto G8 Plus
I have a problem with V4A on my Redmi 7. Tried to flash this on Magisk repo and then ask to install the driver, it doesn't work. Any some possible fix or something? Android 11 on PixysOS 4.0.5.

View attachment 5301931
Try Installing audio modification library first. Then install V4A and install drivers and reboot. Then disable AML and reboot. Then go back in to V4A. Should reinstall drivers again. This has worked for others on Android 11 according to this thread. Worth a try. Also did you try toggling legacy mode?

As for myself, I'm running android 10 and trying to figure out a way to keep it from clearing out of memory when using other apps.
 
Try Installing audio modification library first. Then install V4A and install drivers and reboot. Then disable AML and reboot. Then go back in to V4A. Should reinstall drivers again. This has worked for others on Android 11 according to this thread. Worth a try. Also did you try toggling legacy mode?

As for myself, I'm running android 10 and trying to figure out a way to keep it from clearing out of memory when using other apps.
Yes. I tried to downgrade Magisk to 21.0 and it works. And updating to latest Magisk again no problem. Also yes, turned on legacy mode, it does work fine.
 

Manu23l

Member
Nov 30, 2016
5
0
I am on LineageOS 18.1 on a Moto X4.
Should V4A work for call audio as well?
It works well with media of any kind and with data-calls (such as skype or whatsapp), but not for the dialer app. The "Driver status" tells me "Processing: No" when in a call.
This is unfortunate because I installed it to lower the call volume, which is high enough that it hurts.
 

observingman

Senior Member
Mar 24, 2013
143
16
Try Installing audio modification library first. Then install V4A and install drivers and reboot. Then disable AML and reboot. Then go back in to V4A. Should reinstall drivers again. This has worked for others on Android 11 according to this thread. Worth a try. Also did you try toggling legacy mode?

As for myself, I'm running android 10 and trying to figure out a way to keep it from clearing out of memory when using other apps.
Yesss ! Worked for me on mi mix 2 and crdroid with android 11.... Thanks !
 

purgy

Senior Member
Aug 29, 2013
94
13
Sydney
I dont know how or when I found it, but I used this zip in magisk, on my pixel 4a running Android 11. I am sure I must of got it somewhere off here, but when I search for it, I cant find it to give attribution to who posted it first.

ViperFX_Android11.zip

The only thing I changed (because I can) is that I switched it to boot SELinux Enforcing and it still works. The existing ZIP forces it to boot permissive
I just wanted to say thanks so much for this, works perfectly on 11 (pixel 3a) without all the hassle that I'm used to going through to get viper working. Flash, reboot, grant root and done.

Edit- seems to leave se Linux as permissive
 
Last edited:

DiamondJohn

Recognized Contributor
  • Aug 31, 2013
    5,230
    4,852
    Sydney
    I just wanted to say thanks so much for this, works perfectly on 11 (pixel 3a) without all the hassle that I'm used to going through to get viper working. Flash, reboot, grant root and done.

    Edit- seems to leave se Linux as permissive
    if you search, you will see that I have modified one of the scripts, to switch to enforcing, after a short delay. I now run enforcing, after a minute or two after boot.

    As for root, its only required for first boot (if that). I have disabled root for Viper, and its working fine on mine. It does appear to attempt to use root on boot, as now (if I do not switch off the toast) I get a toast telling me Viper was denied root. But it still works.
     
    Last edited:

    observingman

    Senior Member
    Mar 24, 2013
    143
    16
    if you search, you will see that I have modified one of the scripts, to switch to enforcing, after a short delay. I now run enforcing, after a minute or two after boot.

    As for root, its only required for first boot (if that). I have disabled root for Viper, and its working fine on mine. It does appear to attempt to use root on boot, as now (if I do not switch off the toast) I get a toast telling me Viper was denied root. But it still works.
    Seems to work on crdroid with android 11 and mi mix 2... but the fact that it has to set OFF the enforcing SELinux, worries me somehow.I have ROOT disabled for viper and still works.
     

    purgy

    Senior Member
    Aug 29, 2013
    94
    13
    Sydney
    if you search, you will see that I have modified one of the scripts, to switch to enforcing, after a short delay. I now run enforcing, after a minute or two after boot.

    As for root, its only required for first boot (if that). I have disabled root for Viper, and its working fine on mine. It does appear to attempt to use root on boot, as now (if I do not switch off the toast) I get a toast telling me Viper was denied root. But it still works.
    Thanks, I found that script, its currently set to wait 3 minutes before setting enforcing, I'll try to lower that a bit. Thanks again
     

    DiamondJohn

    Recognized Contributor
  • Aug 31, 2013
    5,230
    4,852
    Sydney
    Thanks, I found that script, its currently set to wait 3 minutes before setting enforcing, I'll try to lower that a bit. Thanks again
    I was originally planning to try lower and lower values (half it each time), but never got around to it. Let me know how you go with the lowest value that reliably works. When you get a value, i'll edit my original post to include a link to your new results/adjustment post.

    But, finding the actual SElinux rule that is blocking Viper from initializing, and adding it to the policy, would be even better. I have a app (TeMeFI) that can generate the SELinux allows, based on the denials logged in a logcat.
     

    _mysiak_

    Senior Member
    Apr 1, 2009
    2,413
    1,392
    Xiaomi Mi 10T Lite
    I was originally planning to try lower and lower values (half it each time), but never got around to it. Let me know how you go with the lowest value that reliably works. When you get a value, i'll edit my original post to include a link to your new results/adjustment post.

    But, finding the actual SElinux rule that is blocking Viper from initializing, and adding it to the policy, would be even better. I have a app (TeMeFI) that can generate the SELinux allows, based on the denials logged in a logcat.
    You mean these SElinux rules..? :) Viper team already identified and prepared them, they just need to be applied slightly differently in recent Magisk versions. For example this way. ;)

     

    DiamondJohn

    Recognized Contributor
  • Aug 31, 2013
    5,230
    4,852
    Sydney
    You mean these SElinux rules..? :) Viper team already identified and prepared them, they just need to be applied slightly differently in recent Magisk versions. For example this way. ;)

    The Magisk module I currently use has explicit allows, but from memory (I upgraded to A11 end of last year, so its getting on in time since I originally tried it), if it does not boot up permissive, it fails to run. This implies something is missing.
     

    _mysiak_

    Senior Member
    Apr 1, 2009
    2,413
    1,392
    Xiaomi Mi 10T Lite
    The Magisk module I currently use has explicit allows, but from memory (I upgraded to A11 end of last year, so its getting on in time since I originally tried it), if it does not boot up permissive, it fails to run. This implies something is missing.
    Viper works just fine with SElinux enforcing and those Magiskpolicy rules properly applied on A10 and A11 (confirmed on MIUI and many other phones with the latest Viper version).
     

    DiamondJohn

    Recognized Contributor
  • Aug 31, 2013
    5,230
    4,852
    Sydney
    Viper works just fine with SElinux enforcing and those Magiskpolicy rules properly applied on A10 and A11 (confirmed on MIUI and many other phones with the latest Viper version).
    those allows are exactly the same allows created using the viper for A11 zip I posted somewhere in this thread, and working for manhy others,. The bug difference, is that the sepolicy changtes are made using the (I think) newer srepolicy.rule file, and are specifically contained within the Viper module itse;lf, and not associated with the magisk install itself. So, disabling or removing the viper module will disable or remove the sepolicy changes as well. Its encapsulated within the viper module itself.

    However, I am pretty sure I tried removing the permissive switch script completely, and it broke viper. I am running a Pixel 4a with the latest A11, and its running the ViperFX version, as posters just above have found, it also works for them (ie its not just me). And its a pretty simple inslstall using a Magisk module.
     

    _mysiak_

    Senior Member
    Apr 1, 2009
    2,413
    1,392
    Xiaomi Mi 10T Lite
    those allows are exactly the same allows created using the viper for A11 zip I posted somewhere in this thread, and working for manhy others,. The bug difference, is that the sepolicy changtes are made using the (I think) newer srepolicy.rule file, and are specifically contained within the Viper module itse;lf, and not associated with the magisk install itself. So, disabling or removing the viper module will disable or remove the sepolicy changes as well. Its encapsulated within the viper module itself.

    However, I am pretty sure I tried removing the permissive switch script completely, and it broke viper. I am running a Pixel 4a with the latest A11, and its running the ViperFX version, as posters just above have found, it also works for them (ie its not just me). And its a pretty simple inslstall using a Magisk module.
    I am not going into this debate with you again. You were wondering what SElinux rules need to be created so I just provided the info. If you feel the need to reinvent the wheel, I don't really mind.. :)
     

    Top Liked Posts

    • There are no posts matching your filters.
    • 1
      Does anybody here have an instruction manual or something to learn what does every option do in the app? I don't know who designed it but it has some high horse sindrome or something to call the settings things like "Channel displacement" to the good old channel balance....

      I've seen things like the compressor have settings named like "inflection point" which I don't have the most remote idea of what is does.

      I cannot find information on the web on what the options do; all I find here in XDA is how to make the app work on X phone model.

      I need to set it up to be some kind of auto-volume so different youtube videos stay at the same volume and also compress them so quieter parts can be heard and louder parts don't freak me out (mostly voices and loud piano songs in the same videos, voices very quiet and piano very loud).
      Viper came into existance many years ago and it has been abandoned by the original devs. That's why its unofficial right now. @Team_DeWitt put much effort to bring it to the newer Android versions and it's really great. As far as I remember, since 2.7.6.x version it has short descriptions when you long press on a feature name. There is a guide with more information prepared by the original dev team, but it was created long time ago and some features are not present right now or named differently. Im attaching it
      1
      Viper came into existance many years ago and it has been abandoned by the original devs. That's why its unofficial right now. @Team_DeWitt put much effort to bring it to the newer Android versions and it's really great. As far as I remember, since 2.7.6.x version it has short descriptions when you long press on a feature name. There is a guide with more information prepared by the original dev team, but it was created long time ago and some features are not present right now or named differently. Im attaching it

      Thanks Lord Sithek! being honest, the information is not very useful but it is much more that what I could find. I think we should ask @@Team_DeWitt to make some kind of instructions document.
      1
      Does anybody here have an instruction manual or something to learn what does every option do in the app? I don't know who designed it but it has some high horse sindrome or something to call the settings things like "Channel displacement" to the good old channel balance....

      I've seen things like the compressor have settings named like "inflection point" which I don't have the most remote idea of what is does.

      I cannot find information on the web on what the options do; all I find here in XDA is how to make the app work on X phone model.

      I need to set it up to be some kind of auto-volume so different youtube videos stay at the same volume and also compress them so quieter parts can be heard and louder parts don't freak me out (mostly voices and loud piano songs in the same videos, voices very quiet and piano very loud).
      Terms like "inflection point" are actually used in digital music production. Viper is an advanced application and as such requries advanced understanding. Sure, some terms are not common to you or me, but its a biug world out there, and sometiomes to use something, the onus is on us to do the personal research.
      1
      Posting this here in case someone needs it. I was able to make Viper4Android v2.7.2.1 work on my OnePlus 7 Pro running on OxygenOS (OOS) 10.3.8 (Android 10), with Magisk 23.
      I followed the steps given in this thread on Reddit, which I am reiterating and rewording below (credits to @CR7Raees):
      1. Install Magisk module 'Ainur Narsil' and then reboot.
      2. Install Viper4Android module from Magisk. Open it, install the drivers and reboot from within V4A.
      3. Open Magisk and uninstall Ainur Narsil module. Again reboot.
      4. Open V4A and turn on Legacy Mode from the settings.
      Currently, I've just tried it out on my phone's speakers, but I am pretty sure it would also work with my headphones. Will report back and edit below.
      Screenshot_20210525-111502.jpg


      Edit: Yup. Working gorgeously with my XM3.
      1
      That is the problem right there: how do we know what the options do if we are not sound ingineers and there is no information available on what the options do?

      Everybody here in XDA talks about "beginners" and "experts" but no experts seem to be coming to this places since nobody knows what those "advanced" options do. :unsure:
      This is not the place to cover the basics of sound engineering. There are thousands of articles on the web already that cover that. This thread would be bloated beyond belief if it contained all that info. XDA is a developer forum not a beginners support site; especially for a free app. A simple web search and read would give you the info on using apps such as Viper. If ypou drive a car, you should learn how to drive first, not expect the sale people to teach you.
    • 521
      ViPER4Android FX
      YF7EJvAcFH9ZuuytKO91DimKH-TQUvYOaA-gmdBrioXY-LSgtjoadLI17gtaGgIkR6KBXyVA4IXtcdjfLdQ=w2880-h1608

      By pittvandewitt and MrWhite214

      Introduction
      Many users are enhancing their smartphone audio experience with the popular ViPER4Android software, but some of us have a hard time installing the driver or they don't like the look of the app. As a solution for these troubles we have rewritten the 2.4.0.1 app source and added all 2.5.0.5 features to it. Many more features have been implemented too.
      With our huge success of ViPER4Android 2.6 we decided to completely rewrite the ViPER4Android app in Kotlin. This allowed us to squeeze out the remaining bugs and clean up the code even more. After a long time of waiting for you and developing for us, ViPER4Android 2.7 is finally here!
      There are many new features and improvements compared to 2.6, of which some can be found in the changelog. Hit the download button to check it out yourself!

      Downloads
      You can download the latest version on XDA Labs
      If you were pointed here for the installer by @Zackptg5, the link can be found here

      pittvandewitt's vdc service
      If you've always wanted to get the most neutral and arguably best sound coming from your headphones, make sure to join the VDC service to request a file!

      Donate
      You can donate to us via PayPal or buy our donation package from XDA Labs with extra features!
      Donate via PayPal
      Buy our donation package *coming soon*

      Dev Note
      If you want to include the app in your work, you're free to do so as long as you give proper credits

      Legal notice
      We are not associated with vipersaudio nor audlabs.
      Stating their Github readme we're free to use the driver as long as it's not used commercially.
      The driver parameters are obtained from the 2.4.0.1 source. The graphical EQ interface is inspired by the Cyanogenmod DSP application
      The app is still named ViPER4Android, because the driver isn't any different from what ViPER ACOUSTIC provides.
      Renaming it without changing anything would be considered kanging, which is not what is going on here.

      Credits
      ViPER ACOUSTIC for the driver
      Bappo for Swedish translation
      pittvandewitt for Dutch translation
      sazuke0703 for Thai translation
      R1DEN for Russian translation
      Hede for Danish translation
      gloeyisk for Indonesian translation
      LCS for Chinese simplified and traditional translations
      razor84 for Turkish translation

      Installation
      Download and install the APK from XDA Labs
      Follow the instructions when opening the app

      XDA:DevDB Information
      ViPERAndroid, App for the Apps & Games

      Contributors
      Team_DeWitt, pittvandewitt, Mr_White_214

      Version Information
      Status: Stable
      Current Stable Version: 2.7.2.1
      Stable Release Date: 2020-10-27

      Created 2018-04-09
      Last Updated 2020-10-27
      131
      Currently on the wishing list
      • Car mode / head unit detection
      • More translations. If you're interested, take a look over here to find the files. Fork the repo and make a pull request to get your translation merged in next release!
      • EMUI (Huawei) 8.0+ refuses to load the driver. Ask ViPER ACOUSTIC for a 64bit driver (Can't fix)
      • Updated driver that does not require selinux injections or the libstdc++ dependency workaround (Can't fix)

      Before reporting:
      Make sure you use the latest APK provided on XDA Labs
      Make sure any other audio mod is disabled/removed before installing the driver. We really cannot afford fixing every single device setup, especially when it's not related to the app


      If you would like to report a bug, pm @Team_DeWitt using the following format:
      [Describe the problem and your steps you take to reproduce it]
      [Phone brand and model]
      [OS (ROM) + Android version]
      [Root method (in case of magisk: core or full)]
      [Provide a link to your log file]
      115
      Changelog

      2.7.2.1
      • Improved loading logic for convolution files
      • Fixed an issue when installing the module on older Magisk versions
      • Bug fixes
      • Stability improvements


      2.7.2.0
      • Android 11 support
      • Automatically save/restore settings based on the device type/name
      • Add preset widget
      • Reworked presets
      • Performance improvements
      • Close service when no music playback is active if legacy mode is disabled
      • Add optional crashlytics to help improving future versions

      2.7.1.6
      • Support Magisk 20.3
      • Long press a feature to show description
      • Material theme update
      • Support scoped storage on Android 10+ (Preset dir is now /sdcard/Android/data/com.pittvandewitt.viperfx/files/Preset)

      2.7.1.0
      • Support Magisk 19
      • Add compatibility setting
      • Add ability to attach to sessions
      • Fix preset loading bug
      • Switch from setools to magiskpolicy
      • Important release notes: Link

      2.7.0.0
      • Full rewrite in Kotlin
      • New UI
      • Presets can be managed in the app itself
      • Effects can be set more precisely with seekbars
      • Min API 23
      • Uses 2.5.0.4 driver only
      • Audio routing bug fixed
      • Driver status bug fixed
      • Cross device effect changing bug fixed
      • App follows system dark/light mode (can be toggled with google messages e.g.)
      • Installation is faster and more versatile
      • Notification settings
      • Reduced APK size significantly

      2.6.0.5
      • Add app shortcuts (7.1+)
      • Minor interface redesign
      • Fix muffled sound
      • Fix options not applying
      • Fix profile conversion
      • Introduce vdc service
      • Improve performance
      • Update driver installation
      • Update chinese translations, thanks to KiSS

      2.6.0.4
      • Retain service after clearing recents
      • Emergency service.sh fix
      • Support Magisk core mode
      • Fix profile load loop
      • Recover speaker service
      • Fix convolver
      • Support Pixel devices
      • Use su.d if possible
      • Force global effect mode
      • Add Korean translation by @nebulac

      2.6.0.3
      • Fix /system install and uninstall.
      • Add temporary workaround for the convolver
      • Updated strings

      2.6.0.2
      • Fix FC while installing the driver
      • Add root check before installing the driver
      • Removed lucky patcher check
      • Capitalized driver status outputs
      • Updated strings

      2.6.0.1
      • Fix profile loading
      • Fix assets bug
      2.6.0.0
      • Initial Release
      101
      2.7.1.0 released

      Yay it's finally time to release an update

      And with this release come a few important release notes:
      Support for Magisk prior to v19 is dropped.
      If you did not use magisk, you need to reflash your /system partition and reinstall the driver
      An audio attach setting is added too to improve compatibility and it needs some explanation:
      For every time you play a song, the audio player should send information about what session the audio is played on, so equalizer apps can attach to that session.
      Session 0 is the default but deprecated session. Most of the time V4A processes just fine at session 0, but if it doesn't you can enable this switch and Viper will attach to other sessions. Note that if you don't have any session open, the driver status will say abnormal, which makes sense.
      There is the need for a switch, because in a lot of cases audio players do NOT send the information when a session is closed. So they keep the driver occupied and this mutes all other audio streams, including session 0 which is the fallback session.
      To make this problem a bit less bad, I excluded session 0. But when you still run into this problem, the solution is not to kill viper but to kill the audio app that was playing music previously.
      Bad design, I know. But it's not my fault. You should contact the developer of the music app to fix their crappy code and send a broadcast when audio playback stops/pauses.
      This switch makes ACP obsolete.

      Other things that have improved:
      I've seen multiple issues with android pie where the viper library wasn't detected any longer because a dependency is removed since the update. A workaround is shipped in the new release.
      The compatibility mode switch has been added back. This seems to be mandatory for car mode and some android q builds.
      An issue when loading presets has been resolved

      Download can be found on labs as always: Link
      89
      Answers to some related questions

      Help, the driver status says no
      • In case of Enabled: no; Please flip the Master limiter switch and go sit in a corner for a while
      • In case of Processing: no; If you use an application that uses audio sessions, enable session attaching in the settings. If that does not work, the audio is routed over session 0. You might want to try Audio Compatibility Patch from the Magisk repository in this case.

      What happened to the profiles?
      • They're now called presets. They are reworked to use independently per device, a feature that was very welcome. Because of many technical changes and improvements on how the preset is stored and loaded, they are not compatible with older versions than 2.7. You will have to recreate them by hand unfortunately. You can access the menu by pressing the selected device in case you missed the huge showcase when you first launched the app after installing the driver

      Why does your Magisk module not work?
      • Probably because you installed some other mod that also has an audio_effects file in it. Whatever module gets loaded last will become active
        The easiest way to bypass this is to let the app build a module after you installed all your favorite audio mods, and delete all files containing audio_effects in the other modules
        AudModLib will not come in handy this time, because the app doesn't flash a zip that AML can intercept

      Where can I find the source code?
      • You can't. And there is an obvious reason for that: This app is more sensitive to kangers who start selling this app, likely after adding their bullsh*t to it, rather than to people who actually want to help improve the app. Something like that already happened in the past to other audio software here on xda. Not really something we want to see happen again

      Where did the Selinux switch go?
      • What..? Are you really that careless security wise?
        The app handles this in a much more sophisticated way now. It injects only the absolute necessary rules to allow V4A to process, fully automatically

      Help, why do I still experience service drops?
      • Probably because doze is kicking in because Android doesn't like long running services. The service has been implemented the way the docs suggest. You can try excluding it from doze. Alternatively you can check out dontkillmyapp.com for tips

      Do you have a zip file for me?
      • No. There is no point in providing a zip file anymore. The driver installation is written from scratch and actually works now

      How do I uninstall the driver?
      • Use Magisk Manager to delete the module. If you use another root solution, you can dirty flash your rom or just leave it there