• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

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

Search This thread

Team_DeWitt

Senior Member
Apr 7, 2018
71
1,231
Nijmegen
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
 

Attachments

  • ViPER4Android-2.7_0.jpg
    ViPER4Android-2.7_0.jpg
    191.8 KB · Views: 124,008
  • ViPER4Android-2.7_1.jpg
    ViPER4Android-2.7_1.jpg
    192.4 KB · Views: 123,111
  • ViPER4Android-2.7_2.jpg
    ViPER4Android-2.7_2.jpg
    191.8 KB · Views: 123,289
Last edited:

Team_DeWitt

Senior Member
Apr 7, 2018
71
1,231
Nijmegen
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]
 
Last edited:

Team_DeWitt

Senior Member
Apr 7, 2018
71
1,231
Nijmegen
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
 
Last edited:

Team_DeWitt

Senior Member
Apr 7, 2018
71
1,231
Nijmegen
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
 
Last edited:

Ragnar Eldur

Senior Member
Jul 22, 2016
620
235
OnePlus 7 Pro
Hey could we possibly get a black version instead of grey, it would look fantastic on AMOLED displays. There ones was a Substratum theme like that for the original materialised version, maybe something similar for this one?
 
  • Like
Reactions: egcv and zigbye82

erak606

Member
Aug 29, 2017
49
7
Hmm, it seems to have a funny audio glitch whenever I launch the app. My music kinda gets quieter for a second.

Will there be a way to revert to the old materialised look? I feel like either an option to go back or have a hybrid would be nice.

I also miss the dials since the huge menus aren't fun to scroll through. Especially since you can't fine tune some of them. Maybe a slider would work too?

Also another thing is to add back the search option in the DDC menu.

Love theme though.
 
Last edited:

ifellouttabed

Member
Dec 27, 2012
23
17
Been testing it all day. Gotta say nice job guys! Super easy to install, nice look and feel, improved work flow having everything on one page. I also like that there is no static when changing the settings.

Nice app, 5 stars! If I could add something it would be the ability to collapse the sections so that it isn't cluttered with the settings I don't use. Also an easy way to download convolvers.

Favorite feature: the way you built the EQ. I can just drag my finger along it and make the arc I want. Beautiful!

Thanks guys!
 
  • Like
Reactions: RSDamasceno

Bartws95

Member
Dec 2, 2015
43
9
Unfortunately doesn't work on my Pixel 2 XL. Both drivers say they installed fine in the app and to reboot, then gets stuck on the Google splash screen, from which I have to manually reboot to get the phone to come on again, and after this neither driver sticks (0.0.0.0, driver status abnormal etc).

It's strange as the last V4A to work for me was Ahrion & zackptg5's version 2.8 (which weirdly still works fine); all of their subsequent releases didn't either.

Let me know if providing any logs will help!
 

Team_DeWitt

Senior Member
Apr 7, 2018
71
1,231
Nijmegen
Hmm, it seems to have a funny audio glitch whenever I launch the app. My music kinda gets quieter for a second.

Will there be a way to revert to the old materialised look? I feel like either an option to go back or have a hybrid would be nice.

I also miss the dials since the huge menus aren't fun to scroll through. Especially since you can't fine tune some of them. Maybe a slider would work too?

Also another thing is to add back the search option in the DDC menu.

Love theme though.

Hey erak606, currently there is no way to revert to our old themed version, however we will put it online again on XDA Labs soon. About fine-tuning, we've thought about but sticked with the lists, however we might change that in the future. We are not sure about it yet.
Adding back the search option is an good idea, we will pay some attention to that in our next release.

Unfortunately doesn't work on my Pixel 2 XL. Both drivers say they installed fine in the app and to reboot, then gets stuck on the Google splash screen, from which I have to manually reboot to get the phone to come on again, and after this neither driver sticks (0.0.0.0, driver status abnormal etc).

It's strange as the last V4A to work for me was Ahrion & zackptg5's version 2.8 (which weirdly still works fine); all of their subsequent releases didn't either.

Let me know if providing any logs will help!

Hey Bartws95, bummer to hear your driver installation is not working, logs are definitely helpfull, make sure to grab the logs after the installation and before rebooting. Since you stated it did work with Ahrion & zackptg5's version, I will also contact them. Thanks for the report!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 7
    Hello!

    I've got Viper4Android version 2.7.2.1 working on Android 12 without the need for any other module installed and with SELinux enforcing.

    I've found another thread where other users where talking about Viper on Android 12 and saw THIS post by @TheExoduser.

    That solution, in fact, works, so I came up with a simple Magisk module that just changes the script.


    All that this "fix module", attached bellow, does is to update the post-fs-data.sh script, included on official installer by @Team_DeWitt and deletes itself after replacing the script.

    This is done after 20 seconds upon the reboot, we have to do on Magisk, after installing the fix.

    As soon as the script is changed and the fix gets deleted by itself, you may need to enable Legacy mode, on Viper4Android app, choose your desired options and reboot the device again.

    If you don't reboot again you won't notice any audio change.

    Sometimes a second reboot is needed (faced that during my tests).

    Hope this helps.


    Cheers!
    3
    Just what I was looking for thanks! What would be the steps to get this working on a fresh Pixel 6 Pro?

    Quite simple.

    1. Install Viper4Android version 2.7.2.1 module zip
    2. Don't reboot
    3. Open Viper app
    4. Select yes to install the driver now
    5. The phone will reboot
    6. After reboot open Viper and enable Master limiter and, on settings, enable Legacy mode
    7. Close Viper
    8. Install my Fix module zip
    9. Reboot
    10. Wait for about a minute
    11. Reboot again

    That should be enough. If it wasn't...reboot again.

    Cheers!
    1
    v2.7.2.1 was working for a while on the Android 12 Beta's and for a bit on the initial Android 12 release, but now I can NOT get the driver to show any other status but abnormal with no processing, not enabled! Toggling the legacy and compatibility switches don't work either.
    ....
    Has anyone successfully installed and used V4A on the latest Android 12 release? If so do you have any apk's (v2721 or 2716), or methods as to how you have it working?

    Not complaining, because it's bad etiquette, but I really wish we could get an updated version of V4A from the devs.
    ....
    Without knowing why it is failing, an update of the APK may not be the solution.

    PS: I personally am not touching A12 for a long time.
  • 528
    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
    133
    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