• 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

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,619
5,394
Sydney
All thanks on that go to @DiamondJohn

I just repackage others work, its what im famous for :)
the real work was done by "Ichigo Kywrosaki"
untitled-png.5291251

 
  • Like
Reactions: 73sydney

ssojyeti2

Senior Member
Jan 27, 2011
3,374
2,945
Miami
For those having below issues with V4Android 2.7.2.1 on
Android 11
-Have to Install a Custom kernel to make V4A work
-Driver not installed/enabled or abnormal processing
-WiFi disabled
-Sound distortions in calls/notifications
-Not processing streaming services like
YouTube, Amazon Music, Spotify

::Steps::

1.Disable/Uninstall com.android.MusicFX
2.Install/Upgrade Magisk to Canary
3.Install Magisk Modules as below:
-Ainur Narsil (recommended but not required for V4A)
-AML
-ACP (volume key sequence: -+-+—)
3.Boot to TWRP Recovery
-Flash v4afx-rootless_10.21.2020.zip
(https://zackptg5.com/downloads/v4afx-rootless_10.21.2020.zip)
4.Reboot to System
5.In Magisk Manager install module
ViPER4Android_FX-v2.7.2.1(2721)
(If installation fails with Unable to download apk error,
Download and install from Local storage below file
https://zackptg5.com/downloads/v4afx_v2.7.2.1.zip)
6.Restart Phone
7.Follow steps as mentioned by
@_mysiak_
https://forum.xda-developers.com/t/...-0-viper4android-fx-2-7.3774651/post-84121895
i.e.,
-Use a Root Explorer file explorer like MiXPlorer
-Go to /data/adb/modules/ViPER4AndroidFX/
-If post-fs-data.sh file exists add below lines at end of the file
otherwise create file
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 }’
8.Change File permissions in Terminal/Termux/MixPlorer to 755
i.e.,
su -c chmod 755 post-fs-data.sh
9.Restart Phone
10.Open Viper4Android and Enable Master Limiter and Legacy Mode in Settings
11.Check V4A Driver/WiFi/Mobile Status, Sound Distortions for Calls/Notifications etc.,
12.Play Music and Enjoy
Thank you very much man!
 

SouthOkanagan

Member
Sep 4, 2014
8
1
Is this particular version for all root solutions? Like to be used by everybody that's rooted?

Cuz I tried about half dozen Viper FX installs not one of them would work.
I'll give this one a shot but if anybody knows that I'm doing something wrong speak up, and I'll follow your direction.

Thank you, @SouthOkanagan
 

gfrank227

Senior Member
Feb 12, 2018
90
12
Moto G8 Plus
Is this particular version for all root solutions? Like to be used by everybody that's rooted?

Cuz I tried about half dozen Viper FX installs not one of them would work.
I'll give this one a shot but if anybody knows that I'm doing something wrong speak up, and I'll follow your direction.

Thank you, @SouthOkanagan
V4A FX should automatically detect the correct driver to install.

Several suggestions - have you used Audio Modifications Library? First, install AML, restart and V4A, and install the V4A drivers. Then disable AML, restart, go into V4A again, and install drivers again.

Then, make sure that either Selinux is set to permissive, or that you make the changes to the setup file in the root that is discussed above.

See if this helps.
 
Ran a search in the thread, but was curious if anyone with a (Pixel 5) running the latest Android 12 beta, has had any success in flashing v4a. Thinking specifically of Ichigo Kywrosaki's v2716.
I've just upgraded and learned that while I can get reliable root through Magisk, v4a closes upon opening. Thanks for any input! :)
 
  • Like
Reactions: Forever Alone
Here's my logcat: Pixel 5 V4A 2716 Android 12 Beta 3 Log

Hopefully it shows what is going on. I'm suspecting the driver isn't properly installing or isn't loading correctly.

The version I mentioned before I've been using since Android 10. I imagine that Android 12 does things differently.

I should also mention that I've used both the original Ichigo permissive build, and the enforcing zip that was posted a page or two back. Same issue either way.

The app will load, stay open for a few seconds then crash before I can mess with settings. This is also on a newly wiped and fresh Android 12 Beta 3 flash. When flashing the OS I disabled verity and verification as per a post for my device, in order to successfully obtain root with Magisk Canary.

Also within Magisk, V4A is the only module installed, since running this particular zip over two other Android OS versions, I've had no need for AML, ACP, etc, because they weren't necessary to run Viper without issue.
 
Last edited:
  • Like
Reactions: Forever Alone

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,619
5,394
Sydney
Ran a search in the thread, but was curious if anyone with a (Pixel 5) running the latest Android 12 beta, has had any success in flashing v4a. Thinking specifically of Ichigo Kywrosaki's v2716.
I've just upgraded and learned that while I can get reliable root through Magisk, v4a closes upon opening. Thanks for any input! :)
I am assuming you are using the same zip I linked to above.
Here's my logcat: Pixel 5 V4A 2716 Android 12 Beta 3 Log

Hopefully it shows what is going on. I'm suspecting the driver isn't properly installing or isn't loading correctly.

The version I mentioned before I've been using since Android 10. I imagine that Android 12 does things differently.

I should also mention that I've used both the original Ichigo permissive build, and the enforcing zip that was posted a page or two back. Same issue either way.

The app will load, stay open for a few seconds then crash before I can mess with settings. This is also on a newly wiped and fresh Android 12 Beta 3 flash. When flashing the OS I disabled verity and verification as per a post for my device, in order to successfully obtain root with Magisk Canary.

Also within Magisk, V4A is the only module installed, since running this particular zip over two other Android OS versions, I've had no need for AML, ACP, etc, because they weren't necessary to run Viper without issue.
Your error is:
Code:
[07-18 01:01:38.208 27084:27084 E/AndroidRuntime]
FATAL EXCEPTION: main
Process: process.ViPER4Android, PID: 27084
android.app.ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{263590a u0 com.pittvandewitt.viperfx/.service.ViPER4AndroidService}
    at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:1915)
    at android.app.ActivityThread.access$2500(ActivityThread.java:250)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7829)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:982)

