Yes! In Android use work profiles. You can use the f Droid app shelter to do this.
Then set a different VPN for your work profile, and a different VPN for your main profile. Any work profile app will use the work profile VPN
Welcome to the droidymcdroidface-iest, Lemmyest (Lemmiest), test, bestest, phoniest, pluckiest, snarkiest, and spiciest Android community on Lemmy (Do not respond)! Here you can participate in amazing discussions and events relating to all things Android.
The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:
1. All posts must be relevant to Android devices/operating system.
2. Posts cannot be illegal or NSFW material.
3. No spam, self promotion, or upvote farming. Sources engaging in these behavior will be added to the Blacklist.
4. Non-whitelisted bots will be banned.
5. Engage respectfully: Harassment, flamebaiting, bad faith engagement, or agenda posting will result in your posts being removed. Excessive violations will result in temporary or permanent ban, depending on severity.
6. Memes are not allowed to be posts, but are allowed in the comments.
7. Posts from clickbait sources are heavily discouraged. Please de-clickbait titles if it needs to be submitted.
8. Submission statements of any length composed of your own thoughts inside the post text field are mandatory for any microblog posts, and are optional but recommended for article/image/video posts.
Community Resources:
We are Android girls*,
In our Lemmy.world.
The back is plastic,
It's fantastic.
*Well, not just girls: people of all gender identities are welcomed here.
Our Partner Communities:
Yes! In Android use work profiles. You can use the f Droid app shelter to do this.
Then set a different VPN for your work profile, and a different VPN for your main profile. Any work profile app will use the work profile VPN
If you have Tasker, you can do that. Not sure if you are using Wireguard, but that makes it simpler to integrate IMHO with it. With it, you set a condition basically if App XYZ is open then use VPN ABC Otherwise, If app XYZ is not open, then use BCA VPN.
The private one is using Wireguard, buuut I'd also like for it to work even when the apps are backgrounded.
I'm beginning to think that the cleverer solution would be to set something up in my home Linux environment to make the routing decisions and then just have an always on VPN home.
It just seems like it should be a solved problem on my mobile OS already.
With Linux, you need to have the awareness of what is running on your phone 24/7 and AFAIK, there's nothing like that except maybe Home Assistant, but that's pushing it. I have a buddy which has an always on VPN which he uses 100% of the time at home, never any issues with him. As for the phone, I have Wireguard for when I am not connected to my WiFi, and then disconnect when I'm back on my WiFi network. This way, I am certain to be on my home network 99.99% of the time. I use Tasker for that.
With that said, you will need an automation of sorts on the Android to be 100% sure you are on your appropriate VPN. Whether through Tasker, Macrodroid or a few other apps.
You might consider a more elegant approach to accomplish your goals.
For example, I run Tailscale on all of my devices. They are accessible to each other (at all times) through the encrypted "Tailnet" while each has its own public internet provider (my home ISP, my cellular provider, my VPS host, etc).
They all route their DNS requests through my home server which is running Adguard (for DNS ad blocking on every device). If I wanted I could route all their traffic (not just DNS) through the home server, and I could have the home server's internet-facing interface connect through a commercial VPN to then hide all that egress traffic, across all my devices.
You could connect to your privacy VPN from your home server, then set up your home VPN to route all external traffic through the privacy VPN. From your phone, your home VPN is now both your home and privacy VPN.
Trying to do it on a per-app basis, you will very likely end up with whichever app is in the background trying to use the wrong connection.