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

Search This thread

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,052
4,400
Sydney
Not sure that I understand. Your zip file switches whole SElinux to permissive which is a security risk and some apps will detect it and refuse to launch. "Mine" fix (the idea is included in Viper Magisk module, but it doesn't work with recent Magisk versions) patches only necessary SElinux permissions.

Legacy mode is required for some apps (e.g. Youtube or Netflix) or system wide audio processing. New "non-legacy" mode attaches to audio sessions which are usually provided only by music player apps. Legacy mode switch is just above the compatibility mode, at least on my phone. :)
Lets start by saying its NOT "my" zip, its simply a zip I found on here, somewhere, which works.

The SELinux is only for the first 3 minutes of boot (and could be cut down). On my Pixel 4a, this is not a big risk, as the phone takes a while to get to a usable state. Even the wallpaper does not load until after you first log in. And that time could be cut down or possibly removed. Thats what I was explaining in my post.

You talk about "legacy mode" But I have only seen "compatibility mode" in the viper menu. Where is this "Legacy Mode" setting?
Screenshot_20210411-225538.png


I just checked, and Viper IS applied when I play YouTube videos, with compatibility mode turned off. I am using Vanced for YouTube.

Having a post-fs-data script should ONLY be used if placing it in service.d does not work.

The zip applies the same SELinux allows as your post does, but its in service.d, not post-fs-data

By 'recent magisk versions", which are you talking about? I am running 22.0 on a Pixel 4a running March A11 firmware, but have seen a very recent magisk update of 22.1 is available, which I was planning to update in the coming week, along with my ROM to Aprils release
 

_mysiak_

Senior Member
Apr 1, 2009
2,388
1,381
Xiaomi Mi 10T Lite
Lets start by saying its NOT "my" zip, its simply a zip I found on here, somewhere, which works.

The SELinux is only for the first 3 minutes of boot (and could be cut down). On my Pixel 4a, this is not a big risk, as the phone takes a while to get to a usable state. Even the wallpaper does not load until after you first log in. And that time could be cut down or possibly removed. Thats what I was explaining in my post.

You talk about "legacy mode" But I have only seen "compatibility mode" in the viper menu. Where is this "Legacy Mode" setting?
View attachment 5276177

I just checked, and Viper IS applied when I play YouTube videos, with compatibility mode turned off. I am using Vanced for YouTube.

Having a post-fs-data script should ONLY be used if placing it in service.d does not work.

The zip applies the same SELinux allows as your post does, but its in service.d, not post-fs-data

By 'recent magisk versions", which are you talking about? I am running 22.0 on a Pixel 4a running March A11 firmware, but have seen a very recent magisk update of 22.1 is available, which I was planning to update in the coming week, along with my ROM to Aprils release
Sorry, I checked wrong script. You are right that it turns SELinux back to enforcing so shouldn't be a big security risk. But in each case "mine" script is "allow only absolutely necessary selinux", "your" is "allow everything".

Attach audio effects in your screenshot is basically Legacy mode. Why it's named differently on your and mine phone..no idea. I must keep legacy mode enabled for youtube vanced. Non legacy works only for Youtube music. But I have different phone and system - Mi 10T lite with MIUI 12.
 

Attachments

  • Screenshot_2021-04-11-15-29-11-142_com.pittvandewitt.viperfx.jpg
    Screenshot_2021-04-11-15-29-11-142_com.pittvandewitt.viperfx.jpg
    115.8 KB · Views: 140

Bradford1040