To be clear, I am NOT running A12, but A11 on a Pixel 4A, so all the below is a blind stab in the dark.

Its failing to start the viper service (from above log), before viper opens.

Try starting the service [com.pittvandewitt.viperfx/.service.ViPER4AndroidService] manually through a shell. Check if that works or gives you any different errors. (not sure if the below will work without modifying the APK manifest)
see: https://stackoverflow.com/questions/7415997/how-to-start-and-stop-android-service-from-a-adb-shell
am start-foreground-service com.pittvandewitt.viperfx/.service.ViPER4AndroidService;
 
@

DiamondJohn


So I tried that command and interestingly it kind of helps the app stay open without immediately closing. It's also the same effect I get when quickly going to the options settings inside V4A and toggling the "compat mode" and "attach audio effects" settings.

Either way the app is now running, but just like with v2.7.2.1 on A11 and 12, I can't get V4A to enable or process audio at all. Would this be driver related or come down to editing the manifest file for V4A? Also when installing the Ichigo version 2.7.1.6 I've used all this time up until now, it usually has a persistent notification on in the notification area, but on Android 12 it won't let it run a persistent notification at all.
 
Last edited:

Adevem

Senior Member
Aug 4, 2010
1,333
84
Took a video last night and the recorded audio is a bit glitchy and "weaves" in and out. It's not totally clear. Almost like there's a limiter or noise gate on the mic during recording.

I have it in legacy mode with permissive mode on - I'm on the OP5T

Only have Master Limiter and Gain Control on, could those be the culprit?

Any ideas will be insightful - Thanks!
 

gfrank227

Senior Member
Feb 12, 2018
90
12
Moto G8 Plus
I am assuming you are using the same zip I linked to above.

Your error is:
Code:
[07-18 01:01:38.208 27084:27084 E/AndroidRuntime]
FATAL EXCEPTION: main
Process: process.ViPER4Android, PID: 27084
android.app.ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{263590a u0 com.pittvandewitt.viperfx/.service.ViPER4AndroidService}
    at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:1915)
    at android.app.ActivityThread.access$2500(ActivityThread.java:250)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7829)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:982)

