A floating button for Android that gives the apps you choose a clean, instant reconnect.
Tap the button and Android closes the target apps' open network connections. Each app notices straight away and reconnects over your normal network, usually within a second or two. Nothing else on the phone is touched, and no traffic ever passes through SocketFlip.
Download the latest APK: Android 10 or newer, a small download (under 200 KB), no internet permission. New to installing APKs? Follow the 2-minute guide.
- Download the APK, install it and open SocketFlip.
- Tap + Add app and choose the app. You can add more than one.
- Tap Show floating button and grant what it asks for: display over other apps, notifications, and the VPN connection request.
- Drag the button wherever it is out of the way. Tap it to reconnect.
Worried by the install warnings? Read Is SocketFlip safe? The warnings, explained: why Google makes it awkward, what each permission is for, and why it uses a VPN when it is not a VPN.
- Unsticking an app that sits on "Connecting..." or a stale feed after a Wi-Fi hand-off, a dodgy hotspot or a network change, without toggling Wi-Fi or airplane mode for the whole phone.
- Testing reconnect handling in your own app: one tap reproduces a clean server disconnect on a real device, as often as you like.
- Online games that settle a round on the server: a quick reconnect drops you straight into the next phase instead of waiting out a long animation.
It works with any app you pick.
SocketFlip resets TCP connections only. When a VPN starts or stops, Android closes the covered app's open TCP sockets; it does not do this for UDP.
- Reset: anything that talks to its server over TCP, which is most app APIs, chat and notification links, game servers and ordinary web traffic.
- Not reset: voice and video calls (WhatsApp, Signal, Meet and similar), most online game voice chat, and traffic using QUIC / HTTP/3, all of which run over UDP. A call in progress simply carries on.
If you tap and nothing seems to happen, the app you chose is probably talking UDP, or reconnected so quickly you did not notice.
SocketFlip uses Android's VPN API, but not to carry traffic:
- The tunnel covers only the apps you tick. It has the address
10.111.222.1and routes exactly one other address,10.111.222.2, which nothing uses. All of the app's real traffic still goes out over Wi-Fi or mobile data as normal. There is no server at the other end and nothing leaves the phone. - Whenever a VPN covering an app starts or stops, Android closes that app's open sockets. That is the clean disconnect.
- Each tap makes exactly one state change (tunnel up, or tunnel down), so each tap is exactly one disconnect. Bringing a tunnel up and straight back down hits the app twice, and a reconnect that lands between the two can get stuck.
Things that do not work, for the record:
- Airplane mode takes the whole Wi-Fi link down, which is slow to come back.
- A per-app firewall block only stalls the connection silently. A short stall is never noticed, so nothing reconnects.
Taps closer together than the cooldown (10 seconds unless you change it in Settings) are ignored: a second disconnect while the app is still reconnecting can leave it stuck on its reconnect screen. A ring around the button shows the time left.
While the tunnel is up the status bar shows a VPN key. That is expected; the next tap takes it down again (and is also a reconnect).
Full walkthrough, including Play Protect and permission prompts: docs/GUIDE.md. Problems and questions: docs/FAQ.md. What is coming next: ROADMAP.md.
There is also a SocketFlip Quick Settings tile, a Flip now action on the notification and home screen shortcuts, which do the same thing. Automation apps such as Tasker can trigger a flip too, once you allow it in Settings (see the guide). Only one VPN can run on Android at a time, so SocketFlip will replace another VPN app's tunnel while its own is up.
To give it to a friend, tap Share SocketFlip on the main screen: it sends the app itself (the same signed file as the release) over Quick Share or a chat app, or just the download link.
SocketFlip is not on the Play Store, so it will not update itself. The easiest way to stay up to date is Obtainium, a free, open-source app that installs and updates apps straight from their GitHub releases:
- Install Obtainium.
- Tap Add App, paste
https://github.com/socketflip-app/socketflip, and tap Add.
Obtainium then tells you when a new release is out. Every SocketFlip release is signed with the same key, so updates install over the top and keep your settings.
Without Obtainium, SocketFlip's About card tells you once your copy is more than 30 days old (it knows from Android's install date, with no network check); tap Updates to look for a newer one.
| Permission | Why |
|---|---|
| VPN (user consent) | To start and stop the per-app tunnel |
| Display over other apps | To draw the floating button |
| Foreground service, notifications | To keep the button alive over the other app |
| Access network state | To read your network's DNS servers and Private DNS setting, so name lookups keep working for the ticked apps while the tunnel is up |
| Usage access (optional, off unless you turn it on) | To see which app is on screen, for "only show the button while a ticked app is on screen" and "take the tunnel down when I leave the ticked apps" |
| Ask to ignore battery optimisations | To offer Android's own "run in the background" prompt, so the button is not closed |
SocketFlip has no INTERNET permission, collects nothing and sends nothing.
Requires JDK 17 and the Android SDK (platform 37).
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apkUnit tests (plain JUnit on the JVM, no device needed; JUnit is a test-only dependency and the app itself has none):
./gradlew testReleaseUnitTestHelp is welcome. The first languages wanted are German, Brazilian Portuguese,
Spanish, French and Russian. Every piece of text is in
app/src/main/res/values/strings.xml: copy it to values-de/strings.xml (or
values-pt-rBR, values-es, values-fr, values-ru), translate the text between
the tags, keep placeholders such as %1$s and %1$d as they are, and leave out
anything marked translatable="false". Open a pull request or attach the file to an
issue. Bug reports from Check setup stay in English whatever language the phone
is in, so they can always be read.
SocketFlip is not affiliated with or endorsed by any game or app developer. Forcing reconnects in an online game may be against that game's terms of service; use it at your own risk.
SocketFlip is free and always will be. If it saves you time, you can leave a tip at https://buy.stripe.com/cNidR84Lg4pT36l35jfnO00 (any amount, card or Google Pay) or on Ko-fi at https://ko-fi.com/socketflip. Thank you.
Copyright (C) 2026 The SocketFlip contributors.
SocketFlip is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 or (at your option) any later version (GPL-3.0-or-later). In short: you may use, study, change and share it, but any version you distribute must also be released as open source under the same licence.
Releases up to and including 1.2 were published under the MIT licence.


