explaingit

sir-mmd/dataproxy

15KotlinAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

An Android app that turns your phone into a SOCKS5 proxy server, routing all connected device traffic through your phone's cellular data connection instead of Wi-Fi, with no root access required.

Mindmap

mindmap
  root((DataProxy))
    What it does
      SOCKS5 proxy server
      Routes via cellular
      No root needed
    Features
      Live connection stats
      Auto-pause on data loss
      Auto-start on reboot
      Optional auth
    Live display
      Carrier name
      Network generation
      Upload/download speed
      Connected clients
    Requirements
      Android 8.0+
      Kotlin Jetpack Compose
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Route a laptop's traffic through your phone's LTE or 5G connection to test how an app behaves on a mobile network

USE CASE 2

Use your phone as a cellular proxy on an untrusted Wi-Fi network so your laptop traffic exits over mobile data instead

USE CASE 3

Set up a password-protected SOCKS5 proxy that restarts automatically after your Android phone reboots

Tech stack

KotlinJetpack ComposeAndroid

Getting it running

Difficulty · easy Time to first run · 5min

Some Android manufacturers require a background service exemption to prevent the proxy from being killed by battery optimization.

MIT license, use freely for any purpose including commercial, as long as you include the copyright notice.

In plain English

DataProxy is an Android app that turns your phone into a SOCKS5 proxy server, with the specific feature that all outbound traffic from the proxy is forced through the phone's cellular data connection rather than Wi-Fi. A SOCKS5 proxy is a type of network relay that other devices, such as a laptop or a TV box, can point their internet traffic through. With DataProxy running, those other devices connect to the proxy over Wi-Fi while their actual internet traffic exits through the phone's mobile data network. The main use case is for situations where you want to separate which network connection carries certain traffic. For example, if you are on a Wi-Fi network you do not trust, or if you want to test how something behaves specifically over a mobile connection, you can route a device's traffic through DataProxy to send it over LTE or 5G instead. The proxy does not require root access, does not set up a VPN, and does not affect any other apps running on the phone. The app shows live information including the carrier name, the current network generation (2G, 3G, 4G, or 5G), upload and download speeds, and a list of connected client devices. If the cellular connection drops, the proxy pauses automatically and resumes when data comes back. There is an optional auto-start feature so the proxy can restart itself after the phone reboots. You can also set a username and password for the proxy if you want to restrict who can connect. The app supports Android 8.0 and newer, is written in Kotlin using Jetpack Compose for the interface, and is available as a direct download from the releases section. It is open source under the MIT license. The README includes a section with guidance on preventing aggressive Android phone manufacturers from killing the background service.

Copy-paste prompts

Prompt 1
I want to use DataProxy to route my laptop's internet traffic through my phone's LTE connection. How do I configure the SOCKS5 settings on my laptop to connect?
Prompt 2
How does DataProxy force all outbound proxy traffic over cellular instead of Wi-Fi on Android without affecting other apps on the phone?
Prompt 3
My Android phone's battery optimization is killing the DataProxy background service. What does the README recommend to prevent aggressive app killing?
Prompt 4
How do I set a username and password on DataProxy so only my devices can connect to the proxy?
Open on GitHub → Explain another repo

← sir-mmd on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.