A floating button for Android that gives one chosen app a clean, instant reconnect.
Tap the button and Android closes the target app's open network connections. The 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 150 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 target app. 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.
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.
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.
| 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 hand the target app your current DNS servers |
| Usage access (optional, off unless you turn it on) | To see which app is on screen, for "only show the button over the target app" and "take the tunnel down when I leave it" |
| 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 36).
./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.


