yashsingh1/xdaforums huggingface dataset:
[Android Themes] Mr_White_214:
First version of the substratum theme is done! You can download it here: https://labs.xda-developers.com/store/app/pittvandewitt.viperfx.theme
[Android Themes] ToxxMe:
Nice theme :good: Option for light background would be nice
[Android Themes] Mr_White_214:
Working on it but A LOT needs to be done under the hood. I have a file called beta.type1a_material_light.xml in the assets folder. I suppose if you remove the beta. From the name it will give you the option to have material light as well. I'm not sure if it will work though
[Android Themes] ToxxMe:
Will wait until light theme reached stable :good:
[Android Themes] Abhisht009:
I'm unable to install the driver??

Is there a flash able zip?
[Android Themes] robhug:
With substratum support , materials viper has reached perfection :) thanks a lot

Just something I always wanted on viper , but a bit further than theming, is just being able to rearrange the option on viper , as there is some I always use and some never , so just being able to move some on top and let others at the bottom of hide them

But I don't think it's the goal of your version of viper and even if , simply, it's possible to do it, but never know ^^ thanks a lot and have a nice day
[Android Themes] Mr_White_214:
It's a cool idea. I would actually want to add it now :silly:. But sadly I can't do something like that yet. Because we have no source code we also have no Java code. We managed to do this theme with only reverse engineering it and editing some smali files. But for something like that we need to use Java.

Have a nice day as well
[Android Themes] robhug:
Yes I was pretty sure it wouldn't be done and its something a bit hard , as this app is focused on theme and not really in new features.

But one day we never know :) But yes I can be a great thing , as I think many of us are using the same options all the time and some are lost in others options we never use , but I think this have to be done by the original viper app , as I agree with you this mod is focused on app UI :)
[Android Themes] RSDamasceno:
First of all thank you for the excellent work.

I wonder if you want to include widget option.
[Android Themes] Mr_White_214:
We can't do something like that without the source code. But when the code is released I might look into some features like that. What exactly would you want to have inside the widget?
[Android Themes] RSDamasceno:
An older version of the ARISE sound mod included a ViPER4Android version that included the widget option. Attached the apk and screenshots. Hope you can add the profile selection widget to your materialized version.
[Android Themes] Mr_White_214:
Oh thanks, I'm probably going to look into that. Would you like us to change anything to it or just add it?
[Android Themes] RSDamasceno:
I just wanted to say thank you!

;)
[Android Themes] dul32:
What i've to do before using this mod?
[Android Themes] uudruid74:
Smaller fonts and less space between entries! The original widget had massive fonts making it big and ugly.
[Android Themes] Mr_White_214:
Thanks for the feedback. I agree with you, the font is too large. I will make it smaller if I can implement it without using Java.
[Android Themes] uudruid74:
I didn't realize the source wasn't out yet. And they are slow about fixing bugs.

