Here’s how you can install ViPER4Android on your Android phone running on Marshmallow or above. Change the SELinux policy from Enforcing to Permissive and enable ViPER4Android on your device. Also, fix the common errors while installing V4A like abnormal driver status, no processing, etc.
One of the biggest security changes Android implemented when it got updated from Lollipop to Marshmallow is its SELinux policy. Security-Enhanced Linux (SELinux) is nothing but an access control mechanism which facilitates security policies. If you were using ViPER4Android on your Lollipop device, you might have noticed that the audio mod didn’t seem to work perfectly as it did before after the Marshmallow update.
I have been using CyanogenMod ROMs ever since I got my first Android device. Redmi 3S Prime, being my first Xiaomi mobile, uses MIUI which is known for its memory consumption and bloated apps. CM ROMs had the capability of changing SELinux status from Enforcing to Permissive or vice versa. But I got trapped when I tried to change the same on my MIUI.
I needed ViPER4Android to work on my MIUI which is based on Marshmallow 6. But as it needs Permissive SELinux policy to work on Marshmallow and above, I started to search for how to change the SELinux option from Enforcing to Permissive. After tons of searching, I finally found a fix that can be used to run ViPER4Android on any devices running on Marshmallow or above.
If ViPER4Android keeps asking to install the driver or you get the driver not installed issue, you can easily fix those errors using this method. In case you get a BusyBox broken message or an Instal Failed BusyBox alert, you need to re-install the BusyBox on your device first. This tutorial is for those who installed ViPER4Android on Marshmallow and doesn’t work because of the SELinux Enforcing issue. If you’re getting no processing driver status, you can also try this method.
Change SELinux to Permissive and make ViPER4Android Work on any Marshmallow Device
- ViPER4Android itself needs root access. So there’s no point in saying that your device must have root privileges.
- Get ViPER4Android’s latest APK from here and install it on your Marshmallow device.
- Now open it and let it install the driver for your device.
- Once you get the install complete message, simply reboot the phone.
- After bootup, Install the Terminal Emulator App from here and install it on your phone.
- Open it and perform the following commands one after one
Close the terminal and check the driver status on the ViPER4Android app, it should display like this.
The Enable & Processing status will automatically change to Yes once you activate the master power option and start playing music on your headphones/speaker. If this method doesn’t work for you, you can flash the ViPER4Android Marshmallow ZIP file. It changes the SELinux from Enforcing to Permissive.
- You need to execute these commands after every hard reboot of your phone. Otherwise, it’d automatically set back the Enforcing policy. Not a big deal, though. Chill.
- I tried with the SELinux mode changer to set it to Permissive and it returned the “Unable to Gain Root Access” error.
- If you get ViPER4Android driver status as abnormal, try disabling the default audio enhancer/equalizer such as disabling AudioFX.
This method of changing the SELinux policy from Enforcing to Permissive to activate ViPER4Android should work on all Marshmallow devices. In case you’re having trouble with CM13 or CM14, let me know via comments.