SocketFlip

Is SocketFlip safe?

Installing SocketFlip shows you several warnings, and one of them says the app could "monitor network traffic". That sounds alarming, so this page explains, in plain language:

  1. Why Google makes installing it awkward
  2. Every warning you will see, and what to tap
  3. Why SocketFlip needs each permission
  4. Why it uses a VPN when it is not a VPN
  5. How to check all of this for yourself

The short version: the warnings appear because SocketFlip is installed from outside the Play Store and uses powerful Android features. They are general warnings Android shows for any app that does these things, not a verdict on SocketFlip. SocketFlip has no permission to use the internet, so it cannot send anything anywhere, and all of its code is public.

Why Google makes this awkward

Most Android malware reaches people as an app file sent in a message or offered on a dodgy website: "install this to track your parcel", "update your banking app here". To protect people from that, Google puts several speed bumps between you and any app that does not come from the Play Store:

These are sensible defaults for most people, and they apply to every app from outside the Play Store, good or bad. They slow you down; they do not mean SocketFlip has been found to be harmful.

Why not just put it on the Play Store? Google only lets an app use Android's VPN feature if the app is a VPN service or one of a short list of approved types. SocketFlip uses the VPN feature for something else (explained below), so it would probably be turned down. Publishing it here, with the full source, is the honest alternative.

Every warning, in order

When What you see What it means What to tap
Downloading "This type of file can harm your device" Your browser says this for every app file. Download anyway
Opening the file "Your phone is not allowed to install unknown apps from this source" Android's gate for apps from outside the Play Store. You allow it once, for that browser. Settings, turn on Allow from this source, go back, Install
Installing Play Protect: "Send app for security check?", "App scan recommended" or "Unsafe app blocked" Google has not seen SocketFlip before, because it is not on the Play Store. Scan app, or More details then Install anyway
First run "Display over other apps" settings page SocketFlip asks to draw its floating button. See below. Turn SocketFlip on, go back
First run, some phones That switch is greyed out ("restricted setting") Android locks this for apps installed from a browser. App info, three-dot menu, Allow restricted settings, then turn it on
First run "Allow SocketFlip to send you notifications?" Keeps the button alive and gives you Flip now and Stop buttons. Allow
First run, only if another VPN is on SocketFlip's own "Another VPN is on" note Android runs one VPN at a time, so SocketFlip's will switch the other one off. Got it, or Cancel to keep your VPN
First run "Connection request: SocketFlip wants to set up a VPN connection that allows it to monitor network traffic. Only accept if you trust the source." The scary one. Android shows these exact words for every VPN app. See Why a VPN. OK
First run, some phones (Samsung, Xiaomi, OnePlus and similar) SocketFlip's "Keep the button on screen?", then Android's "Let app always run in background?" These makers close background apps to save battery, which makes the button vanish. Allow, then Allow
After a tap A key icon in the status bar SocketFlip's (empty) tunnel is on. It goes away on the next tap. Nothing

Why each permission

Here is every permission SocketFlip asks for, and nothing else:

Display over other apps

To draw the round button on top of the app you are using. Android treats this as a powerful permission because a malicious app could draw a fake login screen over your banking app. SocketFlip only ever draws one small round button, and you can see exactly that in the code (OverlayService.kt).

Notifications

Android only lets an app keep running in the background if it shows a notification, so you always know it is there. The notification is also where the Flip now and Stop buttons live. If you refuse, the floating button still works; you just do not see the notification.

Run in the foreground ("special use")

The technical name for "keep the floating button on screen while another app is in front". It is paired with the notification above. It does not show a prompt.

View network connections

Lets SocketFlip read which DNS servers your Wi-Fi or mobile network uses, so it can pass them on to the app you picked (otherwise that app could not look up addresses while the tunnel is on). It can only read this, not change it, and it does not show a prompt.

Ask to ignore battery optimisations

Lets SocketFlip show Android's own "let this app run in the background?" prompt. Some phone makers close apps in the background to save battery, which makes the floating button disappear. SocketFlip only asks once, on phones known to do this, and from the Check setup screen. You can say no. Allowing it does not make SocketFlip do anything more: between taps it only keeps the button on screen, plus a check of which app is in front about once a second (screen on only) if you turn on a setting that needs Usage access.

Usage access (optional)

Lets SocketFlip see which app is on screen. It is only asked for if you turn on Only show the button while the target app is on screen or Take the tunnel down when I leave the target app in Settings, and you grant it yourself in Settings > Usage access (on Android 15 and newer you may first need Allow restricted settings, see the FAQ). SocketFlip only looks at which app is in front, about once a second while one of those settings is on and the screen is on. It keeps nothing, and with no internet permission it could not send it anywhere. Leave both settings off and this permission is never used.

VPN (the connection request)

Explained in full in the next section.

Automation, off by default

Not a permission, but it answers "what can other apps make SocketFlip do?". SocketFlip can take a flip or stop request from an automation app such as Tasker, MacroDroid or Key Mapper. That is off until you switch it on in Settings, and even then a request only counts if it carries a random code that SocketFlip made for your phone and shows you in Settings. Any other app's request is ignored. It can only do what a tap on the button does, with the same cooldown.

Sharing, only when you tap it

Also not a permission. Share SocketFlip > Send the app hands SocketFlip's own installed APK, read-only, to the one app you pick in Android's share sheet. No other file can be reached that way, and no other app can ask for it. Share on Your numbers sends one line of text that you see first.

Backup, through your phone's own backup

Not a permission either. SocketFlip's settings (the apps you tick, cooldowns, colours, skin, button position, your numbers and the automation code) are one small file, and it is included in your phone's normal Google backup and in a move to a new phone. Nothing else of SocketFlip's is backed up, and SocketFlip itself sends nothing: the backup is Android's, under your Google account. Turn it off for all apps in Settings > Google > Backup.

What SocketFlip does not have

Why a VPN

SocketFlip needs a way to make one app drop its connection and reconnect, instantly, without touching the rest of your phone. Android has no "reconnect this app" button, and ordinary apps are not allowed to interfere with other apps' connections.

There is one thing Android always does, though: whenever a VPN covering an app starts or stops, Android closes that app's open connections, so they can be reopened through the new route. SocketFlip uses exactly that, and nothing more:

So why does Android say it "allows it to monitor network traffic"? Because the VPN feature could be used that way, so Android shows the same wording for every VPN app, whether it is a big-name VPN service or SocketFlip. The warning describes what the feature is capable of, not what the app does. SocketFlip never reads from its tunnel, and with no internet permission it would have nowhere to send anything.

Android allows only one VPN at a time, so if you use a privacy VPN, SocketFlip's tap will switch it off. See the FAQ.

Check it yourself

You do not have to take this page's word for any of it:

If something here does not match what you see, please open an issue.