shadowsocks-android
A shadowsocks client for Android
Shadowsocks for Android tunnels your phone's internet traffic through an encrypted proxy to bypass internet censorship and access blocked websites, using a Shadowsocks server you or someone you trust controls.
Shadowsocks for Android is a client application that connects your Android device to a Shadowsocks proxy server, allowing your internet traffic to pass through an encrypted tunnel. Shadowsocks itself is a network proxy protocol originally created to circumvent internet censorship — particularly the Great Firewall used in China — by disguising proxy traffic as ordinary HTTPS traffic, making it harder for deep packet inspection systems to detect and block. This Android app is the mobile client side of that system.
The way it works is: you or someone you trust runs a Shadowsocks server outside the restricted network. You configure the Android app with the server's address, port, and an encryption key. The app then routes your device's internet requests through that server using the Shadowsocks protocol, which obfuscates the connection to look like normal encrypted web traffic. To route all traffic through the proxy, the app uses a VPN interface on Android (requiring the standard Android VPN permission) combined with the tun2socks library, which creates a virtual network interface that intercepts your traffic and forwards it through the proxy. A separate variant of the app is available for Android TV.
You would use this app when you need to access websites or services that are blocked in your location, or when you need an additional layer of privacy for your mobile internet traffic. It is particularly popular in regions with heavy internet filtering. The tech stack is Kotlin for the Android application layer, with native Rust code (via the shadowsocks-rust library) handling the actual proxy protocol, and C libraries (libevent, libsodium, OpenSSL) for networking and encryption. It requires Android API level 23 or higher (Android 6.0 Marshmallow).
Where it fits
- Access websites and services blocked in your country by routing Android traffic through a Shadowsocks proxy server.
- Add a layer of privacy to mobile internet traffic on untrusted public Wi-Fi networks.
- Use on an Android TV device to access geo-restricted content through a proxy.