To be clear, I am NOT running A12, but A11 on a Pixel 4A, so all the below is a blind stab in the dark.

Its failing to start the viper service (from above log), before viper opens.

Try starting the service [com.pittvandewitt.viperfx/.service.ViPER4AndroidService] manually through a shell. Check if that works or gives you any different errors. (not sure if the below will work without modifying the APK manifest)
see: https://stackoverflow.com/questions/7415997/how-to-start-and-stop-android-service-from-a-adb-shell
am start-foreground-service com.pittvandewitt.viperfx/.service.ViPER4AndroidService;

In Android 10 and 11, many people, including myself, needed to install AML, reboot, then install v4a drivers, then disable AML, reboot, and reinstall drivers. Not sure about 12, but you should try this first, if you haven't already.
 
Excuse me.

Did V4A development stalled?

Are there an Open Source alternative?

If development stalled: Any hopes to Open Source it even by some kind of bounty?
Curious about this as well. I know its probably a no-no to ask about these kinds of things, but is there anyone actively still developing this audio mod?

A lot of us have come to rely on it, it's really the only reason I root my phone at all. If there was a system wide EQ app that actually sounded great then I'm sure that would eliminate need of this.

But I love V4A, just have no knowledge on app development, I'd love to maintain it if I did have this knowledge. :)
 

Lord Sithek

Senior Member
Curious about this as well. I know its probably a no-no to ask about these kinds of things, but is there anyone actively still developing this audio mod?

A lot of us have come to rely on it, it's really the only reason I root my phone at all. If there was a system wide EQ app that actually sounded great then I'm sure that would eliminate need of this.

But I love V4A, just have no knowledge on app development, I'd love to maintain it if I did have this knowledge. :)
The app itself is still in development, although not updated very frequently. But the driver has been always closed source and the original devs abandoned it long time ago

As an alternative you can try JamesDSP, although it's not that simple and straightforward to use as Viper
 
  • Like
Reactions: ProjectAlly

gfrank227

Senior Member
Feb 12, 2018
90
12
Moto G8 Plus
The app itself is still in development, although not updated very frequently. But the driver has been always closed source and the original devs abandoned it long time ago

As an alternative you can try JamesDSP, although it's not that simple and straightforward to use as Viper
James is good, but not as good.

I don't know anything about app development either. But I imagine if the project has been abandoned, someone must be able to extract the code somehow and work on it?
 

Lord Sithek

Senior Member
James is good, but not as good.

I don't know anything about app development either. But I imagine if the project has been abandoned, someone must be able to extract the code somehow and work on it?
I don't know nothing about extracting the code. The only thing I know is that the app was forked (hope this is the proper word?) by @Team_DeWitt and updated to work on newer Android versions
 

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,619
5,394
Sydney
In Android 10 and 11, many people, including myself, needed to install AML, reboot, then install v4a drivers, then disable AML, reboot, and reinstall drivers. Not sure about 12, but you should try this first, if you haven't already.
I thihk you quoted the wrong person. I HAVE a working viper running on A11 using a single Magisk Zip, with no jumping through hoops installing extra components or the drivers as a seperate step, and rebooting multiple times and doing things in any special order. I simply flash a single Magisk Zip,. reboot, and it works. The post you quoted was me trying to assist someone else getting it to work in A12; that was not my error.
 

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,619
5,394
Sydney
James is good, but not as good.

I don't know anything about app development either. But I imagine if the project has been abandoned, someone must be able to extract the code somehow and work on it?
You can decompile Java code to an extent, but what comes out is NOT pretty, and for a complex app such as this, it is not practical. Also, the magic would really be occurring in the driver, which I presume would not be written in java (ie not practicle to decompile).

And if it was as simplke as all that, someone would of already done it. Viper has been around for a long time.
 
Last edited:
  • Like
Reactions: Lord Sithek

Top Liked Posts

  • There are no posts matching your filters.
  • 527
    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