Senior Member
  • Mar 5, 2016
    131
    15
    49
    West Palm Beach, FL
    Sorry, I checked wrong script. You are right that it turns SELinux back to enforcing so shouldn't be a big security risk. But in each case "mine" script is "allow only absolutely necessary selinux", "your" is "allow everything".

    Attach audio effects in your screenshot is basically Legacy mode. Why it's named differently on your and mine phone..no idea. I must keep legacy mode enabled for youtube vanced. Non legacy works only for Youtube music. But I have different phone and system - Mi 10T lite with MIUI 12.
    Been watching the convo, my viper is just like yours, not sure why the other one is named differently either, I was wondering if he installed viper fx, legacy, xhfi, myself.
     

    Lord Sithek

    Senior Member
    Lets start by saying its NOT "my" zip, its simply a zip I found on here, somewhere, which works.

    The SELinux is only for the first 3 minutes of boot (and could be cut down). On my Pixel 4a, this is not a big risk, as the phone takes a while to get to a usable state. Even the wallpaper does not load until after you first log in. And that time could be cut down or possibly removed. Thats what I was explaining in my post.

    You talk about "legacy mode" But I have only seen "compatibility mode" in the viper menu. Where is this "Legacy Mode" setting?
    View attachment 5276177

    I just checked, and Viper IS applied when I play YouTube videos, with compatibility mode turned off. I am using Vanced for YouTube.

    Having a post-fs-data script should ONLY be used if placing it in service.d does not work.

    The zip applies the same SELinux allows as your post does, but its in service.d, not post-fs-data

    By 'recent magisk versions", which are you talking about? I am running 22.0 on a Pixel 4a running March A11 firmware, but have seen a very recent magisk update of 22.1 is available, which I was planning to update in the coming week, along with my ROM to Aprils release
    Looks to me like you have previous Viper version installed, like 2.7.1.6. On latest it's "Legacy mode" in my case as well
     

    DiamondJohn

    Recognized Contributor
    Aug 31, 2013
    5,052
    4,400
    Sydney
    Sorry, I checked wrong script. You are right that it turns SELinux back to enforcing so shouldn't be a big security risk. But in each case "mine" script is "allow only absolutely necessary selinux", "your" is "allow everything".

    Attach audio effects in your screenshot is basically Legacy mode. Why it's named differently on your and mine phone..no idea. I must keep legacy mode enabled for youtube vanced. Non legacy works only for Youtube music. But I have different phone and system - Mi 10T lite with MIUI 12.
    Again, selinux is switched to enforcing. Therefore, only the absolutely minimum changes to SELinux are running. It is NOT "absolutely everything".

    Been watching the convo, my viper is just like yours, not sure why the other one is named differently either, I was wondering if he installed viper fx, legacy, xhfi, myself.
    The following are the details from running AAPT on my device, against Viper:
    View attachment 5276647 (something is buggy with XDA)
    So it appears to be "FX". Hmmm... whats the difference with non-FX Viper? apart from legacy mode. I guess I should also read the change log to find out what is new/improved in the next version. But I have no issues, it always boots and processes, and never randomly turns itself off. So, I'm sitting on "don't fix it if it ain't broke". ;)

    Looks to me like you have previous Viper version installed, like 2.7.1.6. On latest it's "Legacy mode" in my case as well
    Well, in the screenshot above (not my install), the other version has both legacy and compatibility mode settings. But it appears I do not need legacy mode (or even compatibility mode), as my YouTube IS being processed by Viper; although I personally only really care about my music app.
     

    Attachments

    • Capture.PNG
      Capture.PNG
      6 KB · Views: 137
    Last edited:
    • Like
    Reactions: Lord Sithek

    4josh2u

    Senior Member
    Apr 7, 2016
    61
    11
    lancaster
    Is it possible for the developer to add an option where you can force the driver output. Like in the legacy version I could plug my phone into Android auto and then make viper process for my "headset" instead of the phone speakers. but in reality it was actually processing for my Android auto. So
     

    Elmarigo

    Senior Member
    Jun 13, 2014
    171
    61
    Hello! I just installed the V4A module through latest Magisk.
    I'm confused that my options are so minimalist:

    v4a.jpeg
    There isn't even Viper-DDC. Earlier there was an option for enabling the expert mode.. but I don't see any further options. What is wrong there?
    Thank you :)

    Viper-DDC is empty.
    Where to download, and where to put, and what's folder name?
    Hi Lady, It said this at installation:

    vs.jpeg
     
    Last edited:

    Lord Sithek

    Senior Member
    Hello! I just installed the V4A module through latest Magisk.
    I'm confused that my options are so minimalist:

    View attachment 5280559
    There isn't even Viper-DDC. Earlier there was an option for enabling the expert mode.. but I don't see any further options. What is wrong there?
    Thank you :)


    Hi Lady, It said this at installation:

    View attachment 5280585
    in the latest update additional options will appear as soon as you change the audio output. Means when you connect your headphonse eg
     

    Elmarigo

    Senior Member
    Jun 13, 2014
    171
    61
    Ah, OK, thank you! :)
    Will try it next.
    Edit: It's working with headphones (only in legacy mode, and stil got to test Bluetooth later.)
    So most effects don't work with the internal speaker, OK.
     
    Last edited:
    • Like
    Reactions: Lord Sithek

    marceloBoZo

    Senior Member
    Mar 17, 2015
    168
    37
    30
    Birigui/SP
    Redmi Note 9 Pro
    I thought that "abnormal status" on my phone is due to MIUI (just purchased a new phone), but reading previous posts it seems to be a common problem recently. SElinux permissive is working, but I do not like this approach. I fixed it this way (after installing Viper as Magisk module and installing drivers):

    1. Locate and edit file
    Code:
    /data/adb/modules/ViPER4AndroidFX/post-fs-data.sh
    2. Add this text to the end of the file
    Code:
    magiskpolicy --live 'allow audioserver audioserver_tmpfs file { read write execute }'
    magiskpolicy --live 'allow audioserver system_file file { execmod }'
    magiskpolicy --live 'allow mediaserver mediaserver_tmpfs file { read write execute }'
    magiskpolicy --live 'allow mediaserver system_file file { execmod }'
    magiskpolicy --live 'allow audioserver unlabeled file { read write execute open getattr }'
    magiskpolicy --live 'allow hal_audio_default hal_audio_default process { execmem }'
    magiskpolicy --live 'allow hal_audio_default hal_audio_default_tmpfs file { execute }'
    magiskpolicy --live 'allow hal_audio_default audio_data_file dir { search }'
    magiskpolicy --live 'allow app app_data_file file { execute_no_trans }'
    magiskpolicy --live 'allow mtk_hal_audio mtk_hal_audio_tmpfs file { execute }'
    3. save, reboot phone
    4. go to viper4android app and toggle legacy mode off and on, it should work now with legacy mode enabled

    Alternative way is to run commands from step #2 from Tasker on each boot.

    Tested on MIUI 12, Magisk 21.1 and Viper 2.7.2.1
    This must be fixed on first page, thanks.

    Using on Redmi Note 9s (curtana) miui.eu 12.0.3.0 Android 10
     

    okanorman

    New member
    Apr 16, 2021
    2
    1
    I thought that "abnormal status" on my phone is due to MIUI (just purchased a new phone), but reading previous posts it seems to be a common problem recently. SElinux permissive is working, but I do not like this approach. I fixed it this way (after installing Viper as Magisk module and installing drivers):

    1. Locate and edit file
    Code:
    /data/adb/modules/ViPER4AndroidFX/post-fs-data.sh
    2. Add this text to the end of the file
    Code:
    magiskpolicy --live 'allow audioserver audioserver_tmpfs file { read write execute }'
    magiskpolicy --live 'allow audioserver system_file file { execmod }'
    magiskpolicy --live 'allow mediaserver mediaserver_tmpfs file { read write execute }'
    magiskpolicy --live 'allow mediaserver system_file file { execmod }'
    magiskpolicy --live 'allow audioserver unlabeled file { read write execute open getattr }'
    magiskpolicy --live 'allow hal_audio_default hal_audio_default process { execmem }'
    magiskpolicy --live 'allow hal_audio_default hal_audio_default_tmpfs file { execute }'
    magiskpolicy --live 'allow hal_audio_default audio_data_file dir { search }'
    magiskpolicy --live 'allow app app_data_file file { execute_no_trans }'
    magiskpolicy --live 'allow mtk_hal_audio mtk_hal_audio_tmpfs file { execute }'
    3. save, reboot phone
    4. go to viper4android app and toggle legacy mode off and on, it should work now with legacy mode enabled

    Alternative way is to run commands from step #2 from Tasker on each boot.

    Tested on MIUI 12, Magisk 21.1 and Viper 2.7.2.1
    Finally running smoothly with MIUI 12,Magisk 22.1 and Viper 2.7.2.1.Thank u.
     
    • Like
    Reactions: 64ashg

    BHUSHAN7988

    Senior Member
    Oct 1, 2013
    205
    49
    25
    dharwad
    OnePlus 6T
    This must be fixed on first page, thanks.

    Using on Redmi Note 9s (curtana) miui.eu 12.0.3.0 Android 10
    So I have
    OnePlus 6T
    Stock OOS 10.3.9
    Magisk 22.1
    LSPosed 1.3.5

    I use ViPER4Android FX Legacy v4.4
    I have the 2.3.4.0 app version with super duper drivers.
    I used to use "selinux.a" file with this text "#!/system/bin/sh
    setenforce 0"
    in the "data/adb/service.d" folder to make my viper work, but it makes the whole device permissive.
    Any other way for the old drivers to work properly?

    I tried you codes in the file "service.sh" in "data/adb/modules/ViPERAndroidFX-Legacy" but they don't work for me.

    Could you please help out.
     

    gfrank227

    Member
    Feb 12, 2018
    17
    1
    Moto G8 Plus
    Hi all, I need some assistance installing V4A. I'm using a Moto G8 Plus running Android 10. It's rooted. I have been able to get the app into a normal state using legacy mode. However, no matter what I do the "Processing" stays at No and the mods don't seem to make any difference. I have tried changing the SELinux to permissive, no effect. Any help would be greatly appreciated. Thanks!
     

    gfrank227

    Member
    Feb 12, 2018
    17
    1
    Moto G8 Plus
    OK please disregard. I finally managed to get it to work. I am not sure what did it, but it may have had something to do with the Audio Mod library.

    I can only describe the sound coming out of my phone now as glorious. V4A is that good.
     

    JairPaalman

    Senior Member
    May 18, 2014
    179
    25
    Nijverdal
    OK please disregard. I finally managed to get it to work. I am not sure what did it, but it may have had something to do with the Audio Mod library.

    I can only describe the sound coming out of my phone now as glorious. V4A is that good.
    The only way I can get it working is by enabling legacy mode on V4A 2.7+ and enabling the Audio Modification Library Magisk module. Strangely, just using AML with legacy V4A doesn't work (liked the design better). Dunno what Team DeWitt fixed in the driver installation, but Samsung doesn't seem to like it. Mine works now, but as a CS student, I really want to know what's going wrong. My first guess was the ever problem causing SoundAlive, which caused all kinds of issues with V4A before on my other Samsung devices, but force disabling SoundAlive doesn't fix the driver acting up this time. Driver state is abnormal and everything else says "No" without legacy mode & AML, but the correct driver number does show up.
     
    Last edited:

    gfrank227

    Member
    Feb 12, 2018
    17
    1
    Moto G8 Plus
    The only way I can get it working is by enabling legacy mode on V4A 2.7+ and enabling the Audio Modification Library Magisk module. Strangely, just using AML with legacy V4A doesn't work (liked the design better). Dunno what Team DeWitt fixed in the driver installation, but Samsung doesn't seem to like it. Mine works now, but as a CS student, I really want to know what's going wrong. My first guess was the ever problem causing SoundAlive, which caused all kinds of issues with V4A before on my other Samsung devices, but force disabling SoundAlive doesn't fix the driver acting up this time. Driver state is abnormal and everything else says "No" without legacy mode & AML, but the correct driver number does show up.
    Ok so I installed AML, let V4A install drivers. Then disable AML and reboot. V4A will reinstall drivers again. Then I got it to work with SELinux set to permissive and legacy mode turned on.

    Is there any way to get it to work with SELinus set to enforcing? I see a couple of threads including a zip file but I'm skeptical because it's a couple years old.
     

    vibrantliker

    Senior Member
  • this worked for me:

    Install in order

    Viper4androidFX via Magisk
    Reboot
    Audio Modification Library via magisk
    Reboot
    Push the file (extract from the zip) to data/adb/modules/ViPER4Android/ that i have uploaded and set permission 644
    (it should now be data/adb/modules/ViPER4Android/post-fs-data.sh)
    Reboot
    Open viper, set to legacy mode, then check if status is now normal

    Amazingly this has been working on all my phones with A11
     

    Attachments

    • post-fs-data.zip
      566 bytes · Views: 46

    JairPaalman

    Senior Member
    May 18, 2014
    179
    25
    Nijverdal
    Ok so I installed AML, let V4A install drivers. Then disable AML and reboot. V4A will reinstall drivers again. Then I got it to work with SELinux set to permissive and legacy mode turned on.

    Is there any way to get it to work with SELinus set to enforcing? I see a couple of threads including a zip file but I'm skeptical because it's a couple years old.
    I just figured out it was not really working. Some boots V4A works in legacy mode, some boots it doesn't, and the driver is abnormal.
     

    JairPaalman

    Senior Member
    May 18, 2014
    179
    25
    Nijverdal
    Disabled AML and reinstalled V4A driver, then rebooted. V4A is working normally. Wonder if it'll survive a reboot. Yes it did...

    I have absolutely no idea why it's being so consistent. Apparently, I needed AML for it to work the first time, then needed to disable AML, as it wouldn't work anymore. At this point, I'm not even sure if it'll survive the next couple reboots. I read those specific instructions, installing then disabling AML, somewhere, but I figured disabling AML was more in order to clean up. I guess not.

    The last 5 hours of shenanigans have once again reminded me of an important lesson: if it's not broken, don't touch it.
     

    Top Liked Posts

    • There are no posts matching your filters.
    • 1
      I have a Galaxy S20 FE 5G running OneUI 3.1 (Android 11) and was wondering do I just flash this zip via Magisk Manager and all will be done or will I need Audio Modification Library as well?

      Also, how do I switch boot to SELinux Enforcing in the zip?
      All I did was disabled (I froze & hid it, but freeze is enough to get it to work) any existing equalizer in my ROM, flashed the ZIp from Magisk, rebooted, then turned on and configured Viper, and it worked. I had no other libraries or legacy mode or such to contend with.

      As for switching to SELinux Enforcing, there is a script named "permissive.sh" in the Magisk service.d directory. I changed it to the attached. i.e. its much easier to do after flashing the zip. Its currently set to do it 3 minutes after boot, but my plan was always to cut that down but I never got around to it.
      1
      Thanks, do I just flash the permissive zip in Magisk Manager or unzip it and place it in Magisk service.d directory?
      Just download the SELinux Switch module from this post of mine, flash it in Magisk and reboot. It should do the trick.
      1
      To be clear, those manual mods, are what the zip is doing for you. i.e. it creates the permissions script.

      What that does imply is that the permissive script is NOT required.

      Just looked again, I would check if the script could be moved to service.d instead of post-fs-data. Also, using the above zip does not require legacy mode. Just checked my install, I did not see any "legacy" mode switch. Do you mean "compatibility"mode?
      Not sure that I understand. Your zip file switches whole SElinux to permissive which is a security risk and some apps will detect it and refuse to launch. "Mine" fix (the idea is included in Viper Magisk module, but it doesn't work with recent Magisk versions) patches only necessary SElinux permissions.

      Legacy mode is required for some apps (e.g. Youtube or Netflix) or system wide audio processing. New "non-legacy" mode attaches to audio sessions which are usually provided only by music player apps. Legacy mode switch is just above the compatibility mode, at least on my phone. :)
      1
      Sorry, I checked wrong script. You are right that it turns SELinux back to enforcing so shouldn't be a big security risk. But in each case "mine" script is "allow only absolutely necessary selinux", "your" is "allow everything".

      Attach audio effects in your screenshot is basically Legacy mode. Why it's named differently on your and mine phone..no idea. I must keep legacy mode enabled for youtube vanced. Non legacy works only for Youtube music. But I have different phone and system - Mi 10T lite with MIUI 12.
      Again, selinux is switched to enforcing. Therefore, only the absolutely minimum changes to SELinux are running. It is NOT "absolutely everything".

      Been watching the convo, my viper is just like yours, not sure why the other one is named differently either, I was wondering if he installed viper fx, legacy, xhfi, myself.
      The following are the details from running AAPT on my device, against Viper:
      View attachment 5276647 (something is buggy with XDA)
      So it appears to be "FX". Hmmm... whats the difference with non-FX Viper? apart from legacy mode. I guess I should also read the change log to find out what is new/improved in the next version. But I have no issues, it always boots and processes, and never randomly turns itself off. So, I'm sitting on "don't fix it if it ain't broke". ;)

      Looks to me like you have previous Viper version installed, like 2.7.1.6. On latest it's "Legacy mode" in my case as well
      Well, in the screenshot above (not my install), the other version has both legacy and compatibility mode settings. But it appears I do not need legacy mode (or even compatibility mode), as my YouTube IS being processed by Viper; although I personally only really care about my music app.
      1
      Ah, OK, thank you! :)
      Will try it next.
      Edit: It's working with headphones (only in legacy mode, and stil got to test Bluetooth later.)
      So most effects don't work with the internal speaker, OK.
    • 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
    Our Apps
    Get our official app!
    The best way to access XDA on your phone
    Nav Gestures
    Add swipe gestures to any Android
    One Handed Mode
    Eases uses one hand with your phone