I was thinking the widget just sends an Intent, so it should be possible to decompile the widget to Java or smali (even if the Java won't compile) just to see the Intent and the parameters it sends, the write a new one. I kinda wanted to do one that is dashboard style with icon buttons or something.

It would also be nice to switch presets based on which Bluetooth device is connected since the app has a weird way of handling presets (all devices stored in a preset rather than different presets per device) and it treats all Bluetooth devices as a single output where I think every Bluetooth device should be its own. Obviously can't fix it without source, but a widget could work around it (obviously beyond the scope of this project).

The old bug of having to twiddle a parameter in the new preset to make it fully switch (above mentioned bug) makes the widget less than useful.
[Android Themes] oblyvision:
I like this version better than the original. I have low ram device, but this app just won't got terminated even on full memory usage.
[Android Themes] uudruid74:
Since there is no source, the code and memory usage should be the same. I run Viper in my car with a horribly low amount of RAM and don't experience the audio processing being dropped. Is it just the UI dying for you, or does the audio stop processing?
[Android Themes] oblyvision:
Really? The one I had before was the original 2.5.0.5 and it got killed everytime my memory usage reached around 78%. I can see the process on running services, it is running on its own. But this one, I can't even manually terminate it manually. It's like cloaking as core system apps.
[Android Themes] uudruid74:
I actually installed this over the original ARISE APK on my phone, so it is a system app. On my car, I think I just have plain original Viper APK ... getting Viper in the car was a long process since no one had rooted that unit before. It's only got 1GB and the Viper service itself has never been killed. Perhaps maybe you have some settings different between the two installations? I run with the service forced on in the car since otherwise a couple apps won't process without doing strange things and I don't have to worry about battery consumption.

But the Dev has mentioned that the Viper folks have not yet released source, so this is just the same binary that's been themed.
[Android Themes] oblyvision:
Tbh I've never installed Viper4ARISE before. I'm currently on MM, installed both the same method (I put the apk in system/priv-app). Can you see the process in running services/other task manager?

Oh, I remember I could have both version installed (normal installation and push), not overriding. Could this one has different signature or something? Tbh I'm not really familiar with apk modding, so this is quite funky for me.
[Android Themes] uudruid74:
Its all the same Viper (even ARISE, which I don't use in the car), this one has a different app name so it can be installed with the other at the same time. Its all the same app, same code. I'm guessing the difference is just in the other files in the APK, such as the XML files that describe the theme. That's why they can't theme the round dials.
[Android Themes] Mr_White_214:
You can indeed have both installed at the same time, we changed the package name to make this possible.
[Android Themes] joesee:
You did a great job with this!

I think the V4A guys wanted to make their own look and that's why they went with that textured style application. My only complaint with this new layout is how difficult it is to tweak the EQ while mobile. (i.e. Driving, riding in a subway, on a bike or cab.) The swiping left and right to get to each slider is very cumbersome. Because of this, I went back to 2.4.0.1. I guess I'm stuck in the stone age with V4A because I refuse to use this new EQ. Also, any of the settings that require you to 'turn' a virtual knob are very hard to tweak just right, back when all you used to do was select a specific setting.
[Android Themes] uudruid74:
I agree with you on the EQ, but its not an issue for me since I never use the EQ. I use everything else, especially the convolver
[Android Themes] dul32:
How aobut this? I cant hear the diferent
[Android Themes] SpasilliumNexus:
Read The OP. That has nothing to do with this THEME. Go to the right thread with that.
[Android Themes] Manu99:
Disable selinux and try again
[Android Themes] grinch247:
Worked perfectly ????? thank you!
[Android Themes] dul32:
I found this, just add 2 line in emulator,

#su

#setenforce 0

And it works, but we need to do it again when rebot the device.
[Android Themes] uudruid74:
That disables selinux and is not the best method. It's also off topic as it has nothing to do with a THEME
[Android Themes] :
Yeah exactly that disables selinux. However selinux turn on enforce when reboot I know. There are apps that executes script at boot thought if you don't want do it manually. In any case that isn't to discute there (because it's just a theme) but on original viper post
[Android Themes] uudruid74:
Do NOT turn off selinux!

Sorry for OT
[Android Themes] Manu99:
I'm perfectly conscious of what I do. On some device this is the only way to get Viper working. And I re-enable it when I've finished to listen to music
[Android Themes] uudruid74:
What I'm saying is there are other ways you change the permissions of the app. The easiest way to do this is to use a rise instead of the regular Viper because it already has all these settings built in don't turn off selinux
[Android Themes] Manu99:
For me flash just V4Arise didn't work. When I turn selinux on permissive instead any version of V4A works. If there are other methods I'm open to any suggestions
[Android Themes] uudruid74:
For Magisk, use the magisk module for this purpose, or other systems try instructions here

http://www.theandroidsoul.com/how-to-fix-viper4android-selinux-policy-issues-on-lollipop/j
[Android Themes] Manu99:
It didn't work :). Thank you anyway
[Android Themes] Thebear j koss:
What device and android build? Stock or custom ROM? Stock or custom kernel? Did you try the SELinux Switcher app? It changes from enforcing to permissive at boot.
[Android Themes] uudruid74:
I'm using the Magisk module which should be all you need. Are you using Magisk or SuperSU? The trick is just to give the permissions to exactly what it needs.

This module (pictured) with ARISE installer should do the trick.
[Android Themes] JohnCorleone:
Really? I have the HTC 10 And I am running Substratum Swift Black, Magisk systemless lots of extras..i just can't theme the settings and system ui. My colors didn't stick on a reboot but I think the zip will fix that. Thanks!
[Android Themes] Manu99:
LineageOS on Thea (Moto g 2014 lte xt1072). The fact is that I already disable selinux to have it working. But I'm trying to not disable selinux

I'm not using magisk because LAOS has its own root. That module didn't work when I've flashed Arise
[Android Themes] Thebear j koss:
It doesn't disable it, it changes it from enforcing to permissive.
[Android Themes] Manu99:
It's exactly the same thing
[Android Themes] EvoWizz:
Hello, any explanation about this?
[Android Themes] uudruid74:
The module needs Magisk and other solutions need the supolicy tool that comes with SuperSU to work. I would dump the LOS built-in root and use Magisk.

---------- Post added at 01:18 PM ---------- Previous post was at 01:15 PM ----------

It has nothing to do with the theme! Why are you asking here?

Its Google Play Protect getting mad at the ability to disable selinux from within the developer settings of Viper
[Android Themes] Manu99:
I already knew this for that I've told that other methods doesn't work. And I don't want use either Magisk or SuperSU just to keep selinux on enforcing for viper when I can temporarily set it to permissive, when I listen to music (few times on phone)
[Android Themes] uudruid74:
Turning off selinux is bad. And there are many benefits to using Magisk, not the least of which is that you don't have to flip switches and compromise your system to get music.
[Android Themes] Manu99:
Oh well I know it's bad. However stop to try convincing me. For now I don't want use Magisk, maybe I will do it in future. I'm happy for now;)
[Android Themes] Thebear j koss:
Viper needs the kernel to be permissive to work, it won't work when enforcing. You can manually change it yourself or use an app like selinux switch or magisk but it has to be permissive. There is no workaround for this to install the driver.
[Android Themes] shuli81:
This is simply not true. I have viper running with selinux enforcing
[Android Themes] Thebear j koss:
No. You cannot install the driver with it enforcing. You can set it to permissive, install the driver, then set it back to enforcing, but if you never installed the driver, you do not have Viper running correctly.
[Android Themes] shuli81:
Ok. That's not really what you said... either way, there is a flashable zip going around that installs viper along with the driver and a script to allow it to run in enforcing.
[Android Themes] uudruid74:
That is totally untrue. Do you know how selinux works? I'm a Linux system admin. There is no need to turn off selinux

---------- Post added at 10:19 PM ---------- Previous post was at 10:18 PM ----------

You can either give the installer the right permission or flash it. Having Android run with selinux disabled isn't a good solution
[Android Themes] Thebear j koss:
1st, Viper most definitely needs permissive to install driver. It says it right in the op. 2nd you can turn it to permissive and back to enforcing after installing the driver. I have used Viper for years on 4 or 5 devices and have always needed to do this to get it to work. Whether thru a script, a zip, or an app the SELinux always needed to be permissive to install the driver. I am not a Linux dev, in fact I know more about quantum physics than I do Linux, but i do know Viper requires it to be permissive to work.
[Android Themes] uudruid74:
No. You need "permission" not "permissive". It's the difference between opening the cage to the sick lion and removing every cage in the zoo. Just because you don't know where the switch for that cage is at doesn't mean you should hit the emergency release and let them all go.

Permission, not permissive.
[Android Themes] dul32:
So, what the best way? Magisk or enforcing?
[Android Themes] Thebear j koss:
Just switch enforcing to permissive, install the driver. Reboot. Switch back to enforcing reboot. Should be good to go.
[Android Themes] JohnCorleone:
THANKS! SHORT and to the point. Sounds very straight forward. Famous,last !!:eek:

Sent from my EVO using Xparent Gray Tapatalk 2
[Android Themes] JohnCorleone:
I have been using guitardedhero's updated zip. I have the HTC 10 and he included everything including in the Developer section a built in toggle for selinux I am double checking I'f it sticks after reboot.. but the driver is always installed OG and I can still install the tenable version... It looks great in all black with white accents. I will report the results shortly
[Android Themes] Manu99:
I've installed that, but I can't see that on substratum app

Nevermind, just reinstalled and worked
[Android Themes] rippledrums:
Sorry for asking for an ETA but, any progress on a light version/theme?
[Android Themes] Mr_White_214:
Not much, I can give you an apk with the current progress, but it's still unfinished.
[Android Themes] rippledrums:
Just wanted to know. Thanks for your work anyway. :) :good:
[Android Themes] DeadlyToast:
This popped up for me too, dunno why...
[Android Themes] Mr_White_214:
I got this message myself as well. I think it is because the app can disable SELINUX and is seen as an security issue.
[Android Themes] Wolfcity:
Exactly. Disabling Selinux/toggling to permissive is the security risk Google is seeing there. Some get that message,some don't.

You can deactivate it by switching play protect to not checking your device for harmful apps, in playstore or in Google settings on your phone.
[Android Themes] surajloharia:
whats this bro google security saying its harmful

is there any back door here!!!!!!

Iam using on magisk amd SE is enforcing and never changed that and dont wnt to stop google security

:eek:
[Android Themes] Thebear j koss:
Viper needs the kernel to be permissive to install driver. Google flags any app that uses root to modify policy settings. It is safe, if you disagree you may as well never use xda or any other development forums or any app that requires installation from unknown sources
[Android Themes] surajloharia:
this is not the first time iam using viper

its your materialized version

any way nice work and i can trust xda
[Android Themes] VaibhavKumarReddy:
Default viper app had no issues with play protect but that's not the case with materialized version.

Why does play protect flag this app as harmful when it's just themed?

Please provide explanation.
[Android Themes] uudruid74:
Not true. Install needs root or to be installed via recovery. Processing needs permission, not permissive. The only issue is the developer option to turn off selinux.

---------- Post added at 10:14 AM ---------- Previous post was at 10:13 AM ----------

Not true. Install them both and it will flag them both. Its the devel option
[Android Themes] VaibhavKumarReddy:
Not true, developer options turned off
[Android Themes] uudruid74:
OMFG.

Google looks at the code. There is code in the APK to turn off selinux. Google doesn't know that the code will never be executed because the switch in the UI is turned off. The code exists, period.
[Android Themes] VaibhavKumarReddy:
Whatever but I can confirm with original v4a I had no issues, the maintainer of the magisk module just switched to materialized v4a & I'm stuck with a notification warning that can't be removed from the status bar.

Fixed that by enabling scan only Google play apps as I don't install apps from other sources.

But I'm suspicious that this app may steal critical info on my device. Please provide a clear answer to my point.
[Android Themes] Mr_White_214:
I'm not 100% sure why this app is seen as an security issue, but I think it has to do with SELINUX, like @ uudruid74 mentioned. If you don't trust this app, just don't use it. I didn't inject any strange things, you can look at our Github page to view our commits. Also I personally don't have this message on my Oneplus 3T running unofficial los15.
[Android Themes] uudruid74:
Why do you argue? I just told you that I installed them both. Google wasn't looking for the issue until recently. Install them both and you'll see for yourself.

Also, tap the notification and you'll see where you can tell it that the app is safe and not to warn you about it anymore
[Android Themes] exadeci:
[MENTION=4539728]pittvandewitt[/MENTION] Thanks for the app but I've uninstalled it, it shouldn't trigger Google play security, it's annoying and makes your changes look dodgy
[Android Themes] Mynacol:
Google Play Protect never aimed to save you from information theft, but from apps that can avoid/disable security-relevant system features, e.g. a one-click rooting app (Towelroot triggered this security "feature")

As I don't use GApps, I don't have to care about " Google Play Protect". I know what I'm doing and I trust my ROM developer, Magisk and ViPER4Android materialized.
[Android Themes] Thebear j koss:
However you want to explain it, it doesn't matter. To install the drivers the SELinux has to be permissive and not enforcing. I'm not arguing that this is an unsafe app, I was only stating why it is getting flagged by Google.

mod edit - unnecessary abusive comment removed
[Android Themes] pittvandewitt:
Hello V4A users,

To clear things up around this Google protect stuff:

Google has apparently tweaked it's security mechanism and now it detects the code this app uses to change your selinux status. Having selinux permissive is indeed a security threat. The best way is to have selinux enforcing and to allow mediaserver. This way ViPER4Android can still reach it's driver and you have to make the least trade-offs in terms of security. (Google sepolicy+viper4android for more information)

Point is, I don't own the source code so I cannot remove the option triggering Google's Play Protect. If you're having this warning from Play Protect, you can disable the feature as a workaround. Also I am not aware of code in this app stealing your information or anything.

Edit: Another reason I came up with that might trigger Google Play Protect is the apk it's signature. It is signed with apktool. Someone may want to experiment with it and report back.

I hope this has cleared things up.

Keep calm and enjoy your music ;)

pittvandewitt
[Android Themes] exadeci:
But why do you disable selinux from the app? I'm using a Magisk module to do that, I don't need the app to do it, especially if it means having Play Protect spamming me.
[Android Themes] pittvandewitt:
I don't know why you would use this selinux switch option in v4a.. I'm using my own magisk module to handle it.

pittvandewitt
[Android Themes] uudruid74:
mod edit - unnecessary abusive comment removed

My correction is that selinux enforces a set of permissions and those permissions CAN be modified. You basically said that it only works if you take all the doors off the hinges, and I'm just saying that we can issue everybody a key to exactly which doors they need access to. The fact that most people don't do that ID because of the mindset that you just displayed, and I feel its important to at least mention that the correct method exists rather than making some statement that disabling selinux is the only way.

Viper is the new employee and his security badge isn't set up yet. You can set up his badge, or you can turn off all the maglocks for the building. Turning off selinux is turning off all the maglocks.

Installing things from TWRP is going in the building after hours when you are the only one around so having the internal security off is fine (external is still locked).
[Android Themes] Thebear j koss:
mod edit - unnecessary abusive comment removed And second, it doesn't matter how you word it or explain it, the SELinux policy must be permissive and not enforcing to install the drivers. Whether you do it thru flashing, a script to run at boot, an app, or thru adb, Viper's drivers will not install if it is enforcing. That is the reason why it gets flagged by Google. Last I am not arguing about what is harmful or if Viper is a danger to install. My comment about android was for those that are on a development site that has always tried to make things as safe as possible as they can, and if you have any reservations about anything shared on xda, you should never install anything outside of Google and not even bother wasting your time on xda.

mod edit - unnecessary abusive comment removed
[Android Themes] Zackptg5:
You're correct that vipers drivers will not install normally in enforcing. However, instead of setting the entire sepolicy to permissive, you can allow specific policies through the use of supolicy (if using supersu) or other similar tools for different rooting solutions (I'll use supersu for this example) which is essentially setting selinux to permissive for those policies only.

So for the specific case of viper, you can create a su.d script that allows only the policies related to v4a (make sure it's permissions are 0700). This can be determined by attempting to run the app and then looking for failed audit statements in the logcat (the whole process and such for supolicy is located here: https://su.chainfire.eu/#selinux-policies). Then you can formulate the proper allow statements based on those audit lines.

So in the case of v4a. You'd want the script to contain this:

#!/system/bin/sh

/su/bin/supolicy --live "allow audioserver audioserver_tmpfs file { read write execute }" \
"allow audioserver system_file file { execmod }" \
"allow mediaserver mediaserver_tmpfs file { read write execute }" \
"allow mediaserver system_file file { execmod }"

Changing the supolicy path to wherever it's located (varies on install type).
[Android Themes] uudruid74:
mod edit - unnecessary abusive comment removed

mod edit - unnecessary abusive comment removed

Back on topic, selinux permissions can interfere with Viper's audio processing (or can block driver install if you let the app install the driver with root, but there are other install methods). The developer option being flagged by Google is there so that people can quickly test if selinux is the problem so that selinux rules can be written for the device, normally using an init.d script or Magisk module to grant the required permissions. Few people have any experience with selinux, so shutting it off is an option for momentary testing only, to see if an issue is due to improper permissions.